膨大なIP攻撃を受けているように見えるアプリケーションがあります。
- ログファイル:
/root/kitty/nohup.out
- クラフト:子猫
- ポート: 8888
[2021-08-31 10:02:20] [ALL] 168.138.142.22:50384 incoming connection
[2021-08-31 10:02:21] [ALL] 168.138.78.185:57728 incoming connection
[2021-08-31 10:02:21] [ALL] 168.138.78.185:57614 incoming connection
[2021-08-31 10:02:21] [ALL] 168.138.146.133:59078 incoming connection
[2021-08-31 10:02:22] [ALL] 140.238.152.56:32884 incoming connection
[2021-08-31 10:02:22] [ALL] 168.138.146.133:57606 tunnel established
[2021-08-31 10:02:22] [ALL] 168.138.146.133:57606 SSL session reused
[2021-08-31 10:02:22] [ALL] 140.238.152.56:32976 incoming connection
[2021-08-31 10:02:22] [ALL] 140.238.152.56:48210 incoming connection
[2021-08-31 10:02:22] [ALL] 168.138.78.185:52390 tunnel established
私がしたいことは:
- 最後の60秒間のログを取得するには、ログファイルを追跡します。
- 要求制限を超えるIPブロック(例:1秒あたり2要求)
Fail2banでこれを行う方法は?
修正する
設定するファイルと実行するコマンドを教えてもらえますか?
編集/etc/fail2ban/jail.conf
して内容を追加しました。
[DEFAULT]
maxretry = 5
findtime = 300
bantime = 3600
bantime.increment = true
bantime.factor = 2
Fail2banサービスを再起動しましたが、何も起こりませんでした。
/etc/fail2ban/filter.d/kitty.conf
コンテンツを含む新しいフィルタを作成しました。
[INCLUDES]
before = common.conf
[DEFAULT]
_daemon = kitty
このコンテンツも追加してください。/etc/fail2ban/jail.conf
[kitty]
enabled = true
maxretry = 1000
findtime = 100
bantime = 3600
bantime.increment = true
bantime.factor = 2
logpath = /root/kitty/nohup.out
その後、Fail2banサービスを再起動すると、kitty
リストに表示されます。
# fail2ban-client status kitty
Status for the jail: kitty
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /root/kitty/nohup.out
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
それでもブロックされたIPはありません(悪意のあるIPが途方もなく出てくるのを見ています...)
設定するファイルと実行するコマンドを教えてもらえますか?
答え1
技術的に、あなたが要求することは刑務所ファイルのDEFAULTセクションのこれらの2つのパラメータによって達成することができます。
[DEFAULT]
maxretry = 2
findtime = 1
しかし、これは実用的ではなく、厳しすぎて正常なアクセスを試みている間に正当なIPをブロックする可能性が高いです。
[DEFAULT]
maxretry = 5
findtime = 300
このログでは、「攻撃者」がいくつかのIP循環スクリプトを使用していることを確認できるため、禁止時間を長くするなど(反復違反者に対して)より効果的なタスクを実行できます。次のようにしてみてください。
[DEFAULT]
maxretry = 5
findtime = 300
bantime = 3600
bantime.increment = true
bantime.factor = 2
上記の遮断時間は、常習違反者の場合は2倍になり、IPが摘発されるたびに2倍に増えます。スクリプトが失敗して停止するのに十分です。
特定のサービスに対してこれらのタスクを実行するには。代わりに、特定のサービスの刑務所ファイルにオプションを含めるだけです[DEFAULT]
。
変更した後は、サービスを再起動または再ロードすることを忘れないでください。