Cómo cambiar el puerto SSH en Linux


El demonio SSH o Secure Shell es un protocolo de red que se utiliza para realizar inicios de sesión seguros de forma remota en sistemas Linux a través de un canal seguro a través de redes no seguras utilizando criptografía sólida.

Una de las utilidades más básicas del protocolo SSH es la capacidad de acceder a shells Unix en máquinas Linux remotas y ejecutar comandos. Sin embargo, el protocolo SSH puede ofrecer otras implementaciones, como la capacidad de crear túneles TCP seguros sobre el protocolo, transferir archivos de forma remota y segura entre máquinas o actuar como un servicio similar a FTP.

El puerto estándar utilizado por el servicio SSH es 22/TCP. Sin embargo, es posible que desee cambiar el puerto SSH predeterminado en su servidor Linux, para lograr algún tipo de seguridad a través de la oscuridad porque el puerto estándar 22/TCP está continuamente apuntado por vulnerabilidades por piratas informáticos y bots en Internet.

Para cambiar el puerto predeterminado del servicio SSH en Linux, primero debe abrir el archivo de configuración del demonio SSH principal para editarlo con su editor de texto favorito emitiendo el siguiente comando y realizar los siguientes cambios.

# vi /etc/ssh/sshd_config

En el archivo sshd_config, busque y comente la línea que comienza con el puerto 22, agregando un hashtag (#) delante de la línea. Debajo de esta línea, agregue una nueva línea de puerto y especifique su puerto deseado para vincular SSH.

En este ejemplo, configuraremos el servicio SSH para enlazar y escuchar en el puerto 34627/TCP. Asegúrese de elegir un puerto aleatorio, preferiblemente superior a 1024 (el límite superior de los puertos estándar conocidos). El puerto máximo que se puede configurar para SSH es 65535/TCP.

#Port 22
Port 34627

Después de realizar los cambios anteriores, reinicie el demonio SSH para reflejar los cambios y emita el comando netstat o ss para confirmar que el servicio SSH escucha en el nuevo puerto TCP.

# systemctl restart ssh
# netstat -tlpn| grep ssh
# ss -tlpn| grep ssh

En las distribuciones basadas en CentOS o RHEL Linux, instale el paquete policycoreutils y agregue las siguientes reglas para relajar la política de SELinux para que el demonio SSH se vincule en el nuevo puerto.

# yum install policycoreutils
# semanage port -a -t ssh_port_t -p tcp 34627
# semanage port -m -t ssh_port_t -p tcp 34627
# systemctl restart sshd
# netstat -tlpn| grep ssh
# ss -tlpn| grep ssh

Además, no olvide actualizar las reglas de firewall específicas para su propia distribución de Linux instalada para permitir que las conexiones entrantes se establezcan en el nuevo puerto SSH agregado.