Nginx слишком много открытых файлов DDOS

У меня есть проблема с ddos в данный момент. Мой веб-сервер находится позади обратного прокси (cloudflare), который я знаю, не должен полагаться с их бесплатным планом. Cloudflare находится в under-attack-mode, который заставляет посетителей завершать проверку браузера. Доступ к сайту через прямой IP только перенаправит их. Я использую функцию регулировки запроса nginx, но это, кажется, не помогает, поскольку взломщик использует огромного прокси-листа. В запросе нет никаких огромных красных флагов, таким образом, я не уверен, помогла ли WAF. Что интересно, тем не менее, это, когда я смотрю в журнале ошибок; я вижу, что то, что вызывает DOS, является следующей ошибкой (который файл абсолютно заполнен),

2015/09/03 19:22:12 [crit] 3427#0: accept4() failed (24: Too many open files)

Я думаю теперь, когда они нападают через прямой IP, но перенаправления не достаточно, чтобы мешать им заставить меня достигнуть своего открытого предела файла. Есть ли что-нибудь, что я могу сделать для остановки этого?

Спасибо

Править: Я не полагаю, что они нападают на IP непосредственно, потому что программное обеспечение, у меня есть работа сайта все еще, обнаружило значительные объемы трафика, который вызвал взломщик.

Править: Вот несколько строк трафика, который он массово рассылает. Действительно ли out-of-the-box WAF cloudflare заблокировала бы это?

87.135.112.116 - - [05/Sep/2015:14:47:53 +0200] "GET /index.php HTTP/1.0" 200 15767 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; Media Center PC 6.0)"

113.22.35.98 - - [05/Sep/2015:14:47:53 +0200] "GET /index.php HTTP/1.0" 200 15767 "-" "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16"

2.50.56.236 - - [05/Sep/2015:14:47:54 +0200] "GET /index.php HTTP/1.0" 200 15767 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"

93.170.133.26 - - [05/Sep/2015:14:47:54 +0200] "GET /index.php HTTP/1.0" 200 15767 "-" "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0"
2
задан 5 September 2015 в 15:53
1 ответ

Слишком много открытых файлов означает, что вы попали в переменную ulimit для nginx, определенную по умолчанию в /etc/nginx/nginx.conf (при использовании Linux на основе RHEL). Это означает, что nginx имеет слишком много открытых подключений и больше не может обслуживать запросы. Вы можете исправить это, увеличив следующую переменную:

worker_rlimit_nofile <enter value here>;

вы можете заменить информацию в угловых скобках новым значением (по умолчанию 1024). Это увеличит количество открытых файлов (и, следовательно, количество открытых подключений, поскольку каждое подключение является файлом).

Три вещи:

  1. определить ваши ограничения для вашего сервера (это будет зависеть от количества процессоров и

  2. worker_rlimit_nofile находится в верхней части вашего файла конфигурации прямо под переменной worker_processes.

  3. как только вы установите переменную в файле, вам понадобится для перезапуска nginx.

2
ответ дан 3 December 2019 в 11:35

Теги

Похожие вопросы