Endureciendo SSH o más técnicamente SSH Hardening es una labor que debemos realizar inmediatamente después de dejar instalado nuestro servidor.
Una vez creemos los usuarios administrativos para operar con el servidor debemos usar llaves publicas para acceder a él. Esto lo vimos recientemente en Identificación con el servidor SSH usando llaves RSA Ubuntu server 12.04 LTS. Simultáneamente activaremos un contrafuegos tal como vimos en Configurar cortafuegos UFW en servidor Ubuntu 12.04 LTS .
Después haremos algunas modificaciones al archivo de configuración de Open ssh. Desde la línea de comando haremos una copia de seguridad del archivo de configuración:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
Seguidamente abrimos para editar con:
sudo nano /etc/ssh/sshd_config
Revisaremos las siguientes claves para que queden de la siguiente manera. Evitamos que el usuario root puede acceder remotamente. El usuario root es un administrador con nombre de usuario conocido y va a ser el que sufra más frecuentes ataques.
0 1 2 |
PermitRootLogin no |
Nos aseguramos que SSH usa el protocolo más reciente.
0 1 2 |
Protocol 2 |
Cambiamos el puerto. Pero para hacer esto debemos asegurarnos primero que el puerto este habilitado en el cortafuegos, si no perderemos el acceso al servidor.
0 1 2 |
Port <nuevo puerto> |
0 1 2 |
PermitEmptyPasswords no |
Hay bastantes más opciones que pueden fortalecer la seguridad con SSH pero estas dependerán del uso que demos al servidor. Por ejemplo:
Reduce el tiempo para establecer una sesión SSH a 30 segundos.
0 1 2 |
LoginGraceTime 30 |
Aumenta la fortaleza de las llaves. Se puede poner también 2048.
0 1 2 |
ServerKeyBits 1024 |
0 1 2 3 |
ClientAliveInterval 600 ClientAliveCountMax 0 |
Una vez hechos los cambios reiniciamos el servicio SSH con:
sudo /etc/init.d/ssh restart
Por último usar Fail2ban con SSH para banear a IPs sospechosas que intenten entrar en el servidor.