CentOS 4.6のLDAP対応 - dovecot編

/etc/passwdから一般ユーザー情報を削除しLDAPへ移行しようとしたら、まぁいろいろ不具合が。ProFTPDLink の次は、IMAPサーバのdovecot。RPMでインストールすると/etc/passwdからユーザー情報を取ろうとする。

LDAPで認証をするときは大まかに二つあって、
  • LDAPサーバにユーザーIDと(平文)パスワードを渡して、LDAPサーバでOKかどうか返事してもらう
  • LDAPサーバから暗号化されたパスワードを取得して、自前でパスワードが正しいか判断する
dovecotは前者はサポートしないらしい(*1)。これだとパスワードの暗号化の方法とかで面倒なことになりそうなので(*2)、認証だけはPAM、そのほかのユーザー情報はanonymousで取ってくるようにと、/etc/dovecot.confを以下のように変更。
auth_userdb = ldap /etc/dovecot-ldap.conf
auth_passdb = pam
[2008/3/11 追記] (*1) パスワードが平文でLDAPサーバに送られてしまうからですかねぇ? TLSなどの対策した方がよさそうです。 (*2) 暗号化方法にSSHAとかMD5とか複数ありまして、適当に暗号化方法を決め打ちでやるとLDAP側で暗号化方法を変えた瞬間認証できなくなります。ちゃんと対応すればいいのですが、面倒なので・・・PerlでSSHAの暗号化ってどうやるの^^;
LDAPサーバへのアクセス設定は別ファイル/etc/dovecot-ldap.confで行うと設定。サンプルはソースファイルのdocディレクトリにあります。認証はPAMでやるため設定は簡単で、
base = dc=example, dc=com
hosts = ldap.server.example.com
などと自分の環境に合わせます。LDAPサーバーは認証要求応答とユーザー情報提供をanonymousに行うため、/etc/openldap/slapd.confを以下のように。これはProFTPDLink の時から変更なし。
access to attrs=userPassword
        by self write
        by dn="cn=manager,dc=example,dc=com" write
        by anonymous auth
        by * none

access to *
        by self write
        by dn="cn=manager,dc=example,dc=com" write
        by * read
PAMの設定はデフォルトのままで、/etc/pam.d/dovecotを
#%PAM-1.0
auth       required     pam_nologin.so
auth       required     pam_stack.so service=system-auth
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
にしてあります。

— posted by mu at 12:05 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0093 sec.
prev
2008.2
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29