Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.2.2. アノテーション付き PAM 設定例

例10.1「シンプルな PAM 設定」 は、PAM アプリケーション設定ファイルのサンプルです。

例10.1 シンプルな 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_pwquality.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 モジュールに対し、空のパスワードを許可するように nullok に指示します。
  • auth required pam_nologin.so — これは、認証の最終ステップです。これは、/etc/nologin ファイルが存在するかどうかを確認します。ユーザーが存在して root でない場合は、認証に失敗します。
    注記
    この例では、最初の auth モジュールが失敗しても、3 つの auth モジュールがすべてチェックされます。これにより、ユーザーは認証に失敗したステージを把握できません。攻撃者のこのような知識により、システムのクラッキング方法がより簡単に推測される可能性があります。
  • account required pam_unix.so — このモジュールは、必要なアカウントの検証を実行します。たとえば、シャドウパスワードが有効になっていると、pam_unix.so モジュールのアカウントインターフェイスが、アカウントの有効期限が切れたかどうか、または許可された猶予期間内にユーザーがパスワードを変更していないかどうかを確認します。
  • password required pam_pwquality.so retry=3 — パスワードの有効期限が切れた場合は、pam_pwquality.so モジュールのパスワードコンポーネントは新しいパスワードを要求します。その後、新たに作成されたパスワードをテストして、辞書ベースのパスワードクラッキングプログラムで簡単に判別できるかどうかを確認します。
    引数 retry=3 は、テストに 1 回失敗しても、ユーザーは強固なパスワードを作成する機会があと 2 回あることを示しています。
  • password required pam_unix.so shadow nullok use_authtok — この行は、pam_unix.so モジュールの password インターフェイスを使用して、プログラムがユーザーのパスワードを変更するかどうかを指定します。
    • 引数 shadow は、ユーザーのパスワード更新の際にシャドウパスワードを作成するようモジュールに指示します。
    • この引数 nullok は、ユーザーが空のパスワード から パスワードを変更できるようにするようにモジュールに指示します。それ以外の場合は、null パスワードはアカウントロックとして扱われます。
    • この行の最後の引数 use_authtok は、PAM モジュールをスタックする際に順序の重要性を示す優れた引数を提供します。この引数は、ユーザーに新しいパスワードを要求しないようにモジュールに指示します。代わりに、以前のパスワードモジュールで記録されたパスワードを受け入れます。これにより、新しいパスワードはすべて、受け入れられる前に安全なパスワードの pam_pwquality.so テストを通過する必要があります。
  • session required pam_unix.so — 最後の行は、pam_unix.so モジュールのセッションインターフェイスにセッションを管理するよう指示します。このモジュールは、各セッションの開始と最後で、ユーザー名とサービスタイプを /var/log/secure に記録します。このモジュールは、追加機能のために他のセッションモジュールとスタックすることで補足できます。