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:

Siguiente Entrada Entrada Anterior