Ежедневно около 2–3 часов дня на мой сайт приходит огромное количество ботов, которые просто убивают его. Несколько дней назад было всего 2-3 IP-адреса, поэтому я мог легко заблокировать его, но сегодня пришли более 600 ботов и продолжали наводнять мой сайт в течение 3 часов подряд. IP-адреса были разными, менялись и были из разных частей мира. 650 воркеров apache просто не справились.
Эти боты на 100% подозрительны, потому что они ссылаются на действительно глупые / случайные URL-адреса. Например:
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-адресам подключаться к веб-серверу, и в случае ограниченной атаки это может помочь. Однако для запрета IP-адреса требуется несколько повторяющихся запросов, и это может быть больше запросов, чем веб-сервер может обработать даже за такой промежуток времени.
Хорошим решением этой проблемы является использование CDN (сети доставки контента) для создания кеша для статического контента, который не должен касаться вашего исходного сервера для обслуживания клиентов. Существуют платные CDN с множеством функций, включая защиту от DDOS путем реализации того же метода изгнания в дополнение к другим методам (хотя и в гораздо большей сети, которая может справиться с первоначальным всплеском).
Однако длительная и достаточно разнообразная DDOS-атака может превратить простой веб-сайта в большой счет от вашего провайдера CDN, если вовремя не принять меры.