3.4 Conexiones Remotas y SSH
¡Prepárate!
- Entenderás cómo el Demonio SSH (
sshd) atiende tus conexiones en el puerto
-
- Generarás tu propio par de llaves criptográficas asimétricas
(
ssh-keygen). - Aprenderás a “exportar” tu llave pública al servidor remoto (ssh-copy-id). - Securizarás el archivosshd_configcontra ataques de fuerza bruta.
- Generarás tu propio par de llaves criptográficas asimétricas
(
Rara vez te sentarás físicamente frente a un servidor Linux con un teclado conectado. El 99% del tiempo lo administrarás desde tu casa u oficina a través de Internet usando SSH (Secure Shell).
1. Conectándose por Contraseña (Poco Seguro)
Sección titulada “1. Conectándose por Contraseña (Poco Seguro)"Por defecto, si un servidor Linux tiene el servicio SSH instalado, puedes conectarte apuntando a su IP y proveyendo un usuario existente y su contraseña.
# Conectarse al servidor apuntando a su IPv4 local o públicassh juan@192.168.1.50El problema es que tu servidor está constantemente bajo ataque. Existen “bots” chinos y rusos que escanean todo Internet las 24 horas del día, intentando adivinar contraseñas (root/1234, admin/admin) millones de veces por segundo. Esto se llama Ataque de Fuerza Bruta. Si tu contraseña es débil, entrarán y destruirán tu empresa.
2. La Magia de las Llaves Criptográficas
Sección titulada “2. La Magia de las Llaves Criptográficas"Para volver una computadora in-hackeable, en Linux desactivamos el uso de contraseñas y obligamos a que el acceso remoto se verifique matemáticamente usando un Sistema de Llaves Asimétricas.
Funciona así:
- En tu ordenador personal generas un par matemático: Una Llave Pública (Un candado que le puedes compartir a todo el mundo) y una Llave Privada (La clave real para abrir ese candado, que jamás sale de tu casa).
- Mandas tu Llave Pública al buzón del Servidor Linux.
- Ahora, cuando intentes entrar al Servidor, este examinará matemáticamente si tu ordenador personal posee la Llave Privada correcta para ese candado. Si no la tienes, te corta la conexión inmediatamente.
Paso A: Generar tu par de llaves
Sección titulada “Paso A: Generar tu par de llaves"En tu ordenador personal (no en el servidor), abre una terminal y ejecuta:
# El algoritmo actual recomendado en 2024 es ED25519 (muy seguro y rápido)ssh-keygen -t ed25519Esto creará dos archivos ocultos en tu ordenador dentro de la carpeta ~/.ssh/:
id_ed25519: Tu llave privada (¡Secréta, no la pierdas, no la compartas!).id_ed25519.pub: Tu llave pública (El candado para exportar).
Paso B: Exportar el candado al Servidor
Sección titulada “Paso B: Exportar el candado al Servidor"Sabiendo la IP de tu servidor y tu usuario, vamos a “implantar” tu llave pública dentro de él. (Esta será la última vez que necesites escribir tu ridícula contraseña analógica).
ssh-copy-id juan@192.168.1.50¡Listo! A partir de ahora, si haces ssh juan@192.168.1.50, entrarás sin que el servidor te pregunte nada.
3. Blindando el Servidor (sshd_config)
Sección titulada “3. Blindando el Servidor (sshd_config)"Ahora que tú puedes entrar con una llave in-hackeable, tenemos que decirle al servidor que rechace a cualquier persona en la Tierra que intente conectarse usando una contraseña normal.
Entra por SSH al servidor y edita el archivo maestro del “Demonio” (Servicio de fondo) SSH:
sudo nano /etc/ssh/sshd_configBusca las siguientes tres líneas clave, descoméntalas quitando el # inicial si lo tuvieran, y ponlas exactamente en estos valores preventivos:
PermitRootLogin no(Nunca permitir que nadie inicie sesión directamente escribiendo el nombre ‘root’. Obliga a que la gente entre con su usuario normal y después usesudo).PasswordAuthentication no(Cierra la puerta de las contraseñas normales. Adiós fuerza bruta).PubkeyAuthentication yes(Confirma que solo admites llaves criptográficas).
Guarda el archivo y reinicia el servicio para que aplique los cambios:
sudo systemctl restart sshComprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"-
Has generado tu par de llaves y se han guardado como
id_rsaeid_rsa.pub. ¿Cuál de los dos archivos es el que debes enviar y pegar en el servidor remoto Linux que quieres administrar y por qué? -
Trabajas en una multinacional y han notado que en el archivo de “logs” del servidor hay 15.000 intentos de inicio de sesión fallidos por segundo desde Rusia intentando entrar directamente como administrador absoluto de la máquina. Tu llave criptográfica ya está operativa. ¿Qué dos líneas modificas dentro de
sshd_configusando Nano para erradicar completamente esta amenaza? -
Acabas de terminar de modificar el archivo
/etc/ssh/sshd_configa la perfección. Sin embargo, intentas entrar desde otro PC usando contraseñas prohibidas y te das cuenta que el servidor te sigue dejando entrar como si no hubieras hecho absolutamente nada. ¿Qué te ha faltado por hacer para que Debian procese tu nueva mentalidad LFCS?