web-dev-qa-db-ja.com

不正なパスワードの後に​​SSHログインを遅らせるにはどうすればよいですか

不正なパスワードが試行された場合、またはログイン試行が失敗した場合に、SSHからの再試行応答を遅延させるにはどうすればよいですか。遅延を通常よりも2〜3秒長くしたかったのです。

Sshd_configファイルに同じオプションを見つけることができませんでした。

だから誰にどうすればいいのか教えてもらえますか?.

8
Patha

すべてのユーザーをブロックしてrootをブロックする場合でも、この行を/etc/pam.d/password-authまたは/etc/pam.d/sshdに追加できます。authセクションでこれを追加して、すべてのユーザーを5分間ブロックします。

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=300

次の行をアカウントセクションに追加します。

account     required      pam_tally2.so

最後にsshdを再起動すると動作するはずです。この後、次のコマンドで障害ログインを確認できます:pam_tally2この出力が表示されます:

# pam_tally2
Login           Failures Latest failure     From
userxy            4    12/10/13 09:52:31  192.168.100.100
12
kockiren

追加しようとすることができます

auth       optional   pam_faildelay.so  delay=250000

sshdのpam構成ファイル(Debianシステムでは通常/etc/pam.d/sshd)250000の遅延値は0.25秒です。

2
noqqe

IPtablesルールを調整して、達成しようとしていることを達成できます。

前提条件:組み込みLinuxには、netfilterモジュールが組み込まれていて、ファイアウォールの概念を知っていて、以前にiptablesを使用したことが前提です。ルートアクセスが想定されます。Sudo対応の場合は、コマンドの前にSudoを追加してください。

iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource

構文には必要な詳細度はありませんが、この行は、既存のINPUTチェーンにルールを追加するファイアウォールポリスiptablesを指示しています。 -p tcp引数は、このルールがTCPパケットにのみ適用されることを示します。残りの引数のほとんどは-mオプションに依存しています。これは一致を表し、ルールが適用されることをiptablesに伝えますここで、ルールは、TCPポート22に向かう新しい接続の開始を通知するパケットに適用されます。パケットがこれらの属性に一致する場合、iptablesはリモートホストのアドレスを一時リストに記録します。

iptables -N LOG_AND_DROP

上記のルールは実際には別のチェーンを使用してアクションを実行します。これを追加するには、最初に、実行したチェーン(例:LOG_AND_DROP)を作成する必要があります

iptables -A INPUT  -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 20 --hitcount 4 --name DEFAULT --rsource -j LOG_AND_DROP

このルールは、前のルールのパラメーターに一致するパケット、およびすでに監視リストに追加されているホストからのパケットも検索するようにiptablesに指示します。 iptablesがそのようなホストからのパケットを検出すると、そのホストの「最後に検出された」タイムスタンプを更新します。 --seconds 20および--hitcount 4引数は、ブロックするホストをさらに絞り込むために使用されます。ホストが60秒以内に4回以上接続を試みると、ルールのその部分に一致し、ジャンプします(-j )LOG_AND_DROPチェーンに。

iptables -A INPUT  -p tcp -m tcp --dport 22 -j ACCEPT

技術的に言えば、一致しないすべてのパケットのデフォルトがポリシーACCEPTに設定されているため、INPUTチェーンではこのルールは必要ありません。制限のあるファイアウォールを構築した場合のフェイルセーフ。デフォルトの拒否。


@singhからフィードバックを得た後に追加します。より技術的なconntrack(connectiontracking)モジュールを支持して状態が追い出されていることに気付きませんでした

代わりに:

-m state --state RELATED

-m conntrack --ctstate RELATED
2
kaji