Log de acesso do Apache

Log de acesso do Apache

Eu uso o fail2ban para detectar solicitações maliciosas para qualquer um dos meus domínios hospedados, o que está funcionando muito bem, com uma exceção.

Se uma solicitação for enviada para o IP em vez de um fqdn ou subdomínio, ela será capturada e gravada em other_vhosts_access.log, pois o próprio IP não é um host virtual.

Entrada de exemplo:

somedomain.de:80 20.37.96.167 - - [24/Jan/2020:15:47:04 +0100] "POST //4walls/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/ 1,1"301.587"https://www.google.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/79.0.3945.88 Safari/537.36"

Ao que parece, o Apache faz uma pesquisa reversa no IP e anota o nome do host em primeiro lugar.

Isso faz com que o fail2ban proíba automaticamente o IP do servidor em vez do IP do solicitante.

Como posso evitar a entrada somedomain.de:80?

Responder1

O Apache faz uma pesquisa reversa no IP e anota o nome do host em primeiro lugar.

Se o seu filtro for feito corretamente (por exemplo, regex ancorado sem pega-tudo), não importa onde exatamente o domínio e o endereço estrangeiro estão escritos.

Presumo que em seu exemplo de entrada de log, somedomain.deseja seu e 20.37.96.167seja o endereço de "intruso". Então o failregex adequado seria parecido com:

# ban everything (with code 300-599):
failregex = ^\S+\s+<ADDR>\s+\S+\s+\S+\s+\[\]\s+"[^\"]+" [345]\d+

A parte ancorada ^\S+\s+<ADDR>corresponde somedomain.de:80 20.37.96.167e seria pesquisada na string desde o início apenas devido à âncora ^.
Isso também seria suficiente como regex, se você tiver que banir tudo other_vhosts_access.log(independentemente do status http resultante).

Se você tiver a versão fail2ban <= 0.9, use <HOST>em vez de <ADDR>.

Você também pode verificar fail2ban-regexse capturaria alguns falsos positivos, por exemplo:

fail2ban-regex --raw -vv /path/to/log '^\S+\s+<ADDR>\s+\S+\s+\S+\s+\[\]\s+"[^\"]+" [345]\d+' \
  | grep <your-IP-or-hostname>

informação relacionada