LDAP認証の設定¶
前提¶
- SMTP認証がsaslauthdで設定されているものとする
- saslauthdの設定をpam認証からldap認証に設定変更することで、postfixの認証をldap認証にする
- バーチャルドメインは設定しない
- ldapは認証だけ利用し、postfixで定義されたunixユーザのメールボックスにスプールする
- バーチャルドメインやメールアドレス、スプールをLDAPの属性から取得する場合は別途postfixの設定が必要
- LDAP側は下記の設定とする
- 接続用のマネージャは「cn=Manager,dc=example,dc=local」
- ユーザは「ou=Members,dc=example,dc=local」以下の「PosixAccount」属性持ちとする
- saslauthdで認証するユーザ名がLDAP上の「uid」とする
- saslauthdで認証するパスワードがLDAP上の「userPassword」とする
設定¶
- 「/etc/sysconfig/saslauthd」を次の内容に編集する
#MECH=pam MECH=ldap
- 「/etc/saslauthd.conf」を新規作成し、次の内容を設定する
ldap_servers: ldap://localhost ldap_search_base: ou=Members,dc=example,dc=local ldap_filter: (uid=%u)
テスト¶
- 下記のコマンドでテスト用のユーザ名とパスワードのエンコード文字列を作成する
echo -n ユーザ名 | base64 ユーザ名のエンコード文字列が表示される echo -n パスワード | base64 パスワードのエンコード文字列が表示される
- telnetで接続を行う
# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mx01.example.local ESMTP Postfix
- EHLOを送信する
EHLO mx01.example.local 250-mx01.example.local 250-PIPELINING 250-SIZE 20000000 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
- ログイン要求を送信する
AUTH LOGIN 334 VXNlcm5hbWU6
- エンコードしたユーザ名を入力する
エンコードしたユーザ名 334 UGFzc3dvcmQ6
- エンコードしたパスワードを入力する
エンコードしたパスワード 235 2.7.0 Authentication successful
- 成功したことを確認し、telnet切断を接続する
quit 221 2.0.0 Bye Connection closed by foreign host.