Jan 08 2010
Como Analizar os Logs do Fail2Ban
Recentemente falei-vos do programa Fail2Ban, indicando a sua utilidade e como proceder à sua instalação.
Agora com o Fail2Ban instalado, vocês já estão a receber os email do sistema a alertarem-vos para as várias tentativas de intrusão.
Impressionante não é? Como hoje em dia os servidores estão constantemente a ser alvo de ataques de pessoas que gostam de tentar a sua sorte aproveitando um qualquer descuido de quem gere o servidor.
Pois bem, chegou a hora de começar a analisar os logs, quais os IP’s que são mais bloqueados? É isso que vos irei indicar neste artigo.
Já ficámos a saber anteriormente que o ficheiro com os logs do fail2Ban se encontram na seguinte localização:
/var/log/fail2ban.log
Claro que podemos simplesmente usar o comando cat e olhar para as centenas de linhas contendo os resultados do histórico do programa, mas para fazer uma análise precisa e facilitada vamos usar algumas das potencialidades do Linux.
Listar os IP’s precedidos do número de vezes que foram bloqueados (log principal fail2ban):
grep 'Ban ' /var/log/fail2ban.log | awk '{print $NF}' | sort | uniq -c
Exemplo do resultado:
8 125.212.25.203
10 130.251.104.10
1 137.229.180.42
1 169.229.222.206
...
O atributo -c do comando uniq indica o número de ocorrências na entrada indicada. O comando sort agrupa as entradas.
Listar os IP’s precedidos do número de vezes que foram bloqueados (todos os logs fail2ban):
zgrep -h 'Ban ' /var/log/fail2ban.log* | awk '{print $NF}' | sort | uniq -c
zgrep é o mesmo que a função grep, mas com uma particularidade, zgrep pesquisa também em ficheiros comprimidos (gzip), útil no caso de terem configurado a rotação dos logs do Fail2Ban para comprimir os logs antigos.
O atributo -h é para que a função não liste o nome dos ficheiros caso um arquivo contenha vários.
Indicar quantas vezes determinado IP foi bloqueado (todos os logs fail2ban):
zgrep -c 202.181.100.123 /var/log/fail2ban.log*
O atributo -c suprime os resultados habituais e actua apenas como contador, mas listará o nome dos ficheiros caso existam ficheiros comprimidos (gzip). Apenas substituam no comando o IP que querem pesquisar.
Número total de bloqueios a ataques e seus alvos agrupados por data (todos os logs fail2ban):
zgrep -h 'Ban ' /var/log/fail2ban.log* | awk '{print $5,$1}' | sort | uniq -c
É sem dúvida boa ideia reportarem os IP’s abusivos às respectivas ISP’s, pode não servir de muito, mas pelo menos sempre fazemos algo de modo a tentar que estas pessoas sejam culpabilizadas por tais actos criminosos.
Não perca os meus artigos! Subscreva a minha feed RSS.