====== SMTP Auth ====== SMTP Authにはcyrus-sasl2-saslauthdを使用しています。 ===== インストール ===== # portsinstall security/cyrus-sasl2-saslauthd [X] OPENLDAP ON ==== Ldap対応の確認 ==== # saslauthd -v saslauthd 2.1.23 authentication mechanisms: sasldb getpwent kerberos5 pam rimap ldap ↑Ldap対応確認 ==== 起動 ==== /etc/rc.confに以下を追加。 saslauthd_enable="YES" saslauthd_flags="-a ldap" # /usr/local/etc/rc.d/saslauthd start ===== LDAP認証設定 ===== ==== saslauthd.conf作成 ==== saslauthd.confは作成されていないので自分で作ります。 # touch /usr/local/etc/saslauthd.conf 中身はこんな感じです。 ldap_servers: ldap://ldapサーバアドレス/ ldap_version: 3 ldap_bind_dn: cn=管理者,dc=yyyy,dc=zzz ldap_password: パスワード ldap_search_base: ou=xxxx,dc=yyyy,dc=zzz ldap_filter: uid=%u ldap_deref: search mailアドレスをキーにしたい場合は ldap_filter: mail=%u または ldap_filter: mail=%u@%d # %U=info@example.com # %d=example.com # %u=info に変更 ==== 起動 ==== # /usr/local/etc/rc.d/saslauthd start ==== 以下のコマンドでチェック ==== # testsaslauthd -u XXX -p ***** 0: OK "Succes."と出力されれば、Cyrus-SASLとOpenLDAPの連係はOK 0: NO "authentication failed" だと失敗 ただし、IDに@が含まれていると動作が怪しい。 うちではtestsaslauthd がエラーなのに、SMTP AUTHは動作するというケースが出ています。 かなり、特殊な設定のため以下の様に設定しています。 ldap_filter: (|(mail=%U)(mail=%u@%d)) このときtestsaslauthd はこんな感じです。 # testsaslauthd -u myname -p password 0: OK "Success." # testsaslauthd -u virtialuser@example.com -p password 0: NO "authentication failed" ですが、メールの送信は postfix/smtp[xxx]: xxx: to=, relay=xxx.xxx[nnn...]:25, delay=........., status=sent (250 2.0.0 Ok: queued as xxxxx) のように成功します。う~ん、なぜだろう。:-| FIXME ===== Postfix設定 ===== /etc/postfix/main.cfを以下の様に変更する。 smtpd_sasl_auth_enable=yes smtpd_recipient_restrictions=・・・・・・permit_sasl_authenticated・・・・・・ ↑追加