사용자 도구

사이트 도구


freebsd:postfix4dovecot

DOVECOT + Postfix

Dovecot을 시작하기 전에, /usr/local/etc/postfix/main.cf에 다음 사항을 확인한다.

# TLS, SASL, Dovecot
smtpd_use_tls = yes
broken_sasl_auth_clients = yes
smtpd_tls_security_level = encrypt
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/letsencrypt/live/my.domain/fullchain.pem
smtpd_tls_key_file = /usr/local/etc/letsencrypt/live/my.domain/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,
                               permit_mynetworks,
                               reject_sender_login_mismatch,
                               reject_unauth_destination,
                               reject_rbl_client rbl.maps.vix.com,
                               reject_rbl_client bl.spamcop.net,
                               reject_rbl_client dnsbl.sorbs.net,
                               reject_rbl_client rhsbl.sorbs.net,
                               reject_rbl_client dnsbl.njabl.org,
                               reject_rbl_client cbl.abuseat.org,
                               reject_rbl_client sbl-xbl.spamhaus.org
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
tls_random_source = dev:/dev/urandom


# MISC, as per https://askubuntu.com/questions/1045309/undefined-parameters-in-etc-postfix-master-cf to avoid warning
smtpd_restriction_classes = mua_sender_restrictions, mua_client_restrictions, mua_helo_restrictions
mua_client_restrictions = permit_sasl_authenticated, reject
mua_sender_restrictions = permit_sasl_authenticated, reject
mua_helo_restrictions = permit_mynetworks, reject_non_fqdn_hostname, reject_invalid_hostname, permit

그리고 /usr/local/etc/postfix/master.cf 에서 다음 내용을 확인한다.

smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o receive_override_options=no_header_body_checks
  -o smtpd_client_auth_rate_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o smtpd_soft_error_limit=99
  -o smtpd_hard_error_limit=100
  -o smtpd_error_sleep_time=0s

여기까지 설정하였으면 전자우편 관련 서버를 재기동한다.

postfix reload

이제 마지막으로 다음 명령을 차례로 실행해서 dovecot이 제대로 실행되면 성공한 것이다.

cd /usr/local/etc/dovecot
postmap users
chown postfix:dovecot users*
service dovecot start

이제 사용자가 접속이 가능한지, 즉 이 서버를 이용해서 전자우편을 주고 받을 수 있는지를 확인한다.

doveadm auth test userid@my.domain
Password:
passdb: userid@my.domain auth succeeded
 extra fields:
     user=userid@my.domain

이 아래 내용은 https://blog.andreev.it/?p=1604, 그리고 https://obsigna.com/articles/1539726598.html에 있는 내용을 많이, 그리고 고맙게 참조한 사이트에서 알려주는 내용인데, 이를 실행하면 전자우편 서버들이 제대로 돌아가는지를 확인해 볼 수 있다.

telnet localhost 110 시험해 보기

telnet localhost 143 시험해 보기

계속해서 보안접속 가능한 서버도 다음 명령어로 확인해 볼 수 있다.

openssl s_client -starttls smtp -connect localhost:587

그 다음에 아래 처럼 화면에 보이는 내용을 입력해본다. 기본적으로 ehlo, mail from:, 그리고 quit.

 ehlo my.domain
 mail from:userid@my.domain
  250 2.1.0 Ok
 quit
  250 2.0.0 Bye
 closed
 

이제 postifx와 dovecot이 서로 연동하는지를 아래 명령으로 확인한다.

doveadm auth test -a /var/spool/postfix/private/auth userid@my.domain mytopsecret
passdb: userid@my.domain auth succeeded.
    user=userid@my.domain
freebsd/postfix4dovecot.txt · 마지막으로 수정됨: 2021/01/10 09:38 저자 127.0.0.1