このPAMコードがDebianシステムへのすべてのログインをブロックするのはなぜですか?

このPAMコードがDebianシステムへのすべてのログインをブロックするのはなぜですか?

この行を追加する理由は次のとおり/etc/pam.d/common-authです。

auth        required      pam_tally2.so deny=4 unlock_time=1200 even_deny_root

次の行を次に追加します/etc/pam.d/common-account

account     required      pam_tally2.so

防ぐみんな私のDebian 10システムにログインしますか?他のすべてのpam設定ファイル(、、、loginおよびcommon-sessioncommon-passwordデフォルト値と同じですが、必要に応じてそれらのファイルも公開できます)

pam_tally私は次のようないくつかの異なる質問について議論するのを見ました。これこれこれpam_tallyしかし、具体的な答えがないか、答えがまったくありません。

(背景には適応しようとしています。今回のアップデート案内Debian システムの場合)

編集:libpam-modulesパッケージがインストールされました。

からcommon-auth

auth    [success=1 default=ignore]  pam_unix.so nullok_secure
auth    required      pam_tally2.so deny=4 unlock_time=1200 even_deny_root
auth    requisite     pam_deny.so
auth    required      pam_permit.so

からcommon-account

account required      pam_tally2.so
account [success=1 new_authtok_reqd=done default=ignore]    pam_unix.so 
account requisite     pam_deny.so
account required      pam_permit.so

ベストアンサー1

この答えには2つの部分があります。最初はpam_tally2に追加しますauth。 2番目はに追加しますaccountpam_tally2正しく機能するには、これら2つの部分が必要です。

あなたのものを見てみましょうcommon-auth

auth    [success=1 default=ignore]  pam_unix.so nullok_secure
auth    required      pam_tally2.so deny=4 unlock_time=1200 even_deny_root
auth    requisite     pam_deny.so
auth    required      pam_permit.so

最初の行は次のとおりです。 「UNIX()認証を試してください/etc/passwd。成功したら行をスキップして続行します。そうでない場合は、次の手順に進みます。」このロジックを使用すると問題が明らかになります。

  1. 成功:1行(success=1)をスキップして[ログイン拒否]をpam_tally2クリックします。pam_deny
  2. 失敗:pam_tally2[次へ]をクリックしましたが、pam_denyログインが拒否されました。

ご覧のとおり、すべてのログインがブロックされます。

解決策の一部は、pam_tally2リストをスタックの上に置くことです。 (変更がうまくいくsuccess=2と思うかもしれませんが、これはpam_tally2成功した認証をスキップするため、タイムアウト後に失敗した場合にリセットされます)。

auth    required                        pam_tally2.so deny=5 unlock_time=1200 even_deny_root
# here are the per-package modules (the "Primary" block)
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth    optional                        pam_cap.so
# end of pam-auth-update config

これにより、数が増えますが、ログインに成功した後にコマンドを使用せずにリセットする方法が必要ですpam_tally2。特に明確ではないのは、最初の項目としてもセクションpam_tally2.soに追加する必要があることです。account

account required                        pam_tally2.so onerr=fail

これをテストしましたが、試してみるとsudo -sPAM構成への変更を元に戻すために、ターゲットコンピュータで追加のルートシェル(たとえば)を開く必要があります。

tail -F /var/log/auth.logあなたは何が起こっているのかを見ることができますwatch pam_tally2 --user {user}

認証が試行されると回数が増加し、成功した場合にのみリセットされるため、回数制限は許可された試行回数より1大きい必要があります。

おすすめ記事