Bloqueo dinámico de sshd
Este tipo de contramedidas automatizadas son un arma de doble filo, pero en este caso, al tratarse de un servicio privado como SSH
, no es mala idea.
Seguro que algo hemos leído en distintas bitácoras sobre la última tendencia en ataques al servicio de SSH
. Se trata de un script que prueba por fuerza bruta distintos pares usuarios/contraseñas habituales buscando un demonio SSH
mal configurado.
Las entradas en /var/log/authlog
son algo así:
... Did not receive identification string from x.y.z.k ... User nobody not allowed because not listed in AllowUsers ... input_userauth_request: illegal user nobody ... Failed password for illegal user nobody from x.y.z.k port 56731 ssh2 ... Received disconnect from x.y.z.k: 11: Bye Bye
Aunque mi sshd
está perfectamente configurado, estos ataques son muy molestos.
Ayer comentaba Wu en la lista userbsd que había programado un pequeño script en Python que recorría los authlog
añadiendo a un bloqueo con el Packet Filter de OpenBSD las IPs de atacantes.
La propuesta es interesante. Un acceso legítimo a SSH
nunca dará el error Failed password for illegal user, con lo que podemos bloquear tranquilamente el acceso al puerto 22 (SSH
) a todas las IPs referenciadas así en los logs.
La configuración de PF
es sencilla. En nuestro /etc/pf.conf
añadimos:
table <sshscan> persist block in log quick on $OUT_IF proto tcp from <sshscan> to any port 22
Siendo $OUT_IF
nuestra interfaz de red expuesta a los ataques.
Luego pondremos el script de Wu en cron
para que procese el authlog
periódicamente añadiendo IPs a la tabla sshscan
definida en PF
.
Como no tengo Python instalado en blackshell, me he hecho una versión en shell (su historial de cambios aka ChangeLog). Funciona igual respecto a la configuración de PF
, y las pequeñas diferencias se pueden ojear en la documentación que acompaña al script.
Actualización (dic-2004): De vez en cuando voy introduciendo mejoras/corrigiendo errores. Para ver el estado en el que se encuentra el script, consultar el ChangeLog. Para descargar la última versión, bajar ssh_blocker-sh_current.tar.gz.
Hay 1 comentario
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por ivan, en 2004-10-19 11:59:18 ∞