martes, 14 de diciembre de 2010

Si quieres protegerte de conexiones indeseables por ssh.

Si quieres saber en todo momento los intentos de acceso a tu ordenador, puedes usar el comando:
watch -n 60 'cat "/var/log/auth.log"|grep ssh|tail -n 33'
Este comando mira cada minuto (60 segundos) en el 'log' de autorizaciones (ya sean aceptadas o rechazadas), extrae lo referente al puerto ssh (con el comando 'grep') y te muestra los 33 últimos intentos de acceso con 'tail'.

Si quieres mantener a raya los accesos, el programa 'fail2ban' automáticamente trata de identificar intrusos y bloquearlos (está escrito en python, por lo que podéis echarle un vistazo al código mientras se ejecuta), aunque es un poco lento en su tarea y puede tardar un rato en identificar a un intruso como 'enemigo'. Esto significa que el intruso puede hacer unos cuantos intentos de hackear el ordenador antes de ser bloqueado. Normalmente el hacker tiene tiempo para hacer unos 6 o 9 intentos antes de ser identificado, pero puede configurarse para que sea más paranoico, aunque con el consiguiente riesgo de que te bloquee a un usuario legal.
Puedes comprobar lo que hace el 'fail2ban' con el comando:

tail -f /var/log/fail2ban.log
Actualizado: Una alternativa a 'fail2ban' es 'DenyHosts', el cual mejora la seguridad mediante el uso de listas de IPs conocidas que se descargan y sincronizan desde el servidor principal de DenyHosts. Cuenta con más de 27000 sincronizaciones y es un bastante eficiente para protegerse de máquinas que ya se conocen como atacantes, frente a fail2ban, que realiza únicamente análisis de los registros.

Por otra parte, el comando para mirar quien trata de conectarse, mejor que:
watch -n 60 'cat "/var/log/auth.log"|grep ssh|tail -n 33'
es usar:
watch -n 60 'grep ssh /var/log/auth.log|tail -n 33' 
que es ligeramente más rápido (y siendo puristas es mejor reducir el número de ejecutables de tres "cat+grep+tail" a solo dos "grep+tail").

No hay comentarios:

Publicar un comentario