Conclusión
De forma predeterminada, SSH escucha en el puerto 22. Cambiar el puerto SSH predeterminado agrega una capa adicional de seguridad al servidor al reducir el riesgo de ataques automatizados.
En lugar de cambiar el puerto, es mucho más fácil y seguro configurar el firewall para permitir el acceso al puerto 22 solo desde hosts específicos.
Este tutorial explica cómo cambiar el puerto SSH predeterminado en Linux. También le mostraremos cómo configurar el firewall para permitir el acceso al nuevo puerto SSH.
Cambiar el puerto SSH
Siga los pasos a continuación para cambiar el puerto SSH en su sistema Linux.
Elija el número de puerto
El primer paso es elegir el número del nuevo puerto. En Linux, los números de puerto inferiores a 1024 están reservados para servicios conocidos y solo pueden asociarse con root. Aunque es posible usar un puerto en el rango de 1-1024 para el servicio SSH para evitar problemas con la asignación de puertos en el futuro, se recomienda elegir un puerto por encima de 1024.
En este ejemplo, cambiará el puerto SSH a 3344, puede elegir cualquier puerto.
Ajustar el cortafuegos
El segundo paso es ajustar el cortafuegos. Antes de cambiar el puerto SSH, primero debe ajustar el firewall para permitir el tráfico en el nuevo puerto SSH.
Si está utilizando UFW, la herramienta de configuración de firewall predeterminada para Ubuntu ejecuta el siguiente comando para abrir el nuevo puerto SSH:
sudo ufw allow 3344/tcp
En CentOS, la herramienta de administración de firewall predeterminada es FirewallD. Para abrir el nuevo puerto, ejecute los siguientes comandos:
sudo firewall-cmd --permanent --zone=public --add-port=3344/tcp
sudo firewall-cmd --reload
Los usuarios de CentOS también deberán adaptar las reglas de SELinux para permitir el nuevo puerto SSH:
sudo semanage port -a -t ssh_port_t -p tcp 3344
Si está utilizando iptables como firewall, el siguiente comando abrirá el nuevo puerto SSH:
sudo iptables -A INPUT -p tcp --dport 3344 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Configuración SSH
El tercer paso es editar el archivo de configuración SSH.
Abra el archivo de configuración SSH /etc/ssh/sshd_config
con su editor de texto:
sudo nano /etc/ssh/sshd_config
Busque la línea que comienza con el Port 22
. En la mayoría de los casos, esta línea comenzará con un hash #
. Elimine el hash #
e ingrese su nuevo número de puerto SSH que se usará en lugar del puerto SSH estándar 22, así:
Port 3344
Tenga especial cuidado al editar el archivo de configuración SSH. Una configuración incorrecta podría impedir que se inicie el servicio SSH.
Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.
Una vez hecho esto, guarde el archivo y reinicie el servicio SSH para aplicar los cambios:
sudo systemctl restart ssh
En CentOS, el servicio ssh se llama sshd
:
sudo systemctl restart sshd
Para verificar que el demonio SSH esté escuchando en el nuevo puerto 3344
escriba:
ss -an | grep 3344
La salida debería verse así:
tcp LISTEN 0 128 0.0.0.0:3344 0.0.0.0:*
tcp ESTAB 0 0 192.168.111.111:3344 192.168.111.1:57638
tcp LISTEN 0 128 [::]:3344 [::]:*
Utilice el nuevo puerto SSH
Ahora que ha cambiado el puerto SSH cuando inicia sesión en la computadora remota, deberá especificar el nuevo puerto.
Utilice la -p <port_number>
para especificar el puerto:
ssh -p 3344 username@remote_host_or_ip
Conclusión
En este tutorial, aprendió cómo cambiar el puerto SSH en su servidor Linux. También puede configurar la autenticación basada en claves SSH y conectarse a servidores Linux sin ingresar una contraseña.