본문 바로가기
푸닥거리

postfix dovecot imap

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2022. 3. 31.
728x90

 

출처:

https://www.tecmint.com/install-postfix-mail-server-with-webmail-in-debian/

 

Install a Complete Mail Server with Postfix and Webmail in Debian 9

This tutorial will guide you on how to install and configure a complete mail server with Postfix in Debian 9 release. It will also cover how to configure accounts mailboxes using Dovecot in order to retrieve and compose mails via IMAP protocol. The users w

www.tecmint.com

https://ko.linux-console.net/?p=2249 

 

 

"Debian 9에서 Postfix 및 웹 메일을 사용하여 전체 메일 서버 설치"

"Debian 9에서 Postfix 및 웹 메일을 사용하여 전체 메일 서버 설치" "이 튜토리얼은 Debian 9 릴리스에서 Postfix를 사용하여 전체 메일 서버를 설치하고 구성하는 방법을 안내합니다. ""또한 IMAP 프로토

ko.linux-console.net

 

"이 튜토리얼은 Debian 9 릴리스에서 Postfix를 사용하여 전체 메일 서버를 설치하고 구성하는 방법을 안내합니다. ""또한 IMAP 프로토콜을 통해 메일을 검색하고 작성하기 위해 Dovecot을 사용하여 계정 사서함을 구성하는 방법도 다룹니다. ""사용자는 Rainloop 웹 메일 인터페이스를 메일 사용자 에이전트로 사용하여 메일을 처리합니다."

  1. Debian 9 Minimal Installation
  2. A static IP address configured for the network interface
  3. A local or a public registered domain name.

"이 자습서에서는 DNS 확인 처리와 관련된 DNS 서버없이/etc/hosts 파일을 통해서만 구성된 메일 서버 설정에 개인 도메인 계정을 사용합니다."

1 단계 : Debian에서 Postfix 메일 서버의 초기 구성

"1. 첫 번째 단계에서 루트 권한이있는 계정으로 또는 루트 사용자로 직접 컴퓨터에 로그인하고 다음 명령을 실행하여 Debian 시스템이 최신 보안 패치와 소프트웨어 및 패키지 릴리스로 최신 상태인지 확인합니다."

# apt-get update 
# apt-get upgrade 

"2. 다음 단계에서 다음 명령을 실행하여 시스템 관리에 사용할 다음 소프트웨어 패키지를 설치합니다."

# apt-get install curl net-tools bash-completion wget lsof nano

"3. 다음으로, 자주 사용하는 텍스트 편집기로 편집 할 /etc/host.conf 파일을 열고 DNS 확인이 호스트 파일을 먼저 읽을 수 있도록 파일 시작 부분에 다음 줄을 추가합니다."

order hosts,bind
multi on

"4. 다음으로 컴퓨터 FQDN을 설정하고 도메인 이름과 시스템 FQDN을/etc/hosts 파일에 추가합니다. ""아래 스크린 샷에 표시된대로 시스템 IP 주소를 사용하여 도메인 이름과 FQDN을 확인합니다."

"그에 따라 IP 주소와 도메인을 교체하십시오. ""그런 다음 호스트 이름을 올바르게 적용하려면 시스템을 재부팅하십시오."

# hostnamectl set-hostname mail.tecmint.com
# echo "192.168.0.102 tecmint.com mail.tecmint.com" >> /etc/hosts
# init 6

"5. 재부팅 후 다음 일련의 명령을 실행하여 호스트 이름이 올바르게 구성되었는지 확인합니다. ""시스템의 도메인 이름, FQDN, 호스트 이름 및 IP 주소는 hostname 명령으로 반환되어야합니다."

# hostname
# hostname -s
# hostname -f
# hostname -A
# hostname -i
# cat /etc/hostname 

"6. 또한 아래 명령을 실행하여 도메인이 로컬 쿼리에 올바르게 응답하는지 테스트합니다. ""도메인은 DNS 서버를 사용하지 않기 때문에 네트워크의 다른 시스템에서 실행 한 원격 쿼리를 재생하지 않습니다."

"그러나 도메인 이름을 각/etc/hosts 파일에 수동으로 추가하는 경우 도메인은 다른 시스템에서 응답해야합니다. ""또한/etc/hosts 파일에 추가 된 도메인에 대한 DNS 확인은 host, nslookup 또는 dig 명령을 통해 작동하지 않습니다."

 

# getent ahosts mail.tecmint.com
# ping tecmint.com
# ping mail.tecmint.com

