Dovecot | Mail
インストール
https://blog.denet.co.jp/ec2-postfix-dovecot-mail-server-setup/#IMAPPOP3%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89Dovecot に沿って作業。 Ubuntu は以下パッケージで提供。 その他は記事通りに作業。
$ sudo apt -y install dovecot-core dovecot-pop3d dovecot-imapd
POP3 接続確認
POP3( 110番 )の平文接続は認証情報がそのままネットワークを流れます。
また Dovecot は既定が disable_plaintext_auth = yes のため、localhost 以外からの平文接続では認証自体が拒否されます。
-ERR [AUTH] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
そのため POP3S( 995番 )または STARTTLS で接続を確認します。
$ openssl s_client -crlf -connect example.com:995 # POP3S
$ openssl s_client -crlf -starttls pop3 -connect example.com:110 # STARTTLS
接続したら以下を1行ずつ入力します( POP3 のコマンドは大文字 )。
USER
PASS
LIST
RETR 1
QUIT
LISTメールの一覧とサイズを表示RETR 1最初のメールを取得QUIT切断
ref. https://qiita.com/tanuwo/items/fb002378177d322941ee
SMTP AUTH( SASL )を設定
- https://blog.denet.co.jp/ec2-postfix-dovecot-mail-server-setup/#IMAPPOP3%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89Dovecot
- https://www.webcyou.com/?p=11221
参考記事では /etc/postfix/master.cf の以下の行のコメントアウトを外す手順になっています。
-o smtpd_sasl_auth_enable=yes (コメントアウトを外します)
※ Ubuntu 22.04 でこの行の コメントアウトを外したところ postfix check がエラーになり、postfix を起動できませんでした。
そのときはコメントアウトしたまま作業を進めました。
原因
master.cf の -o で始まる行は 直前のサービス定義の継続行 です( 行頭の空白が継続行であることを示します )。
そのため以下のいずれかに該当するとエラーになります。
- 親となる
submission inet ...の行がコメントアウトされたまま、-oの行だけコメントアウトを外した - コメントを外す際に行頭の空白まで削ってしまった
submission( 587番 )を有効にする場合は、親のサービス行と配下の -o 行を セットで コメントアウトから外します。
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
※ 上記は抜粋です。実際の行は /etc/postfix/master.cf のコメントアウトされた記述に従ってください。
実際に有効になっているサービス定義を確認します。
$ sudo postconf -M
$ sudo postfix check
$ sudo systemctl restart postfix # master.cf の変更は reload では反映されない
未検証
この節は最後まで検証できていません。
- 上記のエラーにより
-o smtpd_sasl_auth_enable=yesはコメントアウトしたままにしたため、SMTP AUTH は有効化できていません - Postfix から Dovecot SASL を使うには、Dovecot 側で認証ソケットを Postfix のキューディレクトリに作成する設定(
/etc/dovecot/conf.d/10-master.conf)も必要ですが、こちらも未実施です
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
Postfix 側に必要な設定は後述の「SASL ライブラリについて」を参照してください。
SASL ライブラリについて
Dovecot SASL を使う構成( 参考記事の手順 )では sasl2-bin のインストールは不要です。
Postfix 側で以下を指定すると、認証は Dovecot の認証ソケット経由で行われます。
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
sasl2-bin に含まれる saslauthd は Cyrus SASL( smtpd_sasl_type = cyrus )を使う場合に必要になるもので、この構成では使いません。
$ sudo apt install sasl2-bin # Cyrus SASL を使う場合のみ
※ sudo apt install cyrus-sasl2 は失敗します。
cyrus-sasl2 は ソースパッケージ名 であり、インストールできるバイナリパッケージは sasl2-bin / libsasl2-2 / libsasl2-modules です。