PAM(Pluggable Authentication Modules)は、Linuxでのログインやサービスへのアクセスにおいて、柔軟な認証方法を提供するフレームワークです。
目次
🧩 PAMの特徴
| 特徴 | 説明 |
|---|
| モジュール式 | 必要な認証機能をモジュールで追加可能(例:パスワード強度チェック、SSOなど) |
| サービスごとに設定可能 | 各サービス(例:login, sudo, sshd)に個別設定が可能 |
| 一元管理 | 認証、アカウント管理、パスワード管理、セッション管理を統一的に制御可能 |
🗂 PAMの設定ファイル構造
| ファイル | 内容 |
|---|
/etc/pam.d/ | 各サービスごとの個別設定ファイル(推奨) |
/etc/pam.conf | レガシーな一括設定ファイル(現在は非推奨) |
/etc/nsswitch.conf | 名前解決やユーザー情報の取得方法を指定 |
/etc/sssd/sssd.conf | SSSD の設定ファイル(LDAPやADなどを使用する際に利用) |
🔧 PAM設定ファイルの基本構造
各PAM設定ファイルには以下の4種類の管理機能があります:
| タイプ | 説明 |
|---|
auth | 認証処理(パスワード、鍵など) |
account | アカウント有効性の確認(有効期限など) |
password | パスワードの変更処理 |
session | セッションの開始・終了時の処理(リソース制限など) |
例:/etc/pam.d/login
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_limits.so
🔌 主なPAMモジュールの紹介
| モジュール | 説明 |
|---|
pam_unix.so | ローカルの /etc/passwd / /etc/shadow を利用 |
pam_cracklib.so | パスワードの複雑さをチェック |
pam_limits.so | ユーザーごとのリソース制限(メモリ、プロセス数など) |
pam_listfile.so | 許可・拒否リストによるアクセス制御 |
pam_sss.so | SSSDを通じた外部認証(LDAPやActive Directory) |
🛠 SSSD(System Security Services Daemon)
✅ SSSDとは?
- LDAP/ADなどの外部ソースと連携し、ユーザー情報や認証を管理。
- キャッシュ機能があり、ネットワークが一時的に切れても認証可能。
🔧 sssd.confの基本例
[sssd]
services = nss, pam
config_file_version = 2
domains = default
[domain/default]
id_provider = ldap
ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
設定後は以下でサービスを起動:
sudo systemctl enable --now sssd
🔍 認証トラブルのデバッグ
auth.log や journalctl でエラー確認:
tail -f /var/log/auth.log
journalctl -xe
- PAM設定ミスでログイン不能になる前に、別のターミナルで root ログインを保持しておくのが安全です。
📌 まとめ
| ポイント | 内容 |
|---|
| PAMは柔軟な認証制御を実現する仕組み | |
各サービスごとに設定が可能(/etc/pam.d/) | |
pam_unix, pam_limits, pam_sss などモジュールを組み合わせる | |
| SSSDを使えばLDAPやAD認証にも対応 | |
| デバッグや変更には慎重さが求められる |
コメント