2019/06/05(水)Postfix にて Cyrus SASL 認証のセットアップ
2019/06/05 17:31
以前は管理の都合上、ソースコードから構築していたが、最近はFreeBSD でも Ports から導入する方が確実。
最近の FreeBSD では、素の Cyrus-SASL ソースコードでは色々面倒なことのほうが多い。
security/cyrus-sasl-2.1.27
security/cyrus-sasl-saslauthd-2.1.27_1
の2つを Ports からインストールします。
その後で、SMTP 認証にCyrus SASL を使えるように Postfix をセットアップします。
Postfix は、Ports ではなく、ソースコードから構築しないと、管理上却って面倒。
root で先ずはこんな感じで環境設定:
# setenv CPPFLAGS '-I/usr/local/include -I/usr/local/include/db5 -I/usr/include -I/usr/local/include/sasl' # setenv LDFLAGS '-L/usr/local/lib -L/usr/local/lib/db5 -L/usr/lib' # setenv LD_LIBRARY_PATH '/usr/local/lib /usr/local/lib/db5 /usr/lib'これやらないと、当方の環境ではコンパイル自体が上手く行かないんです。
続いて root で make ファイル生成
(画面上では見やすいように複数行にしているが、実際は半角スペースで区切って1行にしてください):
# make -f Makefile.init makefiles 'CCARGS=-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include -I/usr/local/include/sasl -I/usr/include/openssl' 'AUXLIBS=-L/usr/lib -lssl -lcrypto -L/usr/local/lib -lsasl2 -licudata -licui18n -licuio -licutest -licutu -licuuc -L/usr/local/lib/db5 -ldb'これが上手く出来れば、あとは普通に
# make # make install # rehashとすれば、Cyrus SASL 認証サポート対応の Postfix が出来るはず。
続いて設定:
下記の内容で、 /usr/local/lib/saal2/smtpd.conf のテキストファイルを作成:
pwcheck_method: auxpropこの設定は、cyrus SASL 独自で認証ユーザを管理することを意味します。
サーバ自身にユーザアカウントを追加せずに済むので、このメールアドレス管理方法はお勧めです。
以下でメールアドレスを設定・管理できます:
# saslpasswd2 -c -u example.com xxxxuser (ユーザ新規追加) # saslpasswd2 -d -u example.com xxxxuser (ユーザの削除) # sasldblistusers2 (登録ユーザの確認)ここで、example.com は実際に使用するドメイン名、 xxxxuser は、メールアドレスの@マークの左側を指定します。
ユーザ新規追加の際のみ、設定するパスワード入力を促されます。2回同じパスワードを入力するようになります。
/usr/local/etc/sasldb2 に登録されます。このファイルのパーミッションは 644 にしておきます。
更に、/etc/postfix/main.cf に下記の設定追加:
smtpd_sasl_auth_enable = yes smtpd_sasl_type = cyrus smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination最後に自動起動の設定です。/etc/rc.conf に
saslauthd_enable="YES" saslauthd_flags="-a pam"の2行を追加しておきましょう。
最後に、サーバを再起動するか、 /usr/local/etc/rc.d/saslauthd start で、認証デーモンをスタート出来たら設定完了。