# Практика 4.3
**Практическая работа "Fail2Ban и Dos/DDoS attack" на примере nginx.**
### Задача:
- Организовать простую-тестовую атаку DoS.
- Защитить сервер от DoS/DDoS атак через встроенные возможности nginx.
- Защитить сервер от DoS/DDoS атак с помощью fail2ban при помощи iptables в автоматическом режиме.
- Защитить сервер от DoS/DDoS атак с помощью fail2ban при помощи ipset в автоматическом режиме.
Для начала установим веб сервер nginx
apt install nginx
после установки проверяем, заходим на по локальному адресу localhost

так как fail2ban устанавливали на предыдущем заниятии здесь добавим только дополнение ipset
apt install ipset
В файле /etc/nginx/sites-enable/default добавляем следюущие параметры
limit_req zone=ltwo burst=5 nodelay;

в файле /etc/nginx/nginx.conf добавляем
limit_conn_zone $binary_remote_addr zone=lone:10m;
limit_req_zone $binary_remote_addr zone=ltwo:10m rate=3r/s;
limit_req_zone $binary_remote_addr zone=highspeed:10m rate=10r/s

пробуем в браузере быстро нажимать клавишу f5 или Ctrl+r (обновить страничку) и если усердно делать то можно увидить следующее сообщение

в логах /var/log/nginx/error.log видим следующие ошибки

**Настройке fail2ban от DDoS атак на наш сервер.**
добавим в наш конфигурационный файл /etc/fail2ban/jail.d/service.conf
следующую секцию
[nginx-limit-req]
port = http, https
enabled = true
filter = nginx-limit-req
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 3600
maxretry = 4

создаем файл /etc/fail2ban/action.d/iptables-blocktype.local со следующим содержимым
[Init]
blocktype = DROP
перезапускакм сервис
service fail2ban restart
смотрим что iptables отрабатывает и наберём:iptables -L -v
и что настройки в fail2ban применились и введём:
`fail2ban-client status`

убеждаемся в отсутствии заблокированных адресов
fail2ban-client status nginx-limit-req

после загружаем страничку в браузере, нажимаем ctrl+r несколько раз очень быстро, и видим следующую картину

смотрим статус и видим что нас успешно заблокировали


Конец.