PAM認証とは?

PAM(Pluggable Authentication Modules)は、Linuxでのログインやサービスへのアクセスにおいて、柔軟な認証方法を提供するフレームワークです。


目次

🧩 PAMの特徴

特徴説明
モジュール式必要な認証機能をモジュールで追加可能(例:パスワード強度チェック、SSOなど)
サービスごとに設定可能各サービス(例:login, sudo, sshd)に個別設定が可能
一元管理認証、アカウント管理、パスワード管理、セッション管理を統一的に制御可能

🗂 PAMの設定ファイル構造

ファイル内容
/etc/pam.d/各サービスごとの個別設定ファイル(推奨)
/etc/pam.confレガシーな一括設定ファイル(現在は非推奨)
/etc/nsswitch.conf名前解決やユーザー情報の取得方法を指定
/etc/sssd/sssd.confSSSD の設定ファイル(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.soSSSDを通じた外部認証(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.logjournalctl でエラー確認:
tail -f /var/log/auth.log
journalctl -xe
  • PAM設定ミスでログイン不能になる前に、別のターミナルで root ログインを保持しておくのが安全です。

📌 まとめ

ポイント内容
PAMは柔軟な認証制御を実現する仕組み
各サービスごとに設定が可能(/etc/pam.d/
pam_unix, pam_limits, pam_sss などモジュールを組み合わせる
SSSDを使えばLDAPやAD認証にも対応
デバッグや変更には慎重さが求められる
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次