Быстрая защита веб-сервера apache/nginx от ddos атаки

Защита с помощью fail2ban, через лимиты на количество запросов к веб серверу

1. Устанавливаем fail2ban
yum install fail2ban       для CentOS
apt-get install fail2ban   для Debian

2. в файл /etc/fail2ban/jail.local добавляем:
enabled=true
 
port=http,https 
filter=http-get-dos 
logpath=/var/log/apache2/путь к файлу акцес лога

# maxretry - как много GET запросов разрешено до отправки в бан 
maxretry=300 
# findtime время за которое подсчитывается количество запросов 
findtime=300 
# bantime время бана 
bantime=300 action=iptables[name=HTTP,port=http,protocol=tcp]

2. Создаём фильтр который используем в jail.local 
/etc/fail2ban/filters.d/http-get-dos.conf

# Option: failregex

failregex = ^<HOST> -.*"(GET|POST).*

# Option: ignoreregex

ignoreregex =

3. Включаем сервис

systemctl restart fail2ban
systemctl enable fail2ban


Наблюдаем за результатом бана через iptables

iptables -vnL