正常に実行されるFail2banインスタンスがあります。
しかし、私は時々手動でログをチェックし、標準のf2b定義を解決するシステムプローブを識別するのが好きです。
私が探しているのは、長く続く刑務所を定義する方法であり、次のコマンドで手動で使用できます。
fail2ban-client set $JAIL banip $IP
ログファイルで実際に実行されていないカスタム刑務所(または実際に実行されていないいくつかの条件を持つ標準刑務所の場合もあります)を設定ファイルに割り当てる構文を誰かに提供でき、手動で宣言できますか?私が望むのは、ログを見たときに個人的に識別された手動禁止のためのより長い禁止時間を持つことです。
答え1
これは私がしたことです...
私はこれをjail.localに追加します:
[manban]
enabled = true
filter = manban
action = iptables[name=HTTP, port="80,443,110,995,25,465,143,585,993,587,21,22", protocol=tcp]
logpath = /var/log/manban.log
maxretry = 1
# 1 month
bantime = 2592000
findtime = 3600
その後、/etc/fail2ban/filter.d/manban.confファイルを追加しました。
[Definition]
failregex = ^\[\w{1,3}.\w{1,3}.\d{1,2}.\d{1,2}:\d{1,2}:\d{1,2} \d{1,4}. \[error] \[client.<HOST>].File does not exist:.{1,40}roundcube.{1,200}
ignoreregex =
他のフィルタのフィルタリングプロトコルをコピーしましたが、存在しないファイルをポイントし、ダミーファイルを作成しました。
touch /var/log/manban.log
次に、次のコマンドを実行します。
fail2ban-client reload
今月の IP アドレスを手動で禁止するには、次のように入力します。
fail2ban-client set manban banip <IP>
これは効果がありました。
一部のクライアントは Fail2ban 禁止時間を「学習」し、禁止されないようにシステムプローブを自動的に調整します。しかし、ログを見ると、これがシステムプローブであることは明らかです。ブロッキング時間を非常に長く設定すると、システムを台無しにする可能性があります。また、特定の基準に一致するIPを特別な禁止ログにダンプし、長期間にわたってそのIPを失敗しないようにするスクリプトを作成することもできます。
答え2
上記の構成でエラーが発生します。
iptables v1.6.0:
80,443,110,995,25,465,143
指定されたポート/サービスが無効です。
複数のポートに iptables を適用するには、次の作業を行う必要があります。iptables - マルチポート:
[manban]
enabled = true
filter = manban
action = iptables-multiport[name=HTTP, port="80,443,110,995,25,465,220,585,587,8000,9600", protocol=tcp]
logpath = /var/log/manban.log
maxretry = 1
# 1 month
bantime = 2592000
findtime = 3600
この設定は機能し、iptables ルールセットを正しく更新します。