Proteger tu servidor SSH contra ataques de fuerza bruta
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é.