2 단계 : Debian에 Postfix 메일 서버 설치

"7. 메일 서버가 제대로 작동하는 데 필요한 가장 중요한 소프트웨어는 MTA 에이전트입니다. ""MTA는 메일 서버 간의 메일 전송을 담당하는 서버-클라이언트 아키텍처에 구축 된 소프트웨어입니다."

"이 가이드에서는 메일 전송 에이전트로 Postfix를 사용합니다. ""공식 저장소에서 Debian에 postfix를 설치하려면 다음 명령을 실행합니다."

# apt-get install postfix

"8. Postfix를 설치하는 동안 일련의 질문을 받게됩니다. ""첫 번째 프롬프트에서 Postfix 구성의 일반 유형으로 인터넷 사이트 옵션을 선택하고 [enter] 키를 눌러 계속 한 다음 다음 스크린 샷에 설명 된대로 시스템 메일 이름에 도메인 이름을 추가합니다."

3 단계 : Debian에서 Postfix 메일 서버 구성

"9. 다음으로 Postfix 기본 구성 파일을 백업하고 다음 명령을 사용하여 도메인에 대한 Postfix를 구성합니다."

# cp /etc/postfix/main.cf{,.backup}
# nano /etc/postfix/main.cf

"이제 다음과 같이 main.cf 파일에서 Postfix 구성을 구성합니다."

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

"자신의 구성과 일치하도록 myhostname, mydomain 및 mynetworks 변수를 바꿉니다."

 

"아래 스크린 샷과 같이 Postfix 기본 구성 파일을 덤프하고 최종 오류를 확인하기 위해 postconf -n 명령을 실행할 수 있습니다."

# postconf -n

"10. 모든 구성이 완료되면 Postfix 데몬을 다시 시작하여 변경 사항을 적용하고 netstat 명령을 실행하여 Postfix 마스터 서비스가 포트 25에 바인딩되어 있는지 검사하여 서비스가 실행 중인지 확인합니다."

# systemctl restart postfix
# systemctl status postfix
# netstat -tlpn

 

 

 

3 단계 : Debian에서 Postfix 메일 서버 테스트

"11. postfix가 메일 전송을 처리 할 수 \u200b\u200b있는지 테스트하려면 먼저 다음 명령을 실행하여 mailutils 패키지를 설치합니다."

# apt-get install mailutils

"12. 다음으로, 메일 명령 줄 유틸리티를 사용하여 루트 계정으로 메일을 보내고 아래 명령을 실행하여 메일 큐를 확인하고 루트의 홈 Maildir 디렉토리 내용을 나열하여 메일이 성공적으로 전송되었는지 확인합니다."

# echo "mail body"| mail -s "test mail" root
# mailq
# mail
# ls Maildir/
# ls Maildir/new/
# cat Maildir/new/[TAB]

"13. 다음 명령을 실행하여 메일 로그 파일의 내용을 검사하여 postfix 서비스에서 메일이 어떤 방식으로 처리되었는지 확인할 수도 있습니다."

# tailf /var/log/mail.log

4 단계 : Debian에 Dovecot IMAP 설치 및 구성

"14.이 가이드에서 로컬받는 사람의 사서함에 전자 메일 메시지를 배달하는 데 사용할 메일 배달 에이전트는 Dovecot IMAP입니다. ""IMAP은 143 및 993 (SSL) 포트에서 실행되는 프로토콜로, 여러 이메일 클라이언트에서 메일 읽기, 삭제 또는 이동을 담당합니다."

"IMAP 프로토콜은 또한 동기화를 사용하여 각 메시지의 복사본이 서버에 저장되도록하고 사용자가 서버에 여러 디렉터리를 만들고 전자 메일을 정렬하기 위해이 디렉터리로 메일을 이동할 수 있도록합니다."

 

"이것은 POP3 프로토콜의 경우가 아닙니다. ""POP3 프로토콜은 사용자가 메일을 정렬하기 위해 서버에 여러 디렉토리를 만드는 것을 허용하지 않습니다. ""메일을 관리 할받은 편지함 폴더 만 있습니다."

"Debian에 Dovecot 코어 서버 및 Dovecot IMAP 패키지를 설치하려면 다음 명령을 실행합니다."

# apt install dovecot-core dovecot-imapd

"15. 시스템에 Dovecot이 설치된 후 편집을 위해 아래의 dovecot 파일을 열고 다음과 같이 변경합니다. ""먼저 /etc/dovecot/dovecot.conf 파일을 열고 다음 줄을 검색하고 주석 처리를 제거합니다."

