Descripción general
El paquete del servidor OpenSSH proporciona 'sshd' (SSH Daemon) para recibir y procesar solicitudes de conexión de clientes SSH. Es un componente central para el acceso seguro a sistemas remotos y mejora la seguridad a través del cifrado de datos y mecanismos de autenticación robustos.
Funciones principales
- Inicio de sesión y acceso a shell remoto (SSH)
- Transferencia segura de archivos (SCP, SFTP)
- Reenvío de puertos y tunneling
- Soporte para varios métodos de autenticación (contraseña, clave pública, GSSAPI, etc.)
Instalación
El servidor OpenSSH a menudo no se incluye por defecto en la mayoría de las distribuciones de Linux o se excluye en instalaciones mínimas. A continuación, se explica cómo instalar el servidor OpenSSH en las principales distribuciones.
Debian/Ubuntu
sudo apt update
sudo apt install openssh-server
Se instala utilizando el gestor de paquetes APT.
CentOS/RHEL/Fedora
sudo yum install openssh-server
# O usando dnf
sudo dnf install openssh-server
Se instala utilizando el gestor de paquetes YUM o DNF.
Verificar el servicio después de la instalación
Después de la instalación, verifique si el servicio 'sshd' se inicia automáticamente y habilítelo si es necesario.
Verificar el estado del servicio y habilitarlo
sudo systemctl status sshd
sudo systemctl enable sshd --now
Opciones principales
La configuración principal del servidor OpenSSH se realiza a través del archivo '/etc/ssh/sshd_config'. A continuación, se muestran las opciones que se utilizan con frecuencia en este archivo de configuración.
Configuración de sshd_config
Comando generado:
Combina los comandos.
Descripción:
`openssh-server` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Ejemplos comunes de uso relacionados con la configuración y gestión del servidor OpenSSH.
Iniciar/Detener/Reiniciar el servicio sshd
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
Controla el servicio sshd en sistemas que utilizan systemd.
Verificar el estado del servicio sshd
sudo systemctl status sshd
Verifica el estado actual del demonio sshd.
Cambiar el puerto SSH (modificar sshd_config)
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd
Ejemplo para cambiar el puerto SSH predeterminado (22) a 2222. Después de modificar el archivo, debe reiniciar el servicio sshd.
Deshabilitar el inicio de sesión root
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
Mejora la seguridad estableciendo PermitRootLogin en 'no' en sshd_config.
Permitir el acceso solo a usuarios específicos
echo 'AllowUsers myuser' | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd
Agrega la opción 'AllowUsers' a sshd_config para permitir el acceso SSH solo al usuario 'myuser'.
Consejos y precauciones
Consejos y precauciones para operar el servidor OpenSSH de manera segura y eficiente.
Consejos para mejorar la seguridad
- **Cambiar el puerto predeterminado (22)**: Puede reducir la exposición a ataques de fuerza bruta.
- **Deshabilitar la autenticación por contraseña, usar autenticación por clave pública**: Es el método de autenticación más seguro. Las contraseñas corren el riesgo de ser adivinadas o filtradas.
- **Deshabilitar el inicio de sesión root**: La cuenta root tiene todos los permisos, por lo que es más seguro no permitir el inicio de sesión directo y usar la cuenta de usuario normal seguida de `sudo`.
- **Permitir solo usuarios/grupos específicos**: Restringe las cuentas que pueden acceder utilizando las opciones `AllowUsers` o `AllowGroups`.
- **Configurar el firewall**: Configure el firewall (ufw, firewalld, etc.) para permitir el acceso externo solo al puerto SSH (predeterminado 22 o el puerto modificado).
- **Instalar Fail2ban**: Bloquea la IP correspondiente en caso de fallos repetidos de inicio de sesión para defenderse de ataques de fuerza bruta.
Precauciones al cambiar la configuración
Después de modificar el archivo sshd_config, siempre debe verificar si hay errores de sintaxis en el archivo de configuración con el comando `sudo sshd -t` y luego reiniciar el servicio con el comando `sudo systemctl restart sshd`. Reiniciar el servicio con una configuración errónea puede hacer que el acceso SSH sea imposible.