修正する

修正する

膨大な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

私がしたいことは:

  1. 最後の60秒間のログを取得するには、ログファイルを追跡します。
  2. 要求制限を超える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]

変更した後は、サービスを再起動または再ロードすることを忘れないでください。

関連情報