Мой сайт получает много DoS / DDoS-атак.Я установил nginx за Cloudflare с fail2ban.
Чтобы исправить сначала DoS-атаки, у меня есть ограничение скорости в nginx с восстановлением исходных ips и затем запретом IP на 1 час через fail2ban, НОего просто не работает .
Полагаю, потому что IP-адреса Cloudflare все еще подключаются.
Я восстанавливаю IP с помощью set_real_ip_from & real_ip_header CF-Connecting-IP; !Кроме того, мой nginx error.log просто получает спам, и я не вижу, чтобы этот IP получал ограниченную скорость.
error.log спамил более чем 90 тысяч строк с этим здесь:
2019/05/29 20:44:47 [error] 1726#1726: *1898 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 99.999.999.999, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com"
или
2019/05/29 23:33:08 [error] 26124#26124: *135 upstream timed out (110: Connection timed out) while connecting to upstream, client: 99.9999.999.99, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com" ```
мой предел скорости в nginx выглядит следующим образом:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
server {
include /etc/nginx/cloudflare; # whitelisting the ip's from cloudflare etc
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
limit_conn conn_limit_per_ip 15;
limit_req zone=mylimit nodelay;
} .....
Это как-то возможносоздать черный список в nginx (бесплатная версия), чтобы заблокировать IP-адреса на X секунд без fail2ban?
Мой другой вопрос: почему все это не работает, и только один IP (DoS) может снять мой полный?Сервер за режимом UAM в Cloudflare и этим ограничением скорости с nginx.Если бы кто-то мог найти время и объяснить это мне, это было бы удивительно!
Прошу прощения за мой английский.
РЕДАКТИРОВАТЬ: Если я устанавливаю ограничение скорости, например, для проверки 3r / s и обновления 3 раза вПросмотрите мой URL, я вижу, что это работает, и это дает мне ошибку, как это должно быть.Но в любом случае только один IP-адрес может снять мой сервер, я не понимаю.