CentOS 5 で LDAP を使った統合認証を構成する考え方を確認します。この記事では、OpenLDAP サーバーそのものの構築よりも、Linux クライアントや周辺サービスが LDAP を参照してユーザー情報を扱う時の見方に重点を置きます。
LDAP 統合認証で分けて考えること
LDAP 連携は「ログインできるか」だけで見ると混乱します。ユーザー情報の参照、認証、権限、ホームディレクトリ、Samba やメールとの連携を分けて確認します。
- ユーザー・グループ情報をどこから引くか
- パスワード認証をどこで行うか
- NSS と PAM の設定
- ホームディレクトリの扱い
- 障害時にローカルユーザーで入れるか
CentOS 5 世代では SSSD ではなく、nss_ldap や pam_ldap を使った構成が多くあります。現代の構成とは前提が違うため、古い設定ファイルをそのまま新環境へ持ち込まない方が安全です。
関連パッケージと設定ファイル
rpm -qa | egrep "nss_ldap|pam_ldap|openldap|authconfig"
cat /etc/ldap.conf
cat /etc/nsswitch.conf
ls -l /etc/pam.d/etc/ldap.conf、/etc/nsswitch.conf、PAM 設定が連動しているかを確認します。どれか一つだけ見ても、ログインできる理由やできない理由は分かりません。
nsswitch.conf の確認
NSS はユーザーやグループ情報をどこから引くかを決めます。LDAP 参照を使う場合、passwd、shadow、group に ldap が含まれることがあります。
grep -E "^(passwd|shadow|group):" /etc/nsswitch.conf
getent passwd user01
getent group adminsgetent で LDAP ユーザーが見える場合、少なくともユーザー情報の参照はできています。ただし、見えることとログインできることは別です。
PAM と認証確認
ログイン認証は PAM 側で制御されます。system-auth やサービス別 PAM 設定に LDAP 認証が含まれているかを確認します。
grep -R "pam_ldap" /etc/pam.d
grep -R "pam_unix" /etc/pam.d
authconfig --testLDAP 側の障害時に完全にログインできなくなる設計は危険です。最低限、管理用のローカルユーザーで入れることを確認しておく必要があります。
動作確認
ldapsearch -x -b "dc=example,dc=local" uid=user01
getent passwd user01
su - user01
tail -f /var/log/secureログインできない場合は、LDAP 検索、NSS、PAM、ホームディレクトリ、シェル、アクセス制御を順番に切り分けます。いきなり PAM を書き換えると復旧が難しくなるため、事前に別セッションを残すなどの安全策が必要です。
まとめ
CentOS 5 の LDAP 統合認証は、NSS、PAM、LDAP サーバー、管理用ローカルユーザーを分けて確認する必要があります。古い環境では設定が複数ファイルに分散しているため、ログイン可否だけで判断せず、ユーザー参照と認証の流れを丁寧に追うことが重要です。
関連する記事
- CentOS 5 サーバー管理ガイド
CentOS 5 系の記事を役割別に確認できるハブページです。 - CentOS 5 OpenLDAP サーバー構築
LDAP サーバー側の基本構成です。 - CentOS 5 LDAP 参照設定
クライアント側の参照設定を扱います。
参考書籍
古い Linux サーバーの記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。
Amazon で見る

「CentOS 5 LDAP 統合認証 – ユーザー情報を一元管理する考え方」への1件のフィードバック