Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial
SSHServidorUbuntuLinuxRedesSeguridadConfiguraciónSistemas operativosAcceso remotoSistema
Traducción actualizada 4 Hace unas semanas
Configurar un servidor SSH en Ubuntu es un paso crucial para las tareas de administración remota y transferencia de archivos. SSH, o Secure Shell, es un protocolo de red criptográfico que permite la comunicación segura de datos a través de una red no segura. Se utiliza para iniciar sesión en una máquina remota y ejecutar comandos, así como para transferir archivos entre máquinas en una red. En esta guía, te guiaremos en el proceso de configurar un servidor SSH en un sistema Ubuntu.
Antes de instalar cualquier software, es importante asegurarse de que el gestor de paquetes de tu sistema tenga la información más reciente sobre los paquetes de software disponibles y sus dependencias. Para lograr esto, ejecuta el siguiente comando:
sudo apt update
El comando sudo
se utiliza para ejecutar comandos con privilegios elevados, típicamente requeridos para tareas de administración del sistema. El comando apt update
actualiza la lista de paquetes disponibles desde el repositorio de paquetes, asegurando que tengas acceso a las versiones más recientes.
El paquete del servidor SSH de Ubuntu se llama OpenSSH Server. Es uno de los paquetes de servidor SSH más utilizados en el ecosistema Linux debido a su simplicidad, seguridad y robustez. Para instalar OpenSSH Server, ejecuta el siguiente comando en la terminal:
sudo apt install openssh-server
Este comando descargará el paquete del servidor OpenSSH del repositorio de paquetes de Ubuntu y lo instalará en tu sistema. Durante la instalación, el gestor de paquetes también iniciará automáticamente el servicio SSH por ti.
Una vez que el servidor OpenSSH está instalado, querrás verificar si el servicio SSH está funcionando correctamente. Usa el siguiente comando para comprobar el estado del servicio SSH:
sudo systemctl status ssh
El comando systemctl
se utiliza para verificar el estado de las unidades del sistema, incluidos los servicios. Al verificar el estado del servicio SSH, deberías ver un mensaje que indique que el servicio está "activo (corriendo)". Si no está corriendo, puedes iniciarlo usando el siguiente comando:
sudo systemctl start ssh
Si deseas que el servicio SSH se inicie automáticamente al arrancar el sistema, utiliza el siguiente comando:
sudo systemctl enable ssh
El archivo de configuración del servidor SSH se encuentra en /etc/ssh/sshd_config
. Este archivo controla varios parámetros del servidor SSH, incluidos los números de puerto, algoritmos de intercambio de claves y métodos de autenticación. Es importante configurar este archivo para adaptarlo a tus necesidades de seguridad y acceso.
De forma predeterminada, el servidor SSH escucha en el puerto 22
. Sin embargo, cambiar el puerto predeterminado a un puerto no estándar puede ayudar a proporcionar otra capa de seguridad. Para cambiar el puerto, abre el archivo de configuración SSH con un editor de texto, por ejemplo:
sudo nano /etc/ssh/sshd_config
Busca la línea #Port 22
, y cámbiala como sigue:
Port 2222
Elimina #
del inicio para descomentar la línea. Asegúrate de que el puerto que elijas no sea utilizado por otros servicios.
Permitir el inicio de sesión como root a través de SSH puede suponer un riesgo de seguridad. Se recomienda desactivarlo buscando la siguiente línea:
PermitRootLogin yes
Y cámbiala como sigue:
PermitRootLogin no
Haciendo esto, aseguras que los usuarios inicien sesión como usuarios que no sean root y cambien a root si es necesario.
La autenticación por clave pública es más segura que la autenticación por contraseña. Para habilitarla, asegúrate de que las siguientes líneas estén configuradas en el archivo sshd_config
:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Esta configuración permite a los clientes autenticarse utilizando claves SSH almacenadas en el archivo ~/.ssh/authorized_keys
de las cuentas de usuario.
Después de realizar cambios en el archivo de configuración SSH, debes reiniciar el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart ssh
Ten en cuenta que si cambiaste el puerto, debes especificar el nuevo puerto al conectarte a través de SSH. Por ejemplo, si cambiaste el puerto SSH a 2222
, usa ssh user@host -p 2222
.
Si el firewall está habilitado en tu servidor Ubuntu, necesitarás permitir las conexiones entrantes de SSH. Suponiendo que estás usando UFW (Uncomplicated Firewall), puedes habilitar el firewall y permitir el tráfico SSH con el siguiente comando:
sudo ufw allow ssh
sudo ufw enable
Si cambiaste el puerto SSH predeterminado, reemplázalo con el número de puerto ssh
, por ejemplo:
sudo ufw allow 2222
Este comando ajusta las reglas del firewall para permitir el tráfico SSH en el puerto especificado.
Para asegurarte de que tu servidor SSH está configurado correctamente, intenta conectarte a él desde otra máquina (ya sea otra computadora o una máquina virtual). Usa el comando:
ssh usuario@ip_del_servidor
Reemplaza usuario
con tu nombre de usuario real en el servidor y reemplaza ip_del_servidor
con la dirección IP o el nombre de host de tu servidor. Si modificaste el puerto, debes especificarlo usando la opción -p
, por ejemplo:
ssh usuario@ip_del_servidor -p 2222
Si la conexión es exitosa, aparecerá un mensaje de inicio de sesión, permitiéndote iniciar sesión en tu servidor a través de SSH.
Es importante mejorar aún más la seguridad de tu configuración SSH para evitar accesos no autorizados. Aquí hay algunos consejos:
Fail2Ban es un programa que ayuda a prevenir ataques de fuerza bruta monitorizando intentos fallidos de inicio de sesión. Instálalo usando lo siguiente:
sudo apt install fail2ban
Por defecto, Fail2Ban prohíbe direcciones IP durante 10 minutos después de 3 intentos fallidos de inicio de sesión. Puedes personalizar estas configuraciones editando el archivo de configuración ubicado en /etc/fail2ban/jail.local
.
Considera permitir el acceso SSH solo a usuarios específicos. Puedes hacerlo agregando la siguiente línea a tu archivo sshd_config
:
AllowUsers usuario1 usuario2
Reemplaza usuario1
y usuario2
con los nombres de usuario reales a los que deseas permitir el acceso SSH.
Siguiendo estos pasos, puedes configurar y asegurar eficazmente un servidor SSH en tu sistema Ubuntu. Esta configuración proporciona un entorno robusto y seguro para la gestión remota del sistema y la transferencia segura de archivos. Recuerda mantener siempre tu sistema y servidor SSH actualizados para prevenir vulnerabilidades.
Si encuentras algo incorrecto en el contenido del artículo, puedes