Postfix で Cyrus SASL を使った LDAP(Lightweight Directory Access Protocol) による SMTP Auth 環境を Cyrus SASL を使って作ってみた。
Dovecot SASL を使った環境の構築方法は、『Postfix で SMTP Auth(Dovecot SASL編)』参照。
名称 | バージョン | 備考 |
---|---|---|
Solaris x86 | 10 | |
Postfix | 2.3.3 | 2006.09.05時点での最新版。 |
saslauthd (Cyrus SASL) |
2.1.21 | 今回は、CSWパッケージを使用した。 CSWパッケージについては、『Solarisへのフリーソフトのインストール方法』参照。 |
# pkg-get -i saslauthd
$ make makefiles CCARGS="-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/opt/csw/include/sasl" \ AUXLIBS="-L/opt/csw/lib -R/opt/csw/lib -lsasl2" $ make # make install
MECHANISM=ldap
ldap_servers: ldap://ldap.example.com/ ldap_search_base: o=Example Limited, c=jp
認証のユーザIDに使用する属性はデフォルトでは "uid" だが、メールアドレスの "mail" を使用したい場合は以下のいずれかを試してみる。
[その1]ldap_filter: mail=%u
ldap_filter: mail=%U@%dまたは
ldap_filter: mail=%U@%r
ldap_filter: mail=%uそして saslauthd.init に以下を追加
PARAMS="-r"
pwcheck_method: saslauthd mech_list: plain login
smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_path = smtpd smtpd_sasl_type = cyrus
# usermod -G sasl postfix
# groups postfix postfix sasl
Postfix より前に saslauthd を起動しておく。
# /etc/init.d/cswsaslauthd start
# /etc/init.d/cswsaslauthd stop
$ postconf -a cyrus dovecotSMTP+LMTPクライアントでのSASLサポート
$ postconf -A cyrus
# /opt/csw/bin/testsaslauthd -u ユーザID -p パスワード
0: OK "Success."失敗すると、
0: NO "authentication failed"となる。
auth.debug /var/log/authlog
構築時に遭遇したログとその対処方法
postfix/smtpd[14421]: [ID 947731 mail.warning] warning: unsupported SASL server implementation: cyrus postfix/smtpd[14421]: [ID 947731 mail.crit] fatal: SASL per-process initialization failed postfix/master[14405]: [ID 947731 mail.warning] warning: process /usr/libexec/postfix/smtpd pid 14421 exit status 1 postfix/master[14405]: [ID 947731 mail.warning] warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
postfix/smtpd[18727]: [ID 947731 mail.warning] warning: SASL authentication failure: cannot connect to saslauthd server: Permission denied postfix/smtpd[18727]: [ID 947731 mail.warning] warning: SASL authentication failure: Password verification failed
postfix/anvil[14215]: [ID 197553 mail.info] statistics: max connection rate 1/60s for (smtp:192.168.100.56) at Sep 5 18:43:14 postfix/anvil[14215]: [ID 197553 mail.info] statistics: max connection count 1 for (smtp:192.168.100.56) at Sep 5 18:43:14 postfix/anvil[14215]: [ID 197553 mail.info] statistics: max cache size 1 at Sep 5 18:43:14
smtpd_client_connection_count_limit smtpd_client_connection_limit_exceptions smtpd_client_connection_rate_limit smtpd_client_event_limit_exceptions詳細は、和訳ドキュメントの『Postfix設定パラメータ』や『Postfixパフォーマンスチューニング』を参照。
postfix/smtpd[18833]: [ID 702911 auth.error] unable to dlopen /opt/csw/lib/sasl2/libsasldb.so.2: ld.so.1: smtpd: fatal: libdb-4.2.so: open failed: No such file or directory
# cd /opt/csw/lib/ # ln -s ../bdb4/lib/libdb-4.2.so libdb-4.2.so