毎日午後2時から3時頃、大量のボットが私のWebサイトにやって来て、彼らはただそれを殺します。数日前は2〜3 IPだったので簡単にブロックできましたが、今日では600を超えるボットがやって来て、私のWebサイトに3時間連続で殺到し続けました。 IPは異なり、変化し、世界のさまざまな地域からのものでした。 650人のApacheワーカーはそれを処理できませんでした。
これらのボットは、本当に愚かな/ランダムなURLを参照しているため、100%疑わしいです。例えば:
209.141.61.45 - - [18/Apr/2019:19:37:03 +0200] "GET ***" 200 23611 "/mhrjh" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
195.176.3.19 - - [18/Apr/2019:19:37:03 +0200] "GET ***" 200 24330 "https://search.aol.com/search?q=sjhryp" "Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36"
172.96.118.14 - - [18/Apr/2019:19:37:04 +0200] "GET ***" 200 22477 "https://yandex.ru/search/?izpyzuxwbn" "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
このタイプの攻撃からサーバーを保護する方法はありますか?これまで、ジオブロッキングを試しましたが、すべての外部IPアドレスがiptablesに追加されるまでには時間がかかります。
ご存知のように、DDOS攻撃を軽減することは困難です(そしてこれは少なくともそう思われます)。 fail2ban
などのサービスを使用して、これらのIPがWebサーバーに接続することを禁止できます。限定的な攻撃では、これが役立つ場合があります。ただし、IPを禁止するには数回の繰り返し要求が必要であり、それはWebサーバーがその時間内で処理できるよりも多くの要求になる可能性があります。
この問題の良い解決策は、CDN(コンテンツ配信ネットワーク)を使用して、クライアントに提供するためにOriginサーバーにアクセスする必要のない静的コンテンツのキャッシュを確立することです。他の方法に加えて同じ追放方法を実装することによるDDOS保護を含む、多くの機能を備えた有料のCDNがあります(ただし、最初のスパイクを処理できるはるかに大規模なネットワーク上にあります)。
ただし、持続的で十分に多様なDDOS攻撃は、時間内に対処されない場合、WebサイトのダウンタイムであったものをCDNプロバイダーからの多額の請求に変える可能性があります。