Skip to main content

Endureciendo SSH en Ubuntu Server 12.04 LTS

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.
Nos aseguramos que SSH usa el protocolo más reciente.
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.
Obviamente, inhabilita las contraseñas vacías.
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.
Aumenta la fortaleza de las llaves. Se puede poner también 2048.
Cierra la conexión con el servidor automáticamente si no hay actividad pasados 10 minutos (60*10 segundos).

Se recomienda además deshabilitar el acceso con contraseñas y usar claves públicas. Alternativamente o simultáneamente se puede usar contraseñas muy fuertes.

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.

Configurar cortafuegos UFW en servidor Ubuntu 12.04 LTS

Uncomplicated Firewall o UFW es un cortafuegos básico que funciona muy bien y es sencillo de configurar.

Para instalarlo:

sudo apt-get install ufw

Una vez instalado podemos conocer el estado del cortafuegos con:

sudo ufw status verbose

Que en este paso nos dirá que esta inactivo.

Agregamos una reglas para los servicios ssh y http:

sudo ufw allow ssh
sudo ufw allow http

Y ahora lo activamos sin que interrumpa la conexión ssh al servidor con:

sudo ufw enable

Podemos probar que tal hace su trabajo si lo tenemos instalado con nmap:

sudo nmap -r -v -O servidor.com

Donde servidor.com lo sustituimos por nuestro servidor.