Защита от DDoS атак с помощью NGINX и Fail2Ban
Nginx / Security 27-10-2024, 20:20 sobir 1 536 0
Любой ресурс, доступный в интернете, может рано или поздно подвергнуться различным сетевым атакам. В этой статье мы рассмотрим, как противостоять этим угрозам с акцентом на DDoS.
Что такое DDoS атака?
DDoS атака — это попытка перегрузить сервер или сайт, отправляя множество запросов от разных источников, чтобы сделать его недоступным для пользователей.
Рис. 1 Как работает DDoS атака
Защита сайта
Для защиты мы будем использовать модуль NGINX для лимитирования запросов (ngx_http_limit_req_module) и систему обнаружения и предотвращения вторжений (IDS/IPS) Fail2Ban.
Принцип работы:
Модуль лимитирования запросов ограничивает количество запросов от пользователей и записывает события в error.log.
Fail2Ban парсит данные из лог-файла с использованием фильтров и блокирует IP-адреса, производящие подозрительные запросы.
Предполагается, что у вас уже установлен:
- NGINX в качестве веб-сервера или обратного прокси;
- Сервис Fail2Ban.
Итак, приступим.
Подключаем модуль лимитера запросов в NGINX
В основном конфигурационном файле /etc/nginx/nginx.conf добавьте следующее:
http {
limit_req_zone $binary_remote_addr zone=example:100m rate=30r/m;
...
}
- Использует IP-адрес клиента для идентификации;
- Хранит данные в зоне example размером 100 МБ;
- Ограничивает 30 запросов в минуту от одного IP-адреса.
Далее необходимо применить зону для одного из location:
location = /admin {
limit_req zone=example burst=1 nodelay;
...
}
Подключаем фильтр nginx-limit-req в Fail2Ban
Создадим новый jail.local командой:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Отредактируем /etc/fail2ban/jail.local и приведем содержимое фильтра nginx-limit-req к следующему виду:
[nginx-limit-req]
enabled = true
port = http,https
logpath = %(nginx_error_log)s
Разрешаем веб трафик на сервер NGINX только с серверов Cloudflare....
ПодробнееНастраиваем мониторинг журнала access.log веб-сервера NGINX....
ПодробнееУстановка последней стабильной версии популярного веб сервера NGINX....
ПодробнееНастроим аутентификацию пользователей Jira с Active Directory....
ПодробнееНастраиваем обратный прокси сервер NGINX с SSL-терминацией и генерируем бесплатные валидные сертификаты SSL...
ПодробнееНастраиваем связку NGINX + Apache с mod_rewrite + PHP-FPM....
ПодробнееНовые комментарии
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в
К комментариюЦитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed
К комментариюЦитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
К комментариюМожт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit
К комментариюЦитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил
К комментариюЦитата: FidoNet Спасибо за статью. Остальные статьи что находил либо старые,
К комментарию