fail2ban: regex para bloquear pedidos \ x00?

2

De vez em quando, meu servidor fica inativo, e quando eu verifico meus logs nginx, geralmente vejo algo assim:

78.37.54.31 - - [20/Apr/2016:20:58:51 +0300] "\x00\x00\x00TZ\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x010I\x00\x00\x00\x00\xFC\x01\xA8\xC0\x00!\x00\xFDk\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-" 89.169.219.212 - - [21/Apr/2016:11:37:22 +0300] "\x00\x00\x00 c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-"

Eu configurei o fail2ban com a configuração padrão recomendada recomendada por este DigitalOcean article , mas não impediu que esses tipos de scanners ocasionalmente sobrecarregassem meu servidor. Instalar o naxsi não é uma opção para mim agora. Alguém pode me ajudar com a formação das regras de regex certas para o fail2ban? As cadeias "apache-badbots" e "apache-wootwoot" (que podem facilmente ser googled) não funcionaram para mim.

    
por Isa Hassen 25.04.2016 / 21:41

1 resposta

1

No /etc/fail2ban/jail.conf

[nginx-x00]
enabled  = true
port     = http,https
filter   = nginx-x00
logpath  = /var/log/nginx/access.log
bantime = 3600
maxretry = 1

e em /etc/fail2ban/filter.d/nginx-x00.conf

[Definition]

failregex = ^<HOST> .* ".*\x.*" .*$

e pronto. Da próxima vez que alguém mexer com você, ele será banido por uma hora ou qualquer hora que você definir no bantime.

Não se preocupe com solicitações bem formadas com \ x porque elas são codificadas por url e elas serão processadas corretamente.

    
por 23.06.2016 / 00:40