2009/10/25

OpenLDAP 2.4: CentOS 5.4でのLDAP認証設定

基本的にはUbuntuの時と同じで、バージョンは違うものの、使っている仕組みは同じなので /etc/ldap.conf をUbuntuからコピーしてきても動きます。

そこでCentOSで設定する時の注意点だけまとめます。

2009/10/24追記:
以下で説明している方法は、次のコマンドで代用できます。
$ sudo authconfig --enableldap --enableldapauth --ldapserver=10.0.0.2 --ldapbasedn="ou=accounts,dc=example,dc=org" --updateall

全体の流れ

CentOS 5.3のDVDから特にRPMを選択せずに導入し、yum updateで5.4相当にしています。 nss_ldapなどのモジュール類は既に入っているので、yumで取得する必要はありませんでした。

”/etc/ldap.conf"→"/etc/nsswitch.conf"→"/etc/pam.d/system-auth"と編集していくだけです。

/etc/pam.d/system-authの編集

"system-auth"ファイルはloginやsshdなどの設定からincludeされている、認証全般を管理するファイルです。 "pam_unix.so"が読み込まれている前に"sufficient pam_ldap.so"を追加していきます。

auth        required      pam_env.so
auth        sufficient    pam_ldap.so
auth        sufficient    pam_unix.so nullok try_first_pass
...
...
account     sufficient    pam_ldap.so
account     required      pam_unix.so
...

まとめ

実際のところPAMの設定で、最低限必要なのは”auth sufficient pam_ldap.so"ぐらいです。 accountセクションに"pam_ldap"を書かなくても、通常のログインに問題はありません。 まだ"shadowAccount"オブジェクトクラスの情報をLDAPに登録していないからです。

他にも”authorizedServiceObject”、"hostObject"オブジェクトクラスをユーザーIDに設定して、ldpa.confで"pam_check_service_attr yes"等を設定してチェックさせる事もできますが、OpenLDAPの標準的なschemaの中には含まれていませんね。

PAMの挙動を確認するためには、ある程度はソースコードの各定義を斜め読みするのが良さそうです。 ドキュメントから全ての動きを想像するのは、ちょっと難しいかもしれません。

さらに追記

CentOSでは"authconfig"コマンドがPAM, NSS等の各種サービスを設定してくれますが、細かいところまでは難しいようです。

system-authについてはsystem-auth-acへのシンボリックリンクになっていて、"authconfig"コマンドは実際にはsystem-auth-acファイルを編集します。そのためカスタマイズする場合にはsystem-authをファイルに置き換えて編集する事で、将来RPMが更新された際などに"authconfig"が実行されて編集内容をリセットしてしまう危険を回避する事ができます。

マニュアルに書いてあるとはいっても普通にファイルを編集してしまうと、意図しないタイミングで書き変わってしまう可能性があるので、そんな事件に遭遇すると嫌になるかもしれないですね…。

0 件のコメント: