PAM - Pluggable Authentication Modules
基本情報
PAM (Pluggable Authentication Modules) は、コンピュータサービスにアクセスしようとするユーザーの身元を確認するセキュリティメカニズムとして機能し、さまざまな基準に基づいてアクセスを制御します。これはデジタルゲートキーパーのようなもので、認可されたユーザーのみが特定のサービスに関与できるようにし、システムの過負荷を防ぐために使用を制限することがあります。
設定ファイル
SolarisおよびUNIXベースのシステムは、通常、
/etc/pam.conf
にある中央設定ファイルを利用します。Linuxシステムは、ディレクトリアプローチを好み、サービス固有の設定を
/etc/pam.d
に保存します。たとえば、ログインサービスの設定ファイルは/etc/pam.d/login
にあります。
ログインサービスのPAM設定の例は次のようになります:
PAM管理領域
これらの領域、または管理グループには、auth、account、password、およびsessionが含まれ、それぞれ認証およびセッション管理プロセスの異なる側面を担当しています:
Auth: ユーザーの身元を確認し、通常はパスワードの入力を促します。
Account: アカウントの検証を処理し、グループメンバーシップや時間制限などの条件を確認します。
Password: パスワードの更新を管理し、複雑さのチェックや辞書攻撃の防止を含みます。
Session: サービスセッションの開始または終了時のアクションを管理し、ディレクトリのマウントやリソース制限の設定などを行います。
PAMモジュール制御
制御はモジュールの成功または失敗に対する応答を決定し、全体の認証プロセスに影響を与えます。これには以下が含まれます:
Required: 必須モジュールの失敗は最終的な失敗を引き起こしますが、すべての後続モジュールがチェックされた後にのみ発生します。
Requisite: 失敗時にプロセスを即座に終了します。
Sufficient: 成功は同じ領域の残りのチェックをバイパスしますが、後続のモジュールが失敗した場合は除きます。
Optional: スタック内の唯一のモジュールである場合にのみ失敗を引き起こします。
例のシナリオ
複数のauthモジュールを持つセットアップでは、プロセスは厳格な順序に従います。pam_securetty
モジュールがログイン端末を不正と見なすと、rootログインはブロックされますが、その「required」ステータスのためにすべてのモジュールは処理され続けます。pam_env
は環境変数を設定し、ユーザーエクスペリエンスを向上させる可能性があります。pam_ldap
とpam_unix
モジュールは協力してユーザーを認証し、pam_unix
は以前に提供されたパスワードを使用しようとし、認証方法の効率と柔軟性を高めます。
参考文献
Last updated