autenticação nginx fail2ban conexão atual por trás do cloudflare

1

Tenho notado que as regras do iptables fail2bans só funcionam em * novas conexões, ou seja, enquanto alguém continua a martelar um login (autenticação básica ou wordpress etc., a conexão existente continua a permitir isso.

Se eu pausar por alguns segundos, o firewall do cloudflare bloqueia o acesso.

nginx registra o ip correto, o fail2ban relata que o ip correto está sendo banido, o cloudflare também corretamente tem a regra de firewall adicionada mostrando o endereço ip.

Eu tentei usar o tcpkill no ip, mas isso não faz nada. Eu estou supondo que a conexão real é com o cloudflare e que torna cloudflare e iptables inúteis onde as conexões podem ser reutilizadas. sugestões? provavelmente algum bloqueio de camada de aplicação? A autenticação básica do nginx não seria muito vunerável.

Como é, tudo isso faria frustrar os usuários reais sem fazer nada para impedir ataques de força bruta. Espero ter perdido alguma coisa.

    
por G.Martin 07.08.2016 / 04:47

1 resposta

0

O Fail2Ban essencialmente funciona seguindo um arquivo de log de um servidor web. Para que o Fail2Ban funcione efetivamente com o CloudFlare , seus arquivos de log precisarão registrar o IP original do visitante em vez do IP da CloudFlare.

Há um guia sobre como fazer isso intitulado " Como faço para restaurar o IP original do visitante com o Nginx? ", mas o básico dele está aqui:

Primeiramente instale o ngx_http_realip_module no Nginx, você pode fazer isso instalando o Nginz com o parâmetro --with-http_realip_module .

O próximo passo é adicionar o seguinte à sua configuração do 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;
    
por 09.08.2016 / 13:42