特定のUserAgentの1秒あたりの接続数を制限するためにUFWを使用できますか?

特定のUserAgentの1秒あたりの接続数を制限するためにUFWを使用できますか?

GoogleBotは私のサーバーを真剣に攻撃しています。 WebマスターツールでCrawlRateを設定しても、まだサーバーの負荷が増え、残りのApacheの一般的なネットワークトラフィックが遅くなっています。

ユーザーエージェント文字列に基づいてUFWを使用して1秒あたりの接続数を制限/制限できますか?

そうでない場合は、GoogleBotのIP範囲に対してどのようにこれを行うことができますか?

ベストアンサー1

ufwを使ってこれを直接行うことはできませんが/etc/ufw/before.rules

iptablesを学ぶことをお勧めします。 (最適化されていない)開始点として、例えば

-A ufw-before-input -p tcp --syn -dport 80 -m recent --name LIMIT_BOTS --update --seconds 60 --hitcount 4 --rcheck -j DROP
-A ufw-before-input -p tcp -dport 80 -m string --algo bm --string "NotWantedUserAgent" -m recent --name LIMIT_BOTS --set ACCEPT

動作することができます。もちろん、NotWantedUserAgent正しいものと交換する必要があります。このルールは、特定のボットへの毎分の新しい接続数を制限する必要があります。テストしたことがなく、実際に特定のボットの作業負荷を減らすかどうかはわかりません。

おすすめ記事