
ブロックするボットのリストがあるので、fail2ban が解決策になると考えていましたが、この種のタスクでは mod_security の方が効率的であることに気付きました。
ボットの数は膨大であるため、構成ファイルには長いリストが含まれます。
私の質問はパフォーマンス(メモリ、プロセッサ、ディスクなど)に関するものです。
ブロックするボットのリストが膨大になると、トラフィック量の多いサイトでの Apache のパフォーマンスに影響しますか?
答え1
パフォーマンスは問題にならないはずです。ModSecurity の @rbl 機能とローカル DNS キャッシュを組み合わせて確認してください。これにより、DNS 内の違反者を追跡し、接続を許可またはブロックするかどうかを決定するときにその DNS ゾーンを参照として利用できるようになります。
答え2
ボットの長いリストを管理する代わりに、ユーザーエージェント文字列に存在するいくつかのキーワードに基づいてボットをフィルタリングし、特定のボットのみを通過させることができます。
私はこれを使用して、サイトをクロールしてほしくないスパイダーやボットをすべてブロックします。そして、それらのうち、Web サイトのインデックス作成に関心のあるものだけを通過させます。その他はすべてファイアウォールによってブロックされます。
これまでのところ、私にとってこれは非常にうまく機能しています。
sudo nohup tail -f /var/log/apache2/access.log | awk -F' - |\"' 'tolower($7) ~ /bot|crawler|spider/ && tolower($7) !~ /google|yahoo|bing|msn|ask|aol|duckduckgo/{system(" sudo ufw deny from "$1" to any comment \""$7"\"")}' > /dev/null &