手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 Linux 認証に LDAP を使う – NSS / PAM 連携の基本

CentOS 6 で Linux 認証に LDAP を使う時の基本を確認します。ここでは OpenLDAP サーバーそのものよりも、CentOS 6 クライアントが LDAP を参照し、ユーザー情報や認証を扱う流れを確認します。

LDAP 認証で分けること

LDAP 認証は「ログインできるか」だけで見ると混乱します。ユーザー情報の参照、パスワード認証、PAM、ホームディレクトリ、障害時のローカルログインを分けて考えます。

  • NSS がユーザー・グループ情報を参照する
  • PAM が認証処理を行う
  • LDAP サーバーに接続できる必要がある
  • ローカル管理ユーザーを残す必要がある
  • SSH ログインでは sshd と PAM の両方が関わる

関連パッケージと設定確認

rpm -qa | egrep "nss-pam-ldapd|pam_ldap|nss_ldap|openldap|authconfig"
authconfig --test
cat /etc/nsswitch.conf
ls -l /etc/pam.d

CentOS 6 では nslcd を使う構成や、古い nss_ldap / pam_ldap の構成があり得ます。まず実際の方式を確認します。

NSS の確認

grep -E "^(passwd|shadow|group):" /etc/nsswitch.conf
getent passwd user01
getent group admins

getent で LDAP ユーザーが見える場合、ユーザー情報の参照はできています。ただし、これはログイン成功を意味しません。PAM 側の認証確認が別に必要です。

PAM と SSH の確認

grep -R "ldap\|sss\|nslcd" /etc/pam.d
service nslcd status
service sshd status
tail -f /var/log/secure

SSH ログインでは、sshd の設定、PAM、LDAP 接続、ユーザーのシェル、ホームディレクトリ権限が関係します。どこで失敗しているのかをログで切り分けます。

LDAP 接続確認

ldapsearch -x -H ldap://ldap01.example.net -b "dc=example,dc=local" uid=user01
getent passwd user01
su - user01

LDAP サーバーへ到達できない状態で認証を LDAP に依存すると、管理ログインができなくなることがあります。ローカル管理ユーザーで入れる設計は必須です。

まとめ

CentOS 6 の LDAP 認証では、NSS、PAM、LDAP 接続、SSH、ローカル管理ユーザーを分けて確認します。認証基盤は障害時の復旧経路にも直結するため、LDAP だけに依存した設計になっていないかを確認することが重要です。

関連する記事

参考書籍

参考書籍
参考書籍
ストーリーで覚える Linux CLI 入門

CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。

Amazon で見る
このリンクは Amazon アソシエイトリンクです。
CentOS 6 Linux 認証に LDAP を使う – NSS / PAM 連携の基本

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る