ネットワークブロック全体の攻撃を検出してブロックするようにFail2banをどのようにトレーニングしますか?

ネットワークブロック全体の攻撃を検出してブロックするようにFail2banをどのようにトレーニングしますか?

マイコンピュータに正しいインストール、有効化、およびfail2banルールがあります。すべてがうまくいきます。sshssh-dosrecidive

最近、ブロック後にIPを切り替えて、「繰り返し」ルールを迂回する同じネットワーク上の複数のホストで繰り返し攻撃パターンが増加することを確認しました。

2015-01-25 11:12:11,976 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.29
2015-01-25 11:12:13,165 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.42
2015-01-25 11:12:16,297 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.28
2015-01-25 11:12:20,446 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.104

私はそれを検出し、これらすべてのタイプの攻撃をブロックする「recidive24」ルールを作成し、ブロック全体/24を禁止したいと思います。

以下で提案を見つけました。Debian エラーファイルFail2banの場合はこれを適用しましたが、次のようになります。

  1. /24刑務所が発動したときに包括的な禁止を適用すると、ssh同じネットワーク上の誰かが単一のIPで攻撃し、私を簡単にブロックできる問題に直面します。

  2. 刑務所はrecidive完璧ですが、StormがIPを変更しても刑務所は実行されません...

だから私はIPの最初の3バイトだけを見ることができるようにフィルタ仕様を変更したいのですが、ここで迷っていますrecidive...禁止を実行する正規表現は(from /etc/fail2ban/recidive.conf)です。

# The name of the jail that this filter is used for. In jail.conf, name the 
# jail using this filter 'recidive', or change this line!
_jailname = recidive

failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+<HOST>\s*$

...全体のIPと一致します。

質問:ホストIPの最初の3バイトのみに一致するように、この失敗正規表現をどのように変更できますか?

スパムIPが検出された場合、問題はサブネット全体をブロックするのではなく、比較的簡単です。問題は、subnet-recidive同じサブネットに5つ以上のヒットがあると何かがトリガーされることです。recidive


別のデーモンを使用してFail2banログファイルをフィルタリングし、毎回最後のバイトが0の2番目のファイルに書き込んで、それを使用して再犯刑務所をトリガーしましたが、本当に不器用だったようです。

ベストアンサー1

/24/22すべての刑務所のコマンドにこの魔法(一部は好きかもしれません)を追加する最も簡単な方法iptablesは、2つのファイルを追加することです。

/etc/fail2ban/action.d/iptables-multiport.local
/etc/fail2ban/action.d/iptables-allports.local

次のコンテンツが含まれています。

[Definition]
actionban = <iptables> -I f2b-<name> 1 -s <ip>/24 -j <blocktype>
actionunban = <iptables> -D f2b-<name> -s <ip>/24 -j <blocktype>

~のため発覚フィルタを修正する必要がある部分が...少し面倒です。しかし、良いことは - 必要はないということです!このサブネットブロッキング機能はうまく機能します。

おすすめ記事