Configuración SSH

En nuestro caso durante la instalación del servidor hemos seleccionado la opción de instalar de forma automática el servidor SSH. Si no lo hubiéramos hecho deberíamos ejecutar los siguientes comandos:

# Actualizamos los paquetes disponibles en los repositorios
sudo apt update # o sin "sudo" si estamos trabajando con root

# Instalamos el paquete necesario
sudo apt install openssh-server

Cambiar el puerto por defecto

Por seguridad, es altamente recomendable cambiar el puerto en que aceptaremos conexiones SSH. De esta manera obligamos a los malos a descubrir más detalles a la hora de intentar un ataque de fuerza bruta.

El fichero que debemos modificar es el /etc/ssh/sshd_config. Editaremos las siguientes opciones:

Port 22822

Realizando este cambio seleccionamos este puerto para las conexiones SSH.

Debemos reiniciar el servicio para que los cambios surtan efecto:

service sshd restart

Si ahora intentamos acceder mediante SSH debemos indicar el puerto de conexión:

Imagen en la que se pueden ver los discos virtuales conectados a la máquina


¿Meter sudo?

Sí, vamos a mantener instalado y configurada la función pues es más cómodo para los usuarios solo conocer una contraseña.

PasswordAuthentication y ChallengeResponseAuthentication

Editamos el archivo /etc/ssh/sshd_conf de la siguiente manera:

PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication yes
# Debemos comprobar también que PAM está activado:
UsePAM yes

Archivos de registro

Editamos el archivo para que las siguientes configuraciones permitan el envío de logs, registros, al archivo /var/log/auth.log

SyslogFacility AUTH
LogLevel INFO

Comprobaciones

Reiniciamos el servicio y realizaremos las siguientes pruebas:

  • Login con usuario válido

  • 3 login con password erróneo

  • 3 login con usuario que no existe

  • Login con root

En el siguiente video podemos ver el resultado de las pruebas.

Generar contraseñas seguras

Podemos generar contraseñas seguras utilizando el siguiente comando:

openssl rand -base64 32

Autenticación SSH con 2FA

Es altamente recomendable uilizar la autenticación en 2 factores (2FA) en virtualmente cualquier servicio online. SSH, por tanto, no es menos.

En este enlace se puede consultar la guía completa.

El resultado sobre un servidor (mi propio home-lab, para ser exactos) sería el siguiente:

2FA SSH login