Если его правильно настроить, можно минимизировать последствия DDoS-атак и затруднить их проведение. Мы подготовили список рекомендаций для тех, кто строит систему защиты от основных атак DDoS с помощью Nginx.1. Блокируйте подозрительные адреса
Часто в ходе расследования инцидентов безопасности выясняется, что большая часть вредоносного трафика приходит с определенных IP-адресов. Такой трафик легко блокируется файерволами. Если по какой-либо причине нет возможности настроить файервол, вы всегда можете отрезать запросы злоумышленников на уровне самого Nginx:
location / {
deny 123.123.123.0/28;
# ...
}
2. Боритесь с медленными соединениямиОдин из способов загрузить сервер лишней работой и провести DDoS — отправлять на него медленные запросы. Отвечая на медленные коннекты, сервер не сможет обрабатывать запросы от настоящих пользователей. Для защиты от DDoS в Nginx есть возможность выставить тайм-ауты, которые не позволят соединениям висеть слишком долго:
server {
client_body_timeout 5s;
client_header_timeout 5s;
# ...
}
3. Ограничивайте количество запросов с одного адресаЕще одна из тактик проведения DDoS — обрушить на сервер большое количество запросов с одного адреса. Nginx умеет предотвращать и это, ограничивая количество запросов с адреса к ресурсу:
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
server {
# ...
location /login.html {
limit_req zone=one;
# ...
}
}