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 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
Referências
- Fail2Ban: (*http://www.fail2ban.org/wiki/index.php/Main_Page)
- Wikipedia: Brute force attack: (*http://en.wikipedia.org/wiki/Brute_force_attack)
- Wikipedia: Ataque de negação de serviço: (*http://pt.wikipedia.org/wiki/Ataque_de_negação_de_serviço)