PAM - Pluggable Authentication Modules

Support HackTricks

基本情報

PAM (Pluggable Authentication Modules) は、コンピュータサービスにアクセスしようとするユーザーの身元を確認するセキュリティメカニズムとして機能し、さまざまな基準に基づいてアクセスを制御します。これはデジタルゲートキーパーのようなもので、認可されたユーザーのみが特定のサービスに関与できるようにし、システムの過負荷を防ぐために使用を制限することがあります。

設定ファイル

  • SolarisおよびUNIXベースのシステムは、通常、/etc/pam.confにある中央設定ファイルを利用します。

  • Linuxシステムは、ディレクトリアプローチを好み、サービス固有の設定を/etc/pam.dに保存します。たとえば、ログインサービスの設定ファイルは/etc/pam.d/loginにあります。

ログインサービスのPAM設定の例は次のようになります:

auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

PAM管理領域

これらの領域、または管理グループには、authaccountpassword、およびsessionが含まれ、それぞれ認証およびセッション管理プロセスの異なる側面を担当しています:

  • Auth: ユーザーの身元を確認し、通常はパスワードの入力を促します。

  • Account: アカウントの検証を処理し、グループメンバーシップや時間制限などの条件を確認します。

  • Password: パスワードの更新を管理し、複雑さのチェックや辞書攻撃の防止を含みます。

  • Session: サービスセッションの開始または終了時のアクションを管理し、ディレクトリのマウントやリソース制限の設定などを行います。

PAMモジュール制御

制御はモジュールの成功または失敗に対する応答を決定し、全体の認証プロセスに影響を与えます。これには以下が含まれます:

  • Required: 必須モジュールの失敗は最終的な失敗を引き起こしますが、すべての後続モジュールがチェックされた後にのみ発生します。

  • Requisite: 失敗時にプロセスを即座に終了します。

  • Sufficient: 成功は同じ領域の残りのチェックをバイパスしますが、後続のモジュールが失敗した場合は除きます。

  • Optional: スタック内の唯一のモジュールである場合にのみ失敗を引き起こします。

例のシナリオ

複数のauthモジュールを持つセットアップでは、プロセスは厳格な順序に従います。pam_securettyモジュールがログイン端末を不正と見なすと、rootログインはブロックされますが、その「required」ステータスのためにすべてのモジュールは処理され続けます。pam_envは環境変数を設定し、ユーザーエクスペリエンスを向上させる可能性があります。pam_ldappam_unixモジュールは協力してユーザーを認証し、pam_unixは以前に提供されたパスワードを使用しようとし、認証方法の効率と柔軟性を高めます。

参考文献

Support HackTricks

Last updated