Editado 9 hace meses por ExtremeHow Equipo Editorial
DebianSSHRedesSeguridadAcceso remotoLinuxServidorCódigo abiertoAdministración de sistemasInterfaz de línea de comandos
Traducción actualizada 9 hace meses
Secure Shell (SSH) es un protocolo de red popular que permite conexiones seguras a través de redes no seguras. SSH proporciona una forma segura de acceder a computadoras remotas y es esencial para los administradores del sistema. Configurar un servidor SSH en Debian es un proceso sencillo, y esta guía completa lo guiará a través de los pasos para configurar eficazmente un servidor SSH. Cubriremos la instalación, configuración, prácticas de seguridad y solución de problemas, así como proporcionaremos ejemplos y explicaciones. Esta guía asume que tiene un conocimiento básico del terminal y privilegios de superusuario (root) en su sistema Debian.
SSH significa Secure Shell y se utiliza para conectarse a máquinas remotas de manera segura. Reemplaza protocolos más antiguos como Telnet y FTP, que no son seguros ya que transmiten datos, incluidas contraseñas, en un formato no cifrado. SSH cifra la sesión, haciéndola ilegible para cualquier entidad interferente. Este cifrado garantiza la seguridad y confidencialidad de la transmisión de datos entre el cliente y el servidor. SSH opera en el puerto 22 por defecto y proporciona tanto autenticación como una interfaz de línea de comandos para la comunicación segura.
Antes de configurar el servidor SSH, es importante asegurarse de que su sistema Debian esté actualizado para evitar conflictos o problemas durante la instalación más tarde. Inicie sesión en su servidor Debian con privilegios de superusuario y siga estos pasos:
sudo apt update
sudo apt upgrade
Los comandos anteriores obtendrán la información más reciente sobre los paquetes disponibles, luego actualizarán los paquetes a la versión más reciente. Esto asegura que todos los requisitos previos para la instalación del servidor SSH estén presentes.
En Debian, el paquete OpenSSH proporciona un servidor y un cliente SSH. Para instalar el paquete del servidor OpenSSH, ejecute el siguiente comando:
sudo apt install -y openssh-server
La opción -y
responde automáticamente 'sí' a todos los mensajes, permitiendo una instalación no interactiva. La instalación del servidor OpenSSH comenzará automáticamente y se habilitará al completar.
Después de la instalación, es importante confirmar que el servicio SSH está funcionando como se espera. Para verificar el estado del servicio SSH, utilice el siguiente comando:
sudo systemctl status ssh
La salida debe indicar que el servicio está activo y en funcionamiento. Si no es así, puede iniciar el servicio SSH de la siguiente manera:
sudo systemctl start ssh
Además, para asegurarse de que el servicio SSH se inicie después de un reinicio, habilítelo:
sudo systemctl enable ssh
El archivo de configuración para el servidor SSH reside en /etc/ssh/sshd_config
. Se recomienda crear una copia de seguridad del archivo original antes de realizar cambios:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Edite el archivo de configuración con su editor de texto favorito, como nano o vim:
sudo nano /etc/ssh/sshd_config
Algunas configuraciones recomendadas son las siguientes:
Port 22
y cámbiela a un número por encima de 1024 para evitar conflictos con puertos conocidos.PermitRootLogin
en no
.PasswordAuthentication
en no
después de configurar la autenticación basada en claves.Después de realizar los cambios, guarde el archivo y salga del editor. Para aplicar los cambios, reinicie el servicio SSH:
sudo systemctl restart ssh
Las claves SSH proporcionan una forma más segura de iniciar sesión en un servidor SSH que usar una contraseña. Las claves SSH son esencialmente dos archivos: una clave pública y una clave privada. La clave privada reside en su máquina y debe mantenerse segura, mientras que la clave pública se guarda en el servidor. Aquí se explica cómo configurar la autenticación basada en claves SSH:
En la máquina cliente (su máquina local), genere claves SSH utilizando el siguiente comando:
ssh-keygen -t rsa -b 4096
Este comando genera un par de claves RSA de 4096 bits. Se le pedirá que ingrese un nombre de archivo para guardar las claves. Presione enter
para almacenarlas en la ubicación predeterminada (~/.ssh/id_rsa
para la privada y ~/.ssh/id_rsa.pub
para la pública).
Cargue la clave pública en el servidor Debian usando el comando ssh-copy-id
. Reemplace user
y server_ip
con su nombre de usuario y la dirección IP del servidor, respectivamente:
ssh-copy-id user@server_ip
Le pedirá su contraseña del servidor. Una vez ingresada, copiará la clave pública al ~/.ssh/authorized_keys
del servidor y establecerá los permisos apropiados.
Pruebe la conexión SSH para confirmar que la autenticación basada en claves funciona. Ejecute:
ssh user@server_ip
Si tiene éxito, iniciará sesión sin un mensaje de contraseña, lo que indica una autenticación adecuada basada en claves. Si está seguro de que la autenticación basada en claves está funcionando, ahora puede deshabilitar la autenticación por contraseña en /etc/ssh/sshd_config
estableciendo PasswordAuthentication no
.
Mejorar la seguridad del servidor SSH implica configurar ajustes que reduzcan los riesgos potenciales. Aquí hay varios pasos para asegurar aún más su servidor SSH:
Utilice las directivas AllowUsers
o AllowGroups
en sshd_config
para determinar qué usuarios pueden iniciar sesión a través de SSH. Por ejemplo, para permitir que solo user1
y user2
inicien sesión a través de SSH, agregue:
AllowUsers user1 user2
El protocolo SSH 1 está obsoleto y tiene vulnerabilidades. Siempre use el protocolo 2:
Protocol 2
Configure las reglas del firewall para permitir el acceso SSH solo desde direcciones IP de confianza. Con ufw
, agregue una regla como esta:
sudo ufw allow from trusted_ip to any port ssh
Fail2Ban es un software de prevención de intrusiones que ayuda a proteger su servidor de ataques de fuerza bruta. Instálelo así:
sudo apt install fail2ban
Por defecto, se configura automáticamente para proteger SSH. Asegúrese de que esté funcionando y habilitado:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
No es raro encontrar problemas con SSH. A continuación se presentan algunos problemas comunes y sus posibles soluciones.
Si recibe un error de 'Conexión rechazada', es posible que el servicio SSH no esté en funcionamiento o que un firewall esté bloqueando la conexión. Verifique que SSH esté habilitado:
sudo systemctl status ssh
Asegúrese de que su firewall esté configurado para permitir conexiones en el puerto SSH 22 o en el puerto que configuró.
Si no puede autenticarse, verifique sus permisos. Asegúrese de que authorized_keys
exista, sea legible y esté a cargo del usuario.
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
El servidor SSH registra información más detallada en /var/log/auth.log
. Inspeccionar este archivo a menudo ayuda a diagnosticar problemas.
Configurar un servidor SSH en Debian es una tarea esencial para garantizar la administración remota segura de su sistema. Esta guía cubre los aspectos importantes de la configuración de SSH, centrándose en la instalación, configuración y protección de su servidor SSH contra el acceso no autorizado. Siempre mantenga su servidor actualizado, limite los privilegios de los usuarios e implemente medidas de seguridad como firewalls y sistemas de prevención de intrusiones para fortalecer la seguridad de su servidor. La práctica adecuada de seguridad SSH es crucial para mantener un entorno de servidor seguro, eficiente y confiable.
Si encuentras algo incorrecto en el contenido del artículo, puedes