listen = *, ::

"16. 다음으로 편집을 위해 /etc/dovecot/conf.d/10-auth.conf를 열고 아래 발췌 부분과 같이 아래 줄을 찾아 변경합니다."

disable_plaintext_auth = no
auth_mechanisms = plain login

"17. /etc/dovecot/conf.d/10-mail.conf 파일을 열고 다음 줄을 추가하여 Mbox 형식 대신 Maildir 위치를 사용하여 이메일을 저장합니다."

mail_location = maildir:~/Maildir

"18. 편집 할 마지막 파일은 /etc/dovecot/conf.d/10-master.conf입니다. ""여기에서 Postfix smtp-auth 블록을 검색하고 다음과 같이 변경합니다."

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

"19. 위의 모든 변경을 수행 한 후 Dovecot 데몬을 다시 시작하여 변경 사항을 반영하고 상태를 확인하고 아래 명령을 실행하여 Dovecot이 포트 143에서 바인딩되는지 확인합니다."

# systemctl restart dovecot.service 
# systemctl status dovecot.service 
# netstat -tlpn

"20. 시스템에 새 사용자 계정을 추가하여 메일 서버가 제대로 실행되고 있는지 테스트하고 telnet 또는 netcat 명령을 사용하여 SMTP 서버에 연결하고 새로 추가 된 사용자에게 새 메일을 보냅니다 (아래 발췌 참조)."

# adduser matie
# nc localhost 25
# ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

"21. 아래 스크린 샷과 같이 사용자의 홈 디렉토리 내용을 나열하여 메일이 새 사용자 사서함에 도착했는지 확인합니다."

# ls /home/test_mail/Maildir/new/

"22. 또한 아래 발췌 부분과 같이 IMAP 프로토콜을 통해 명령 줄에서 사용자의 편지함에 연결할 수 있습니다. ""새 메일은 사용자의받은 편지함에 나열되어야합니다."

# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

5 단계 : Debian에서 웹 메일 설치 및 구성

"23. 사용자는 Rainloop 웹 메일 클라이언트를 통해 이메일을 관리합니다. ""Rainloop 메일 사용자 에이전트를 설치하기 전에 먼저 다음 명령을 실행하여 Apache HTTP 서버와 Rainloop에 필요한 다음 PHP 모듈을 설치하십시오."

# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

 

 

"24. Apache 웹 서버가 설치된 후, Rainloop 웹 메일을 설치하기 위해 디렉토리 경로를/var/www/html/디렉토리로 변경하고 index.html 파일을 제거한 후 다음 명령을 실행하십시오."

# cd /var/www/html/
# rm index.html 
# curl -sL https://repository.rainloop.net/installer.php | php

"25. Rainloop 웹 메일 클라이언트가 시스템에 설치되면 도메인 IP 주소로 이동하고 다음 기본 자격 증명으로 Rainloop 관리 웹 인터페이스에 로그인합니다."

http://192.168.0.102/?admin
User: admin
Password: 12345

"26. Domains 메뉴로 이동하여 Add Domain 버튼을 누르고 아래 스크린 샷과 같이 도메인 이름 설정을 추가합니다."

"27. 도메인 설정 추가를 완료 한 후 Ranloop 관리 인터페이스에서 로그 아웃하고 브라우저에서 IP 주소를 가리 키도록하여 이메일 계정으로 웹 메일 클라이언트에 로그인합니다."

"Rainloop 웹 메일에 성공적으로 로그인하면 이전에 명령 줄에서받은 편지함 폴더로 보낸 이메일이 표시됩니다."

http://192.168.0.102
User: [email protected]
Pass: the matie password

"27. 새 사용자를 추가하려면 사용자 홈 디렉토리를 생성하기 위해 \u003ccode\u003e -m \u003c/ code\u003e 플래그와 함께 useradd 명령을 실행합니다. ""그러나 먼저 다음 명령을 사용하여 모든 사용자에 대해 Maildir 경로 변수를 구성해야합니다."

# echo 'export MAIL=$HOME/Maildir' >> /etc/profile
# useradd -m user3
# passwd user3

"28. 모든 루트의 이메일을 시스템의 특정 로컬 메일 계정으로 리디렉션하려면 아래 명령을 실행합니다. "루트 계정으로 리디렉션되거나 대상이되는 모든 메일은 아래 이미지와 같이 메일 사용자에게 전달됩니다.

# echo "root: test_mail" >> /etc/aliases
# newaliases

 

728x90

댓글