Назад | Перейти на главную страницу

Можете ли вы заблокировать ip с несколькими подключениями? (DDoS-атака Apache)

Мой сервер сейчас находится под атакой Apache ddos. Существует масса одиночных IP-адресов с 30+ подключениями.

Когда я использую эту команду SSH:

netstat -n | grep ':80' | awk -F' ' '{print $5}' | awk -F':' '{print $1}' | sort | uniq -c | sort -n

Я получаю это:

     30 69.144.146.74
     31 190.216.242.195
     31 92.20.224.127
     34 24.127.224.73
     37 197.34.29.122
     37 85.225.133.82
     38 108.29.62.196
     38 86.95.44.115
     40 66.62.146.84
     40 94.123.91.147
     46 24.117.238.91
     48 70.112.112.127
     48 71.58.158.150
     48 75.65.172.192
     51 99.127.238.167
     52 99.98.74.66
     53 107.7.34.66
     54 95.238.27.3

Я уже внес в черный список более 100 IP, но в течение 5 минут. есть все новые ip с 50+ подключениями.

Я понятия не имею, что делать прямо сейчас. Есть ли способ разрешить только IP-адресу иметь одно соединение за раз? Или есть брандмауэр, который может защитить от этого? Я здесь волнуюсь, как это можно исправить? Спасибо.

Есть оборудование / брандмауэры, которые могут это сделать. Ваш вариант на уровне apache - это функция, называемая «дросселирование». Раньше для этого был модуль, но вроде убрали.

https://stackoverflow.com/questions/7467183/throttling-requests-by-ip-address-on-apache

Проверьте fail2ban и, возможно, просмотрите свои правила iptables.

fail2ban это традиционный, широко используемый и поддерживаемый инструмент для решения вашей ситуации и тому подобного. Он заносит в черный список IP-адреса, которые атакуют вас, (в зависимости от того, как вы его настроили), добавляя специальную цепочку к iptables и автоматически заполняя правила отбрасывания для атакующих IP-адресов.

Это зависит от степени серьезности, но вы всегда можете попробовать использовать mod_evasive или mod_security. Это программные брандмауэры, каждый из которых выполняет разные действия для реагирования в случае атаки. Если на вас сейчас нападают, я бы рекомендовал использовать mod_evasive сразу, так как это легче понять, чем mod_security и очень настраиваемый с самого начала. mod_security - гораздо лучшее долгосрочное решение, но вам может потребоваться много времени, чтобы правильно его настроить, чтобы он не мешал ожидаемому поведению на вашем сервере.