postfixとdovecotでメールサーバ

Ubuntu 14.04です。 postfix(SMTPサーバ)は基礎的な設定はすでになされているものとします。

Dovecot, postfixのインストール

$ sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d postfix

dovecot.confの設定

dovecot.conf

  • protocols = imap pop3を追記
    • imapspop3sは追加しない。
  • listen = *, ::のコメントアウトを外す(アンコメントというらしい)

conf.d/10-auth.conf

  • disable_plaintext_authをアンコメントしてnoに値を変更
    • SSL/TLSだから平文でもヘーキヘーキ…
  • auth_mechanismsplain loginに変更
    • postfixのように,をつけてはいけない

conf.d/10-master.conf

  • inet_listener imapの中のport0にセット
    • こうすることでSSL/TLSを用いないIMAPを使えなくする
    • https://blog.apar.jp/linux/678/
  • inet_listener imapsの中をアンコメントしておく
  • inet_listener pop3,inet_listener pop3sも同様に
  • service authの中のunix_listener auth-userdbunix_listener /var/spool/postfix/private/authの中をアンコメント

conf.d/10-mail.conf

  • mail_location = maildir:~/Maildirと設定

conf.d/10-ssl.conf

  • sslyesまたはrequiredに設定
  • ssl_certの値を</etc/letsencrypt/live/(メールサーバのホスト名)/fullchain.pemに変更
    • あとで.pemはつくります
  • ssl_keyを</etc/letsencrypt/live/(メールサーバのホスト名)/privkey.pem`に

conf.d/10-logging.conf

  • log_pathの値を/var/log/dovecot/dovecot.logに変更

postfixの設定

main.cf

他に頼ってね

# basic
mydomain = (ドメイン)
myhostname = (メールサーバのホスト名)
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname $mydomain
mynetworks = 192.168.1.0/24 127.0.0.0/8
relayhost =
home_mailbox = Maildir/

# size
message_size_limit = 40960000

# security
smtpd_client_restrictions =
  permit_mynetworks,
  check_client_access hash:/etc/postfix/access,
  reject_rbl_client all.rbl.jp,
  reject_rbl_client bl.spamcop.net,
  reject_rbl_client sbl.spamhaus.org,
  reject_unknown_client,
  permit
smtpd_etrn_restrictions =
  reject_unknown_hostname
smtpd_banner = $myhostname ESMTP
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
  permit_mynetworks,
  check_helo_access hash:/etc/postfix/access,
  reject_invalid_hostname,
  permit
strict_rfc821_envelopes = yes
smtpd_data_restrictions =
  reject_unauth_pipelining,
  reject_multi_recipient_bounce
smtpd_sender_restrictions =
  permit_mynetworks,
  check_sender_access hash:/etc/postfix/access,
  reject_unknown_sender_domain,
  reject_non_fqdn_sender
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  check_recipient_access hash:/etc/postfix/access,
  reject_non_fqdn_recipient,
  reject_unauth_destination,
  permit_auth_destination,
  reject

# ssl/tls
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/letsencrypt/live/(メールサーバのホスト名)/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/(メールサーバのホスト名)/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/(メールサーバのホスト名)/chain.pem
smtpd_tls_CApath = /etc/letsencrypt/live/(メールサーバのホスト名)/
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

# sasl
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = (メールサーバのホスト名)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

master.cf

smtpd_tls_wrappermode, smtpd_sasl_auth_enable, smtpd_reject_unlisted_recipient, smtpd_relay_restrictionsをアンコメント

(省略)
smtps     inet  n       -       -       -       -       smtpd
#  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=yes
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
(省略)
  • $ sudo service postfix restartを忘れずに

SSL/TLS(Let’s Encrypt)

  • ここを参考に http://dev.classmethod.jp/server-side/lets-encrypt-beta/
    • 発行ドメインはメールサーバのホスト名で
    • 発行が終わったら放置でok(すでに設定した)

SASL

今回はCyrus SASLではなくDovecot SASLを使います。 また、OSユーザでの認証となります。設定はすでにしました。 (OSとは別のユーザ・パスワードで使いたい → バーチャルメールボックス)

Backlinks

There are no notes linking to this note.