Configuración de SSH en Debian

Como sabes, la tecnología SSH de código abierto te permite conectarte remotamente a un ordenador determinado y transmitir datos a través de un protocolo seguro seleccionado. También permite el control total del dispositivo seleccionado, garantizando el intercambio seguro de información importante e incluso de contraseñas. A veces los usuarios sienten la necesidad de conectarse a través de SSH, pero además de instalar la utilidad tienen que hacer algunos ajustes adicionales. De eso queremos hablar hoy, tomando como ejemplo la distribución Debian.

Configuración de SSH en Debian

Dividiremos el proceso de configuración en varios pasos, ya que cada uno es responsable de una manipulación específica y puede simplemente no ser útil para ciertos usuarios, dependiendo de las preferencias personales. Para empezar, toda la manipulación se hará a través de la consola y necesitaremos confirmar el acceso de root, así que prepárate para ello de antemano.

Instalación del servidor SSH y del cliente SSH

Por defecto, SSH forma parte del conjunto estándar de utilidades del sistema operativo Debian, pero debido a algunas peculiaridades los archivos necesarios pueden quedar obsoletos o simplemente faltar, por ejemplo cuando el usuario ha desinstalado manualmente. Si necesita preinstalar SSH-servidor y SSH-cliente, siga las siguientes instrucciones:

  1. Abrir el menú “Inicio”. y correr desde allí “Terminal”.. También puede hacerlo con la combinación de teclas estándar Ctrl + Alt + T.
  2. Aquí es donde te interesa el equipo sudo apt install openssh-serverque se encarga de instalar la parte del servidor. Introdúzcalo y haga clic en Entre en para activar.
  3. Como ya sabes, las acciones realizadas con el argumento sudo, tendrá que ser activado especificando la contraseña de root. Tenga en cuenta que los caracteres introducidos en esta línea no se muestran.
  4. Se le notificará cuando se añadan o actualicen paquetes. Si SSH-server ya está instalado en Debian, se le notificará si el paquete especificado está disponible.
  5. A continuación, tendrá que añadir también el lado del cliente, que también se aplica al ordenador al que se conectará en el futuro. Para ello, utilice un comando similar sudo apt-get install openssh-client.

No hay más componentes adicionales que instalar, ahora puedes pasar con seguridad a gestionar el servidor y configurar los archivos de configuración para crear claves y preparar todo para la posterior conexión al escritorio remoto.

Gestionar el servidor y comprobar su funcionamiento

Veamos brevemente cómo se gestiona y verifica el servidor instalado. Esto debería hacerse incluso antes de proceder a la configuración para asegurarse de que los componentes añadidos funcionan correctamente.

  1. Utilice el comando sudo systemctl enable sshdpara añadir el servidor al autoarranque si no se produce automáticamente. Si necesita cancelar el inicio con el sistema operativo, utilice systemctl disable sshd. La puesta en marcha manual requerirá entonces especificar systemctl start sshd.
  2. Todas las acciones de este tipo tienen que hacerse absolutamente siempre en nombre de un superusuario, por lo que hay que introducir su contraseña.
  3. Utilice el comando ssh localhost para comprobar que el servidor funciona correctamente. Sustituir por localhost a la dirección del ordenador local.
  4. La primera vez que se conecte, se le notificará que la fuente no está verificada. Esto ocurre porque aún no hemos configurado los ajustes de seguridad. Ahora simplemente confirme para continuar la conexión introduciendo .

Añadir un par de claves RSA

La conexión del servidor al cliente y viceversa a través de SSH se realiza introduciendo una contraseña, pero es posible e incluso recomendable crear un par de claves que se desarrollen mediante algoritmos RSA. Este tipo de encriptación proporcionará una protección óptima que será difícil de eludir para un atacante cuando intente entrar. Sólo le llevará unos minutos añadir el par de claves, y el proceso tiene el siguiente aspecto

  1. Abrir “Terminal”. y entrar allí ssh-keygen.
  2. Usted mismo puede seleccionar la ubicación en la que desea guardar la ruta de la llave. Si no quieres cambiarlo, sólo tienes que pulsar la tecla Entre en.
  3. Ahora se está creando una clave pública. Se puede proteger con una frase de contraseña. Introdúzcalo en la línea que aparece, o déjelo en blanco si no quiere activar esta opción.
  4. Si introduce una frase de acceso, tendrá que especificarla de nuevo para confirmarla.
  5. Se mostrará una notificación de creación de clave pública. Como puede ver, se le ha asignado un conjunto de caracteres aleatorios y se ha creado una imagen utilizando algoritmos aleatorios.

Gracias a las acciones que se acaban de realizar, se han creado una clave secreta y una clave pública. Se utilizarán para la comunicación entre los dispositivos. Ahora hay que copiar la clave pública en el servidor, lo que puede hacerse por varios métodos.

Copiar la clave pública en el servidor

Hay tres opciones en Debian para copiar una clave pública en el servidor. Le sugerimos que las tenga en cuenta todas, para que pueda decidir cuál es la mejor para usted en el futuro. Esto es útil si uno de los tres métodos no funciona o no se ajusta a las necesidades del usuario.

Método 1: comando ssh-copy-id

Empecemos por la opción más sencilla, que consiste en utilizar el comando ssh-copy-id. Por defecto, esta utilidad ya está integrada en el sistema operativo, por lo que no es necesario instalarla previamente. Su sintaxis también es lo más sencilla posible, y tienes que realizar los siguientes pasos:

  1. En la consola, introduzca el comando ssh-copy-id username@remote_host y activarlo. Sustituir por nombre_de_usuario_remote_host a la dirección del ordenador de destino para que la carga sea exitosa.
  2. La primera vez que intente conectarse, verá un mensaje "The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes". Seleccione “Sí” para continuar la conexión.
  3. La utilidad buscará y copiará la clave por sí misma. Finalmente, si tiene éxito, aparecerá una notificación en la pantalla “/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:“. Esto significa que puede introducir la contraseña y proceder al control directo del escritorio remoto.

