Instalación y configuración de Fail2ban

La presente tiene como finalidad presentar los pasos necesarios para la instalación y configuración de Fail2ban para el servicio SSH.

Fail2ban es una aplicación escrita en Python para la prevención de intrusos en un sistema, que actúa penalizando o bloqueando las conexiones remotas que intentan accesos por fuerza bruta.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 8.0 (actualmente estable)

Aplicaciones o configuraciones complementarias:

Instalación:

operador@server:~# aptitude install fail2ban

Configuración:

1. Editar el archivo de configuración el Fail2ban

operador@server:~# nano /etc/fail2ban/fail2ban.conf

2. Efectuar los siguientes cambios:

 
 - loglevel = 3 #nivel de log INFO
 - logtarget = /var/log/fail2ban.log # destino del log 

3. Editar el archivo de configuración jail.conf

operador@server:~# nano /etc/fail2ban/jail.conf

4. Efectuar los siguientes cambios:

 * ignoreip = 127.0.0.1/8 #Direcciones IP excluidas de las acciones de Fail2ban.
 * bantime = 3600 #Tiempo (en segundos) que el usuario "que falló el login" será baneado. Si se asigna el valor -1 será permanente.
 * maxretry = 3 #Número máximo de intentos de login.

Ajustar la configuración de Fail2ban para el monitoreo servicio SSH

1. Editar el archivo de configuración el Fail2ban

operador@server:~# nano /etc/fail2ban/jail.conf

2. Efectuar los siguientes cambios:

## Servicio de ssh

    [ssh]

    enabled  = true
    port     = ssh #Colocar el numero de puerto configurado servicio ssh
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 3

    ## Ataque de fuerza bruta con ssh 

    [ssh-ddos]

    enabled = true
    port    = ssh #Colocar el numero de puerto configurado servicio ssh
    filter  = sshd-ddos
    logpath  = /var/log/auth.log
    maxretry = 3

Nota:Si el servicio SSH se encuentra configurado en un puerto diferente al estándar (22), se debe colocar el número del puerto en la variable “port”, ejemplo: port = 430

3. Reiniciar servicio

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

4. Verificar funcionamiento:

operador@server:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere             multiport dports ssh
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (1 references)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere 

5.- Monitorear o revisar los intentos fallidos de conexión

operador@server:~# tail -f /var/log/auth.log
Oct 2 10:15:09 server sshd[21422]: Invalid user admin from IP_ATACANTE
Oct 2 10:15:09 server sshd[21422]: input_userauth_request: invalid user admin [preauth]
Oct 2 10:15:11 server sshd[21422]: pam_unix(sshd:auth): check pass; user unknown
Oct 2 10:15:11 server sshd[21422]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=IP_ATACANTE
Oct 2 10:15:13 server sshd[21422]: Failed password for invalid user admin from IP_ATACANTE port 49777 ssh2

6.- Muestra log IP baneada:

operador@server:~# tail -f /var/log/fail2ban.log
2015-10-2 10:18:03,209 fail2ban.actions[21103]: WARNING [ssh] Ban IP_ATACANTE

7.- Muestra reglas IPTABLES después del Baneo

operador@server:~# iptables -L
Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
REJECT     all  --  IP_ATACANTE          anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere            

Enlaces:

http://www.fail2ban.org/wiki/index.php/HOWTO_fail2ban_spanish
http://www.pontikis.net/blog/fail2ban-install-config-debian-wheezy
http://www.fail2ban.org/wiki/index.php/Fail2ban:Community_Portal

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s