web-dev-qa-db-ja.com

Fail2banで過度の404エラーを引き起こすIPをブロックする方法は?

私は、Fail2Ban v0.10.2をUbuntu 18.04にApache 2.4.29とともにインストールし、IPがブロックされたときに、標準のsshおよびApache jailを有効にして、電子メール通知警告による基本的な保護を行いました。

documentation を見て、次の状況に役立つ関連フィルターを見つけることができませんでした。

サーバーにヒットし、偽のURLリクエストが原因で多数の404エラーを生成するIPを禁止します。これは、典型的なスパムボットの動作である可能性があります。したがって、理想的には、公式の検索エンジンクローラーの一部の例外を除いて、連続して4つ以上の404エラーを生成するIPがブロックされます。

この状況のデフォルトの正規表現はありますか?

これを実装する方法について、あなたの援助をお願いします。

3
TitusQuinn

Apache-noscript/etc/jail.local`に組み込みのfail2ban. To do so, add the following lines toフィルターを実装することから始めることをお勧めします

[Apache-noscript] 
     enabled = true 
     port = http,https 
     filter = Apache-noscript 
     logpath = /var/log/Apache2/*error.log 
     maxretry = 3 
     bantime = 600 

禁止時間の設定を好みに合わせて調整し、違反者を繰り返すためにrecidivフィルター/刑務所を実装することを検討してください。

注: filter regex にバグがある可能性があります

2
uSlackr

頻繁に404メッセージが表示されるこれらの場所をログに記録しないようにApacheを構成することをお勧めします。そうすることで、CPUとディスクIOログの書き込みを節約して、実際の訪問者に使用できます。

ログをスキャンするためにfail2banが必要ない場合、CPU/IO時間も節約されます。

実際のビジターはすべて、IP/nftablesルールの影響を受けずに済み、アクセスが遅くなります。

また、ログを見て、関心のある実際の訪問者ではなく、インターネットのバックグラウンドノイズに集中するという苦痛も軽減されます。

0
danblack