Además, especifique que después de la primera autorización exitosa, aparecerá la siguiente notificación en la consola:

Number of key(s) added: 1

Ahora intenta entrar en la máquina, con: “ssh ‘username@203.0.113.1′”
y compruebe que sólo se ha añadido la(s) llave(s) que quería.

Dice que la clave se ha añadido con éxito al ordenador remoto y que ahora no habrá problemas al intentar conectarse.

Método 2: Exportar la clave a través de SSH

Como sabes, exportar una clave pública te permitirá conectarte al servidor especificado sin necesidad de introducir la contraseña. Ahora, siempre que la clave no esté ya en el ordenador de destino, puedes conectarte vía SSH introduciendo la contraseña, y luego transfiriendo manualmente el archivo necesario. Para ello, deberá escribir el siguiente comando en la consola cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys".

Debería aparecer una notificación en la pantalla

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
.

Confírmelo para continuar la conexión. La clave pública se copiará automáticamente al final del archivo de configuración “llaves_autorizadas”. Así se completa el procedimiento de exportación.

Método 3: Copiar manualmente la clave

Este método es adecuado para aquellos usuarios que no tienen la capacidad de crear una conexión remota al ordenador de destino, pero tienen acceso físico a él. En este caso, tendrá que transferir la clave usted mismo. En primer lugar, determine sus detalles en el PC servidor a través de cat ~/.ssh/id_rsa.pub.

La consola debería mostrar la línea ssh-rsa + ключ в виде набора символов== demo@test. Ahora puedes ir a otro ordenador, donde debes crear un nuevo directorio introduciendo mkdir -p ~/.ssh. En el mismo directorio un archivo de texto llamado authorized_keys. Sólo queda insertar allí la clave previamente definida a través de echo + строка публичного ключа >> ~/.ssh/authorized_keys. La autenticación está entonces disponible sin tener que introducir primero las contraseñas. Esto se hace con el comando ssh username@remote_hostdonde nombre_de_usuario_remote_host debe ser sustituido por el nombre del host deseado.

Los métodos que acabamos de comentar trasladaron la clave pública a un nuevo dispositivo para que fuera posible conectarse sin introducir la contraseña, pero ahora sigue apareciendo el formulario para introducirla. Este estado de cosas permite a los atacantes obtener acceso al escritorio remoto simplemente forzando las contraseñas. A continuación, le sugerimos que se ocupe de la seguridad realizando ciertos ajustes.

Desactivar la autenticación de la contraseña

Como se ha mencionado anteriormente, la opción de autenticación por contraseña puede ser un eslabón débil en la seguridad de una conexión remota, ya que existen medios para anular dichas claves. Le recomendamos que desactive esta opción si está interesado en mantener su servidor lo más seguro posible. Puedes hacerlo así:

  1. Abrir el archivo de configuración /etc/ssh/sshd_config a través de cualquier editor de texto conveniente, esto puede ser, por ejemplo, gedit o nano.
  2. En la lista que se abre, busque la línea “PasswordAuthentication”. y quitar el cartel #para activar este comando. Cambia el valor de en nopara desactivar la opción de interés.
  3. Cuando haya terminado, haga clic en Ctrl + Opara guardar los cambios.
  4. No cambie el nombre del archivo, sólo haga clic en Entre en para aplicar el ajuste.
  5. Puede salir del editor de texto pulsando Ctrl + X.
  6. Todos los cambios no surtirán efecto hasta que se reinicie el servicio SSH, así que hágalo inmediatamente a través de sudo systemctl restart ssh.

Esto deshabilitará la función de autenticación por contraseña y hará que el inicio de sesión esté disponible sólo a través del emparejamiento de claves RSA. Téngalo en cuenta a la hora de realizar esta configuración.

Configurar el ajuste del cortafuegos

Para concluir el material de hoy, queremos hablar de la configuración del cortafuegos que se utilizará para permitir o denegar las conexiones. Vamos a repasar sólo lo básico, tomando como ejemplo el Firewall sin complicaciones (UFW).

  1. En primer lugar, echemos un vistazo a la lista de perfiles existentes. Entrar . sudo ufw app list y haga clic en Entre en.
  2. Confirme la acción especificando la contraseña de superusuario.
  3. En la lista, busque SSH. Si esta línea está presente allí, entonces todo está funcionando correctamente.
  4. Permitir una conexión a través de esta utilidad escribiendo sudo ufw allow OpenSSH.
  5. Active el cortafuegos para actualizar las reglas. Esto se hace a través de un comando sudo ufw enable.
  6. Puede comprobar el estado actual del cortafuegos en cualquier momento introduciendo sudo ufw status.

Esto completa el proceso de configuración de SSH en Debian. Como puede ver, hay muchos detalles y reglas diferentes que hay que seguir. Por supuesto, un artículo no puede abarcar absolutamente toda la información, así que sólo hemos tocado los aspectos básicos. Si está interesado en obtener información más detallada sobre esta herramienta, le sugerimos que lea su documentación oficial.

Nos alegramos de que hayamos podido ayudarle con su problema.

Describa lo que no le ha funcionado.
Nuestros especialistas tratarán de responder con la mayor rapidez posible.

¿Le ha ayudado este artículo?