web-dev-qa-db-ja.com

RHEL6のpam_tally2によるアカウントロックアウト

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 ~]$
6
Aaron Copley

ChallengeResponseAuthentication yesには/etc/ssh/sshd_configも必要です。

エラーを表示するには、pamに会話関数が必要です。

このオプションは、より完全なPAM会話機能を提供するようにsshに指示します。これは、とりわけ、(sshdによってパスワードが渡されるのではなく)出力を提供し、任意の入力を要求することをカバーします。

編集:PasswordAuthentication noを使用して、パスワード入力が常にこのPAM会話を通過するようにする必要があります。

6
Pierre Carrier

残念ながら、あなたが求めているものは利用できません。 OpenSSHは認証のみを許可または拒否します。攻撃者や不器用なユーザーがそれ以上の情報を知ることはなく、これは標準的な動作です。 PAMは、OpenSSHまたはそれが使用している他のアプリケーション固有の動作であるネットワーク通信を認識していません認証に使用するモジュールの集まりです

これに加えて、pam_tally2はユーザー定義のエラーメッセージディレクティブを提供しないため、システムログの内容のみを信頼できます。

調査できる方法の1つは、OpenSSHコードベースを変更することです(それほど難しくはありません)が、これはこの質問の範囲外です。

0
atx