SSH es un servicio indispensable para la administración de servidores. Sin embargo puede representar un problema de seguridad debido a la inmensa cantidad de robots que buscan activamente servidores que respondan a conexiones en el puerto 22/TCP
para realizar ataques de fuerza bruta tratando lograr acceso a cualquier cuenta de servidor. Una excelente práctica es será evitar utilizar este puerto para el funcionamiento del servicio y utilizar cualquier otro que sea menos propenso a recibir conexiones indeseables. Es decir ocultar el puerto de SSH aplicando el concepto de seguridad por oscuridad.
Elija un puerto disponible entre 1025 y 65535. Como ejemplo, este documento utilizará el puerto 34274
.
Autorice primero en SELinux el puerto elegido (ejemplo: 34274
) cambiando el contexto predeterminado al tipo ssh_port_t
:
semanage port -a -t ssh_port_t -p tcp 34274
Edite el archivo /etc/ssh/sshd_config
:
nano /etc/ssh/sshd_config
Cambie el valor de la opción Port
del archivo /etc/ssh/sshd_config
de Port 22
a Port 34274
:
Port 34274
Si acaso se utiliza firma digital para acceder al servidor, se sugiere cambiar también PermitRootLogin yes
por PermitRootLogin without-password
.
Guarde cambios y salga del editor de texto.
Abra el puerto elegido en FirewallD:
firewall-cmd -q --add-port=34274/tcp --permanent && firewall-cmd --reload
Reinicie servicio sshd
para aplicar cambios:
systemctl restart sshd
Validar con cualquier cliente para SSH desde un anfitrión remoto. Ejemplos:
ssh -p 34274 root@servidor.algo.com
sftp -o Port=34274 root@servidor.algo.com
scp -P 34274 -p /algún/archivo/para/transferir root@servidor.algo.com:~/
Para más detalles, consulte los siguientes documentos: