Мой сервер apache в настоящее время подвергается атаке DDoSed. Похоже, что весь трафик - это переходы с файлового сервера русского файлообменника. Как я могу заблокировать только трафик со взломанного сайта?
Ни один из приведенных выше ответов не поможет.
Если ваш сайт подвергся DDoS-атаке, единственный реальный и полезный источник помощи - это контакт по техническим вопросам у вашего вышестоящего провайдера.
Да, вы можете отклонять и отбрасывать пакеты на границе ваш сети, но это не имеет значения, если ваше соединение уже было насыщено трафиком, поступающим извне.
Вам нужно работать с вашим провайдером, чтобы отбрасывать трафик, когда он выходит за пределы их сети, которая имеет много резервной избыточной емкости и к которой намного проще применить целые блоки нулевого маршрута.
Изменение iptables или перезапись на вашем веб-сервере может создать впечатление, что атака остановлена, но это похоже на попытку наложить повязку на перерезанную артерию.
Огромный объем трафика атаки может даже перегрузить ваше ядро, если оно выполняет работу с iptables, сброс трафика также требует времени процессора. Попросите вашего интернет-провайдера / транзитного провайдера сделать это.
С их точки зрения тоже проще.
Вы можете защитить свой сайт от DoS (с любого сайта) простым ограничением количества существующих подключений на IP с помощью iptables.
Это правило отклоняет более 10 подключений с одного ip:
iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN, SYN, RST, ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT --reject-with tcp-сброс
И это регистрирует инциденты:
iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN, SYN, RST, ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j LOG --log-prefix "ABOVE_LIMIT"
Количество соединений - это только пример, вы должны установить собственное значение. Но если вы знаете, что в данный момент DoS наводняет вас с этого русского сайта, заблокируйте этот IP навсегда
iptables -I INPUT -s X.X.X.X -j DROP
Где x.x.x.x - IP-адрес этого сайта.
Большинство DDoS-атак происходит с множества IP-адресов, поэтому блокировка только одного IP-адреса может не «решить проблему». Однако, чтобы мы могли помочь вам (в настоящей DDoS-атаке), нам потребуется гораздо больше информации, например, какой тип DDoS-атаки - это SYN-флуд, ICMP-флуд, что-то еще и т. Д.
Чтобы ответить на ваш конкретный вопрос ...
Как я могу заблокировать только трафик со взломанного сайта?
В зависимости от вашей ОС (это Ubuntu? CentOS? Что-то еще?) И того, как она настроена (это VPS? Физический сервер, которым вы владеете?), Вы можете использовать IP-таблицы для блокировки запросов, поступающих с определенного IP-адреса:
iptables -I INPUT -s 1.2.3.4 -j DROP
Если это не отвечает на ваш вопрос, дайте нам больше информации о ваших конфигурациях, файлах журналов, архитектуре сервера, о том, что именно происходит и т. Д.
Если под DDoS вы имеете в виду множество обычных пользователей, заходящих в ваш Интернет и скачивающих что-либо, лучше всего отклонить эти запросы реферера.
Лучше всего это найти, просмотрев журналы (неужели нужно несколько строк?).
Итак, вы настроили что-то вроде этого. У вас по-прежнему будет много соединений, но они будут быстро отклонены и не так сильно загружают ваш apache.
RewriteEngine on
RewriteCond %{HTTP_REFERER} referingsite.com [NC]
RewriteRule .* - [F]
Или вы можете сделать это по-другому и отклонить все запросы, у которых нет пустого referer или referer с вашего сайта.
Конечно, если это обычный DDoS, это не поможет.