GNU/Linux >> Linux の 問題 >  >> Linux

短期間にサーバー上であまりにも多くのヒットを発生させている IP アドレスを自動的かつ一時的にブロックする方法は?

解決策 1:

フェイル2バン。 Linux プラットフォームでのこの問題に対するゴールド スタンダード/デフォルト ソリューション。

解決策 2:

PHP でこれを行うことは避けてください。 PHP が関与するときには、すでに手遅れです。メモリはすでに割り当てられています。

どの層でも IP アドレスを禁止することができますが、使用するリソースの量が最も少ない最下位レベルが、使用したいルートです。これは通常、ファイアウォールです。少なくとも、iptables (Linux ファイアウォール) は使用したいものです。これを自動化できる Fail2Ban など、他の人が言及したツールがあります。外部ファイアウォールの方がよいでしょう。

問題のある IP アドレスを禁止するだけでなく、リソースをより有効に活用するように努める必要があります。リクエストに必要なリソースが少ない場合、攻撃が有効になるまでの時間が長くなります。

Apache も多くのメモリを使用します。 mod_php を使用している場合、PHP はすべての Apache 子プロセス内にロードされるため、さらに悪いことになります。これは、静的コンテンツ (css/js/images) へのリクエストでさえ、PHP が使用されていない場合でも PHP をロードしていることを意味します。代わりに FastCGI を使用することで、この問題を解決できます。 mod_fcgid は良いオプションです。

リソース効率の高い他の Web サーバーもあります。 Nginxは私のお気に入りです。 Lighttpd もあります。多くの人が Litespeed を気に入っています (Apache の代わりにドロップインしてください)。

Apache を使い続けたい場合は、できる限りチューニングすることを検討してください。 .htaccess を無効にすることを検討してください。理由は次のとおりです。

解決策 3:

iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

ossec は、syslog に基づいて、この種のことを自動的かつ透過的に行うことができます。

解決策 4:

http トラフィックを制御またはブロックするには、次を使用できます:

  • Apache モジュール。
  • iptable
  • HopelessN0ob がここで述べたように、fail2ban

ただし、これらのツールは webspider をブロック/遅くする可能性があるため、SEO に影響を与える可能性があることに注意してください。


Linux
  1. LinuxサーバーでIPアドレスをブロックする方法

  2. Ubuntu20.10にOpenLiteSpeedWebサーバーPHPとMariaDBをインストールする方法

  3. 独自のIPアドレスを取得し、シェルスクリプトの変数に保存する方法は?

  1. ローカルホストとIPアドレス間のTCPトラフィックを監視する方法は?

  2. Linux の引数が多すぎる制限を回避する方法

  3. Linux に DHCP サーバーから新しい IP アドレスを強制的に再取得させるにはどうすればよいですか?

  1. LinuxサーバーでIPアドレスをブロックする方法

  2. サーバーが私のIPをブロックしたのはなぜですか?

  3. LinuxでFirewalld、IPテーブル、UFWを使用してポートとIPアドレスを許可またはブロックするにはどうすればよいですか?