Некорректно работает защита от ddos

Рура Виталий Александрович добавил(а) 2 года назад
Известна

Здравствуйте. Недавно столкнулся с проблемой http флуда на наших сайтах и начал настраивать защиту. Увидел, что в панели есть некая галочка "защита от ddos", но оказалось, что она очень неправильно работает.

Правило распространяется на все запросы, включая статику. Например в статье много изображений, css и js файлов суммарно больше 50 штук. и если пользователь открывает статью, то все это разом подгружается. И если указать ограничение 10 запросов в секунду, то ip пользователей начинают попадать в лог как ddos. Можно увеличить кол-во запросов, но тогда смысл в данной защите пропадает. ведь если выставить уже 50 запросов в секунду, то можно будет делать атаку на страницы, которые сильно грузят сервер и все вешать.

Я решил эту проблему переписав немного дефолтный конфиг nginx. переместил инклуд resources в два локэйшена кроме статики:

location / {
	location ~ [^/]\.ph(p\d*|tml)$ {
		try_files /does_not_exists @fallback;
		include /etc/nginx/vhosts-resources/domain.ru/*.conf;
	}
	location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
		try_files $uri $uri/ @fallback;
	}
	location / {
		try_files /does_not_exists @fallback;
		include /etc/nginx/vhosts-resources/domain.ru/*.conf;
	}
}
и теперь ограничение распространяется только на страницы, а вся остальная статика не учитывается. выставил ограничение на 5 запросов в секунду и никаких ложных срабатываний в логах, спустя две недели, не было.

Было бы очень классно, если бы вы учли этот момент в следующих версиях.

Спасибо!

Комментарии (1)

фото
1

Добрый день, благодарим за обратную связь. Обязательно постараемся учесть это в будущем