Traducciones: [ en/English ] · [ fr/Français ] · [ de/Deutsch ]
Tabla de contenido
Haciendo Inútil SSHD: Una Guía para Asegurar SSH
Puede llegar un momento en el que necesites mantener el demonio SSH (sshd
) instalado en un servidor Linux pero asegurarte de que sea virtualmente inoperable. Esta guía elabora sobre cómo configurar sshd
para que se vuelva no funcional para escenarios de uso típicos, cumpliendo con requisitos de seguridad elevados, cumplimiento o simplemente para una configuración experimental.
Propósito de Deshabilitar SSHD
La razón para hacer que sshd
sea no funcional varía desde protocolos de seguridad hasta propósitos educativos:
- Cumplimiento de Seguridad: Directrices específicas o políticas de seguridad pueden requerir que
sshd
esté presente pero desactivado como medida de precaución. - Reducción de Superficie de Ataque: Un servicio inactivo disminuye las posibles vulnerabilidades, protegiendo el sistema contra intentos de acceso no autorizados.
- Comprensión Educativa: Comprender las complejidades de deshabilitar servicios puede mejorar el conocimiento en administración de sistemas y ciberseguridad.
Paso a Paso: Configurando SSHD para Ser No Funcional
A continuación se muestra un desglose de cada directiva de configuración para deshabilitar las funcionalidades de sshd
. Copia y pega lo siguiente en tu terminal:
echo '# Configuración de SSHD para Hacer SSH Inútil
PermitRootLogin no # Deshabilita el inicio de sesión de usuario root para mayor seguridad.
PasswordAuthentication no # Desactiva el inicio de sesión basado en contraseña, requiriendo claves que también desactivamos.
PubkeyAuthentication no # Deshabilita la autenticación de clave pública, asegurando que no haya métodos de inicio de sesión disponibles.
ChallengeResponseAuthentication no # Desactiva las autenticaciones de respuesta de desafío como OTPs.
UsePAM no # Deshabilita los Módulos de Autenticación Enchufables, restringiendo aún más los métodos de inicio de sesión.
PrintMotd no # Evita que se imprima el Mensaje del Día después del inicio de sesión.
AcceptEnv LANG LC_* # Especifica qué variables de entorno son aceptadas, minimizando la personalización.
Subsystem sftp /bin/false # Intenta deshabilitar SFTP asignando un binario ineficaz.
AllowTcpForwarding no # Prohíbe el reenvío de puertos TCP, un método para la transmisión segura de datos.
X11Forwarding no # Desactiva el reenvío de X11, evitando el reenvío de la pantalla GUI.
PermitEmptyPasswords no # Asegura que no se permitan contraseñas vacías, una medida de seguridad básica.
PermitUserEnvironment no # Restringe a los usuarios de establecer variables de entorno a través de SSH.
AllowAgentForwarding no # Deshabilita el reenvío de conexiones de agente de autenticación.
PermitTunnel no # Deshabilita el túnel, limitando la configuración de túneles seguros.
PermitUserRC no # Impide la ejecución de archivos de configuración específicos del usuario durante el inicio de sesión.
Port 4592 # Cambia el puerto de escucha a un número no convencional para la obfuscación.
' | sudo tee /etc/ssh/sshd_config >/dev/null
Implementar estos ajustes hace que sshd
sea extremadamente restrictivo, deshabilitando efectivamente sus funciones principales.
Aplicando la Configuración
Después de configurar, aplica los cambios reiniciando sshd
:
sudo systemctl restart sshd
Verificando la Configuración
Para asegurarte de que el servicio SSH ahora es no funcional por diseño, intenta iniciar una conexión SSH:
ssh -p 4592 usuario@tuservidor
Reemplaza usuario@tuservidor
con los detalles reales de tu servidor. La conexión debería ser fallida, lo que indica que tu servicio sshd
ahora es tan restrictivo como se pretendía, cumpliendo así su propósito de ser “inútil” para operaciones estándar mientras sigue estando activo.
Creado el: ago. 3, 2024
Descubre más sobre este tema:
- Introducción a Red Hat OpenShift
- Introducción Avanzada a Terraform
- Guía Detallada para Entender y Contar los inodos
- Automatización de Actualizaciones de Contenedores con Podman Auto-Update
- Dominando los Formatos de Archivos de Configuración: INI, YAML, TOML, JSON, XML y Más Allá