間違ったパスワードを入力した後に発生する遅延をどのように変更しますか?


32

ログインプロンプトで間違ったパスワードを入力した後、約3秒の遅延があります。PAMを搭載したLinuxシステムでこれを変更するにはどうすればよいですか?


1
セキュリティの観点から遅延が必要になりますが、デフォルトの遅延かなり面倒です
マイクペニントン

3
これは興味深いものです。多分、遅延なしでN回試行した後、長い遅延で何回でも試行できるモジュールを作成します。
ショーンJ.ゴフ

1
代わりに(私の以前のコメントで提案されている)新しいモジュールの、私が使用pam_unixしてnodelayオプションとpam_tally2してdeny=5 unlock_time=15、これにより、すぐに5回再試行できますが、15秒間アクセスが拒否されます(パスワードが成功した場合でも)。記述されたモデルを作成することを試みますが、今ではバックバーナープロジェクトです。これは、システムへのプライマリアクセスがDOS攻撃を簡単にするため、ネットワークベースの場合は適切ではないためです。
ショーンJ.ゴフ

1
タイムアウトによるネットワークDoSが心配な場合は、fail2banを使用してください。実際、安全だと思われる場合でも使用してください:-)。私は2日間の禁止時間を使用します
マイクペニントン

回答:


21

LinuxとPAMを使用していると思います。遅延はおそらくによって引き起こされpam_faildelay.soます。を/etc/pam.d使用してpam設定を確認しますpam_faildelay。例:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

時間を変更するには、遅延パラメーターを調整します。遅延を取り除きたい場合は、行全体を削除/コメントすることができます。

遅延の別の原因はかもしれませんpam_unix.so。パラメーターのpam_unix.so追加による遅延を無効にし、nodelayオプションでpam_faildelay.so(変数)遅延を追加するように呼び出すラインを追加します。例:

auth       optional   pam_faildelay.so  delay=100000

2
遅延はどこにも記載されていません/etc/pam.d/*。私が見る最も近いものはpam_tally.so、いくつかの試行後にロックを許可することです。しかし、私はnを持ってい/etc/login.defsます。これは私が必要なものかもしれません。
ショーンJ.ゴフ

@ ShawnJ.Goff pam_tally.soは私の知る限り遅延を引き起こしません。dealyためのもう一つの源とすることができるpam_unix.so-あなたがそれを無効にすることができますnodelayオプション-参照linux.die.net/man/8/pam_unixの詳細
ウルリッヒDangelを

1
追加nodelayのオプションをpam_unix.soしてして新しいエントリを追加しpam_faildelay.so delay=$some_number、私は私が欲しいものは何でも設定できます。ありがとう!
ショーンJ.ゴフ

2
fedora 23を実行して、pam_unix.so遅延を無効にし、pam_faildelay.so@ ShawnJ.Goffが言うように遅延の使用を開始する必要がありました。ただし、ほとんどのpam.d構成には「このファイルは自動生成されます。次にauthconfigを実行すると、ユーザーの変更は破棄されます。」だから、どこで永続的に遅延を構成できますか?
-jozxyqk

11

nodelayパラメータをに渡す必要がありますauth pam_unix.so

認証方法によって、パラメータを設定する必要がある場所は異なります。しかし、ほとんどの Linuxディストリビューションには/etc/pam.d/system-auth、すべての異なるファイルに含まれているようなものがあります。

たとえば、/etc/pam.d/system-auth次のような行があるとします。

auth            sufficient      pam_unix.so try_first_pass nullok

これは次のように変更する必要があります。

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

pam_unix.soモジュールはに対して認証を実行するものである/etc/passwd/etc/shadow。LDAPまたは他のパスワードバックエンドを使用している場合、プロンプトを制御するものとして設定nodelayする必要がありpam_unix.soます(pam_unix.so認証に失敗すると、通常は取得したパスワードを次のモジュールに渡します)。

あなたはについての詳細を読むことができますpam_unix.so実行してman pam_unix


私のシステムにsystem-authは存在しませんでした。だった/etc/common-auth。ありがとう!
リュック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.