はじめに
SMTP認証を行う方法は色々ある。- Dovecot の SASL を使用 (たぶん、 PAM を使う。)
- Cyrus SASL を使用し、 PAM の認証情報を使う。
- Cyrus SASL を使用し、 Cyrus SASL 用のパスワードデータベースを用意する。
環境
OS: AlmaLinux release 9 (Rocky Linux release 8 での設定も付記する)インストールとセットアップ
Cyrus SASLのライブラリをインストールする。 (`cyrus-sasl` は不要)sudo dnf install cyrus-sasl-{lib,md5,plain}予め、 Letsencrypt の証明書を取得しておき、
/etc/postfix/main.cf
に以下を設定する。
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem smtpd_sasl_local_domain=$mydomain smtpd_sasl_security_options=noanonymous
/etc/postfix/master.cf
に以下を設定する。
smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
/etc/sasl2/smtpd.conf
に以下を設定する。 (mech_list
の設定は削除する。または、 cram-md5 digest-md5 plain login
を設定する。)
pwcheck_method: auxpropユーザーを追加し、パスワードを設定する。 (ユーザー名は適宜置き換えること。ドメイン名は
smtpd_sasl_local_domain
と同じものにする。)
なお、パスワードを変更するだけの場合、オプション -c
を付けない。
sudo saslpasswd2 -c -u example.com user1パスワードデータベースにグループ
sasl
を設定し、ユーザー postfix
を所属させる。
sudo groupadd sasl sudo groupmems -a postfix -g sasl sudo chgrp sasl /etc/sasl2/sasldb2 sudo chmog g+r /etc/sasl2/sasldb2Note: EL8 では、
/etc/sasldb2
にパスワードファイルが存在する。
設定をチェックし、問題なければ Postfix を再起動する。
sudo postfix check sudo systemctl restart postfixOpenSSL で確認する。 (接続時に
Verify return code: 0 (ok)
が表示され、 EHLO
に対して 250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
が帰ってきたらOK。)
openssl s_client -connect localhost:smtps EHLO localhostファイアウォールを設定する。
sudo firewall-cmd --add-service smtps sudo firewall-cmd --permanent --add-service smtps