Proteger tu servidor SSH contra ataques de fuerza bruta

written by uve 15 April 2011

Hoy he estado revisando los logs de mi servidor, y me he dado cuenta que llevan 5 días de ataques por fuerza bruta para intentar tener un acceso SSH. Seguro que a alguien le resulta útil este script:

import re
exp = re.compile(r'.*[\s]*sshd\[.*?\]:[\s]*Invalid user.*')
f = open('/var/log/auth.log')
for line in f.readlines():
    if exp.match(line):
        print line[:-1]

Este script nos mostrará todos los accesos fallidos que hay en el servidor. Ahora vamos a ver la forma más sencilla de impedir este tipo de ataques: fail2ban.

Este software se encarga de monitorizar los archivos de logs y si detecta posibles ataques, se bloquea la IP y el puerto durante 10 minutos (este bloqueo se realiza a través de iptables). Para instalarlo:

# sudo aptitude install fail2ban

Después podemos, mejor dicho, debemos modificar el archivo de configuración. Algunas de mis modificaciones:

# nano /etc/fail2ban/jail.conf

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log

[sasl]
enabled  = true
port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter   = sasl
logpath  = /var/log/mail.log

Y hasta aquí, la primera medida de seguridad a aplicar.

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.