pam_tally2 を使用して、ポリシーごとに3回のログイン失敗後にアカウントをロックアウトしていますが、接続しているユーザーはpam_tally2のアクションを示すエラーを受け取りません。 (SSH経由)。
私は4回目の試みで見ることを期待します:
Account locked due to 3 failed logins
requiredまたはrequisiteの組み合わせがないか、ファイル内の順序が助けて。これはRed Hat 6の下にあり、/etc/pam.d/password-auth
を使用しています。ロックアウトは期待どおりに機能しますが、ユーザーは上記のエラーを受け取りません。彼らは正しいパスワードを使用していると確信しているのに認証が失敗する理由を知る方法がないため、これは多くの混乱とフラストレーションを引き起こします。
実装はNSAの Red Hat Enterprise Linux 5の安全な構成ガイド に従います。 (pg.45)それは私の理解です PAMで変更されたのは、/ etc/pam.d/sshdがsystem-authではなく/etc/pam.d/password-authを含むことです 。
誤ったログイン試行を何度も行った後でアカウントをロックアウトすることがセキュリティポリシーで要求される場合は、pam_tally2.soの使用を実装します。
パスワードロックアウトを実施するには、/ etc/pam.d/system-authに以下を追加します。まず、auth行の先頭に追加します。
auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
次に、アカウント行の上部に追加します。
account required pam_tally2.so
編集:
ログインの試行中にpam_tally2をリセットすると、エラーメッセージが表示されます。
user@localhost's password: (bad password)
Permission denied, please try again.
user@localhost's password: (bad password)
Permission denied, please try again.
(pam_tally2を別のシェルからリセット)
user@localhost's password: (good password)
Account locked due to ...
Account locked due to ...
Last login: ...
[user@localhost ~]$
ChallengeResponseAuthentication yes
には/etc/ssh/sshd_config
も必要です。
エラーを表示するには、pam
に会話関数が必要です。
このオプションは、より完全なPAM会話機能を提供するようにsshに指示します。これは、とりわけ、(sshd
によってパスワードが渡されるのではなく)出力を提供し、任意の入力を要求することをカバーします。
編集:PasswordAuthentication no
を使用して、パスワード入力が常にこのPAM会話を通過するようにする必要があります。
残念ながら、あなたが求めているものは利用できません。 OpenSSHは認証のみを許可または拒否します。攻撃者や不器用なユーザーがそれ以上の情報を知ることはなく、これは標準的な動作です。 PAMは、OpenSSHまたはそれが使用している他のアプリケーション固有の動作であるネットワーク通信を認識していません。 認証に使用するモジュールの集まりです
これに加えて、pam_tally2はユーザー定義のエラーメッセージディレクティブを提供しないため、システムログの内容のみを信頼できます。
調査できる方法の1つは、OpenSSHコードベースを変更することです(それほど難しくはありません)が、これはこの質問の範囲外です。