Tabela de Conteúdos

Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.

7.1.1 Fail2Ban

Objectivo

O Fail2Ban é uma aplicação que analisa continuamente os ficheiros log e bloqueia os endereços Internet de onde originaram várias tentativas falhadas de acesso com senha inválida.

O Fail2Ban é extremamente eficaz na prevenção de ataques de força bruta e de negação de serviço (DoS).

Instalação

server:~# aptitude install fail2ban whois

Configuração

A configuração activada durante a instalação activa o fail2ban para a porta ssh. No entanto outras portas podem ser monitorizadas e protegidas.

A documentação do Fail2Ban aconselha a que toda a configuração seja feita em ficheiros com a extensão .local. Estes podem ser criados copiando o ficheiro de configuração original, com a extensão .conf:

server:~# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Toda a configuração é a partir de agora efectuada apenas no ficheiro /etc/fail2ban/jail.local.

Numa primeira fase, definimos os endereços que não estão sujeitos a restrições (endereço local e rede local), durante quanto tempo os endereços atacantes serão banidos (1800 segundos (30 minutos)) e após quantas tentativas (3 tentativas permitidas). Essa configuração deve ser efectuada no ficheiro /etc/fail2ban/jail.local:

# [...]

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1 192.168.1.0/24
bantime  = 1800
maxretry = 3

# [...]

Também é definido o endereço email para o qual serão enviados os alertas:

# [...]

#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost

# [...]

Em seguida, é configurada a acção a realizar quando é detectado um possível ataque. Neste caso, o endereço IP do atacante é banido e um email é enviado ao administrador do sistema.

# [...]

# Choose default action.  To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_mwl)s

# [...]

Por último, são definidos os parâmetros do serviço que se pretende proteger, mais uma vez editando o ficheiro /etc/fail2ban/jail.local:

# [...]

[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 3

# [...]

Finalmente, reiniciar o serviço fail2ban:

server:~# /etc/init.d/fail2ban restart

Verificação

A cada (re)início do serviço fail2ban um email de notificação será enviado ao administrador do sistema:

Subject: [Fail2Ban] ssh: started
From: Fail2Ban <fail2ban@home.lan>
To: root@localhost
Date: Tue, 13 Jan 2009 22:14:28 +0000 (WET)

Hi,

The jail ssh has been started successfully.

Regards,

Fail2Ban

E a cada ataque que despolete uma acção defensiva, o administrador será também notificado:

Subject: [Fail2Ban] ssh: banned 219.143.232.144
From: Fail2Ban <fail2ban@home.lan>
To: root@localhost
Date: Tue, 13 Jan 2009 22:25:06 +0000 (WET)

Hi,

The IP 219.143.232.144 has just been banned by Fail2Ban after
3 attempts against ssh.


Here are more information about 219.143.232.144:

% [whois.apnic.net node-1]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

inetnum:      219.143.232.0 - 219.143.233.127
netname:      Sinotrans-Air-Transport-Development-Co-Ltd
country:      CN
descr:        16F Building A Jinyun Plaza,NO.43 Xizhimen South Street,Xicheng District, Beijing,P.R.China
admin-c:      HC55-AP
tech-c:       HC55-AP
status:       ASSIGNED NON-PORTABLE
changed:      bjnic@bjtelecom.net 20071010
mnt-by:       MAINT-CHINANET-BJ
source:       APNIC

person:       Hostmaster of Beijing Telecom corporation CHINA   TELECOM
nic-hdl:      HC55-AP
e-mail:       bjnic@bjtelecom.net
address:      Beijing Telecom
address:      No. 107 XiDan Beidajie, Xicheng District Beijing
phone:        +86-010-58503461
fax-no:       +86-010-58503054
country:      cn
changed:      bjnic@bjtelecom.net 20040115
mnt-by:       MAINT-CHINATELECOM-BJ
source:       APNIC


Lines containing IP:219.143.232.144 in /var/log/auth.log

Dec 21 23:40:54 server sshd[4311]: Did not receive identification string from 219.143.232.144
Dec 21 23:44:19 server sshd[4318]: Invalid user globus from 219.143.232.144
Dec 21 23:44:19 server sshd[4318]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=219.143.232.144 
Dec 21 23:44:21 server sshd[4318]: Failed password for invalid user globus from 219.143.232.144 port 43536 ssh2
Dec 21 23:44:22 server sshd[4320]: Invalid user marine from 219.143.232.144
Dec 21 23:44:22 server sshd[4320]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=219.143.232.144 

Regards,

Fail2Ban
O pacote Fail2Ban pode ser utilizado para proteger servidores de e-mail, ftp, web, etc, bastando para tal editar o ficheiro /etc/fail2ban/jail.local para configurar os vários serviços que se pretendem proteger.

Referências