##################
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:
.. code-block:: console
# 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:
.. code-block::
Port 22822
Realizando este cambio seleccionamos este puerto para las conexiones SSH.
Debemos reiniciar el servicio para que los cambios surtan efecto:
.. code-block:: console
service sshd restart
Si ahora intentamos acceder mediante SSH debemos indicar el puerto de conexión:
.. image :: ../images/introduccion/ssh-1.png
:width: 500
:align: center
:alt: Imagen en la que se pueden ver los discos virtuales conectados a la máquina
|br|
.. |br| raw:: html
¿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:
.. code-block:: console
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
.. code-block:: console
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.
.. raw:: html
Generar contraseñas seguras
============================
Podemos generar contraseñas seguras utilizando el siguiente comando:
.. code-block:: console
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:
.. image :: ../images/introduccion/ssh-2.png
:width: 500
:align: center
:alt: 2FA SSH login
|br|