Este es el comando que muestra por pantalla:
cat /var/log/auth.log | grep 'invalid user\|Failed'
...y este el que cuenta cuántos líneas aparecen:
cat /var/log/auth.log | grep 'invalid user\|Failed' | wc -l
Hay varias cosas que podemos hacer para evitar cualquier problema.
Contraseña
Es obvio pero la primera es asegurarnos de que cambiamos la contraseña por defecto y que no lo hacemos por otra que sea obvia como "12345", "password" y cosas así. Lo puedes hacer directamente desde el menú de raspi-config (sudo raspi-config) o con el comando passwd
Desactivar el login con root desde ssh
Edita el fichero de configuración de ssh
sudo nano /etc/ssh/sshd_config
Cambia "PermitRootLogin yes" por
PermitRootLogin no
Bloqueos ataques fuerza bruta
Añade estas línea al final del sshd_config para bloquear el número máximo de accesos fallidos desde una IP y el número máximo de sesiones simultáneas que se pueden abrir.
# Custom settings
MaxAuthTries 3
MaxStartups 5
Frikonsejo: Puedes comprobar que tu configuración del sshd es correcta mediante el comando
$ sudo sshd -t
Si no ves ningún mensaje de error es que la configuración es correcta. Es muy importante que compruebes que el archivo de configuración es correcto porque si no cuando reinicies el servicio (o la máquina) el servicio ssh no arrancará y no podrás conectarte
No es una medida definitiva pero te evitará muchos ataques automáticos de los bots que circulan por Internet. Basta con que cambies el puerto que has abierto en el router a cualquier otro no estándar. En la redirección indicas que sigues queriendo enviarlo al 22 de tu IP en la red interna. Pero ten cuidado porque muchos proveedores de internet no permiten conectarse al rango completo de puertos de tu router. Comprueba con una herramienta como http://www.yougetsignal.com/tools/open-ports/ si el puerto realmente está abierto y accesible.
Bloqueo de IP, límites de anchos de banda...
Hay muchas más estrategias que puedes aplicar para proteger tus puertos pero en ocasiones son algo rígidas y más orientadas a sistemas multiusuario.
Aquí tienes una buena colección de estrategias para proteger tu servidor ssh
ACTUALIZACIÓN: en vista de la cantidad de ataques por fuerza bruta que sufro en mi puerto 22 he instalado un servicio de baneo de IPs. Aquí lo explico con más detalle.
En mi caso lo configuré para que sólo funcione utilizando clave asimétrica.
ResponderEliminarTambién se puede configurar desde qué rango de IPs se permite conectar.
Sí, lo del filtrado por IP y clave son buenas opciones si quieres una opción segura. El problema es que para mi limitan demasiado las máquinas desde las que puedes conectar.
ResponderEliminarSiempre llegará el día que quieras conectar desde una máquina nueva o desde otra localización...y ya estás cazado
Otra medida más, los usuarios a los que se puede acceder remotamente no deberían tener sudo. De este modo con sólo la contraseña del usuario no podrán atacar todo el sistema y tienen que explotar también la clave de root.
ResponderEliminar