48.4.4. PAM 設定ファイルのサンプルについて
以下は、PAM アプリケーション設定ファイルのサンプルです。
#%PAM-1.0 auth required pam_securetty.so auth required pam_unix.so nullok auth required pam_nologin.so account required pam_unix.so password required pam_cracklib.so retry=3 password required pam_unix.so shadow nullok use_authtok session required pam_unix.so
- 最初の行は、行頭のハッシュ記号 (#) が示すように、コメントになります。
- 2 行目から 4 行目は、ログイン認証用に 3 つのモジュールをスタックしています。auth required pam_securetty.so - このモジュールは、ユーザーが root としてログインしようとすると、そのファイルが存在する 場合 は、ユーザーがログインする tty が
/etc/securetty
ファイルに一覧表示されて いる ことを確認します。tty がファイルに記載されていない場合は、root でログインしようとするとLogin incorrect
メッセージで失敗します。auth required pam_unix.so nullok — このモジュールはユーザーにパスワードを要求し、/etc/passwd
に保存された情報を使用してパスワードをチェックしします。存在する場合は/etc/shadow
。認証フェーズでは、pam_unix.so
モジュールは、ユーザーのパスワードがpasswd
ファイルかシャドウ
ファイルにあるかを自動的に検出します。詳細は、「シャドウパスワード」 を参照してください。 - auth required pam_nologin.so — これは、認証の最終ステップです。これは、
/etc/nologin
ファイルが存在するかどうかを確認します。ユーザーが存在して root でない場合は、認証に失敗します。注記この例では、最初の auth モジュールが失敗しても、3 つの auth モジュールがすべてチェックされます。これにより、ユーザーは認証に失敗したステージを把握できません。攻撃者のこのような知識により、システムのクラッキング方法がより簡単に推測される可能性があります。 - account required pam_unix.so — このモジュールは、必要なアカウントの検証を実行します。たとえば、シャドウパスワードが有効になっていると、
pam_unix.so
モジュールのアカウントインターフェイスが、アカウントの有効期限が切れたかどうか、または許可された猶予期間内にユーザーがパスワードを変更していないかどうかを確認します。 - password required pam_NORMAL.so retry=3 - パスワードの有効期限が切れると、
pam_NORMAL.so
モジュールのパスワードコンポーネントは新しいパスワードを要求します。その後、新たに作成されたパスワードをテストして、辞書ベースのパスワードクラッキングプログラムで簡単に判別できるかどうかを確認します。- 引数 retry=3 は、テストに 1 回失敗しても、ユーザーは強固なパスワードを作成する機会があと 2 回あることを示しています。
- password required pam_unix.so shadow nullok use_authtok - この行は、プログラムがユーザーのパスワードを変更した場合、
pam_unix.so
モジュールの パスワード インターフェイスを使用してそれを行う必要があることを指定します。- 引数 shadow は、ユーザーのパスワード更新の際にシャドウパスワードを作成するようモジュールに指示します。
- この引数 nullok は、ユーザーが空のパスワード から パスワードを変更できるようにするようにモジュールに指示します。それ以外の場合は、null パスワードはアカウントロックとして扱われます。
- この行の最後の引数 use_authtok は、PAM モジュールをスタックする際に順序の重要性を示す優れた引数を提供します。この引数は、ユーザーに新しいパスワードを要求しないようにモジュールに指示します。代わりに、以前のパスワードモジュールで記録されたパスワードを受け入れます。これにより、新しいパスワードはすべて、受け入れられる前に安全なパスワードの
pam_NORMAL.so
テストを渡す必要があります。
- session required pam_unix.so — 最後の行は、
pam_unix.so
モジュールのセッションインターフェイスにセッションを管理するよう指示します。このモジュールは、各セッションの開始と最後で、ユーザー名とサービスタイプを/var/log/secure
に記録します。このモジュールは、追加機能のために他のセッションモジュールとスタックすることで補足できます。