Fail2Ban para protección contra intentos de conexión

Daniel Eugenin M. -

Fail2ban es una herramienta que observa los intentos de login de variados servicios, tales como SSH, FTP, SMTP, HTTP, entre otros; y si encuentra intentos de login fallidos una y otra vez desde una misma IP, fail2ban rechazará estos intentos de login bloqueando con reglas de iptables a esas IPs que estaban intentando.

 

Nota: lo siguiente ha sido probado en CentOS 6.2.

 

Instalación

yum install fail2ban -y

 

Configuración

Una pequeña explicación de los principales parámetros:

ignoreip: esta es una lista de IPs separadas por -espacio en blanco- que no serán bloqueadas por fail2ban.

bantime: es el tiempo (expresado en segundos) que un host es bloqueado por fail2ban

maxretry: es el número máximo de intentos de login fallidos antes de que el host se bloqueado por fail2ban

filter: se refiera a la utilización de un filtro apropiado en /etc/fail2ban/filter.d

logpath: el archivo de log que fail2ban utiliza para revisar los intentos de login

 

La configuración principal del servicio es /etc/fail2ban/fail2ban.conf (aquí cambiamos el log para que se guarde en un archivo independiente)

[Definition]
loglevel = 3
logtarget = /var/log/fail2ban.log
socket = /var/run/fail2ban/fail2ban.sock

 

El archivo /etc/fail2ban/jail.conf es un archivo como referencia válido funcionalmente y como ejemplo, pero haremos uno "personalizado", empezando desde cero:

 

- Renombrar el archivo /etc/fail2ban/jail.conf:

mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.orig

 

- Crear el archivo /etc/fail2ban/jail.local

[DEFAULT]
ignoreip = 127.0.0.1 192.168.0.50
bantime = 600
findtime = 600
maxretry = 3
backend = auto
# Default action to take: ban only
action = iptables[name=%(__name__)s, port=%(port)s]
 
[ssh-iptables]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3

 

 - Subir el servicio

service fail2ban start
chkconfig fail2ban on 

 

- Pruebas:

* Se intenta hacer logins fallidos por ssh desde otro servidor

* Se revisan los logs de fail2ban

2012-07-24 23:57:33,789 fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.0.7

* Se revisan las reglas de iptables

# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh-iptables tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh-iptables (1 references)
target prot opt source destination
DROP all -- 192.168.0.7 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0

El host 192.168.0.7 ya está bloqueado por intentos fallidos por SSH. Estará bloqueado por 10 minutos (bantime).

 

Nota al final:

Fail2ban viene con una serie de filtros ya predefinidos, pero es posible desarrollar los propios, o ir cambiando las expresiones regulares para adaptarlo a las propias necesidades.

 

TODO:

- Enviar correos de notificaciones de bloqueos

- Realizar los filtros para zimbra y especialmente intentos de conexión pop, imap, sasl

 

Referencias:

http://www.fail2ban.org/wiki/index.php/MANUAL_0_8

http://www.howtoforge.com/fail2ban_debian_etch

http://grinux.wordpress.com/2012/02/14/fail2ban-tutorial-scan-log-files-and-ban-ips

http://www.howtoforge.com/forums/showthread.php?t=45597



 

0 Comentarios

Inicie sesión para dejar un comentario.
Tecnología de Zendesk