Proteger el servidor ssh contra fuerza bruta con fail2ban
Fail2ban es un programa que tras barios intentos de login fallidos en nuestro servidor baneara la dirección que se esta intentando autenticar mediante iptables.
Para ello debemos instalar el paquete fail2ban
$ sudo apt-get install fail2ban
Por defecto viene con una configuración que esta en /etc/fail2ban/jail.conf pero es preferible copiar este archivo a jail.local que sera a el que fail2ban le dará mas prioridad, para eso:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Y ahora empezaremos a editar este ultimo
$ sudo nano /etc/fail2ban/jail.local
Se Puede añadir una ip a una whitelist separado por un espacio en:
ignoreip = 127.0.0.1/8
Se puede cambiar los segundo que estará una ip baneada en (se recomienda aumentar este valor):
bantime = 600
Y también se puede cambiar el tiempo durante el que se ban a contabilizar los intentos en:
findtime = 600
Y reducir el numero de intentos en:
maxretry = 5
También se puede configurar en envío de las alerta a un correo especificando la dirección donde se quiere recibir en:
destemail = ejemplo@ejemplo.com
y el remitente en:
sender = fail2ban
Dependiendo de como queramos recibir las alertas podemos configurar la variable action con el siguiente contenido:
action_ si solo queremos que banee y guarde en los logs
action_mw si queremos que banee y nos envíen un email
action_mwl una combinación de las anteriores dos
con lo cual como ejemplo si queremos que nos envíe un email y que se guarde en los logs ponemos:
action = %(action_mwl)s
Para habilitar el baneo de ataque a el servidor ssh se añade en la sección [sshd] la siguiente linea
enabled = true
los filtros se pueden encontrar en /etc/fail2ban/filter.d
Y ya estaremos algo mas protegidos contra bots que intentan autenticarse en cualquier servidor con un servidor ssh expuesto.
Fuente:
https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-14-04