Назад | Перейти на главную страницу

nginx auth fail2ban текущее соединение за Cloudflare

Я заметил, что правила fail2bans iptables работают только для * новых подключений, то есть до тех пор, пока кто-то продолжает вводить логин (базовая аутентификация или wordpress и т. Д., Существующее соединение продолжает это разрешать.

Если я сделаю паузу на несколько секунд, брандмауэр Cloudflare заблокирует доступ.

nginx регистрирует правильный IP-адрес, fail2ban сообщает, что правильный IP-адрес запрещен, в cloudflare также правильно добавлено правило брандмауэра, показывающее IP-адрес.

Я пробовал использовать tcpkill на ip, но это ничего не дает. Я предполагаю, что фактическое соединение связано с cloudflare, и это делает cloudflare и iptables бесполезными, когда соединения можно использовать повторно. предложения? наверное какая-то блокировка прикладного уровня? Однако базовая авторизация nginx не будет удобной.

Как бы то ни было, все это будет раздражать реальных пользователей, ничего не делая для предотвращения атак грубой силы. надеюсь, что я что-то пропустил.

Fail2Ban по сути работает, отслеживая файл журнала веб-сервера. Для того чтобы Fail2Ban для эффективной работы с CloudFlare ваши файлы журналов должны будут записывать исходный IP-адрес посетителя вместо CloudFlare.

Есть руководство, как это сделать, под названием "Как восстановить исходный IP-адрес посетителя с помощью Nginx?", но основы здесь:

Сначала установите ngx_http_realip_module на Nginx это можно сделать, установив Nginz с --with-http_realip_module параметр.

Следующим шагом будет добавление в вашу конфигурацию Nginx следующего:

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32
set_real_ip_from 2a06:98c0::/29

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;