Cómo configurar SSH para usar un puerto no estándar con SELinux configurado para hacer cumplir


Cambiar el puerto de escucha SSH es una manera fácil de ayudar a asegurar el inicio de sesión remoto en sus servidores Linux. Pero cuando SELinux está involucrado, debe realizar algunos pasos adicionales. Jack Wallen le muestra cómo.

SSH sobre servidores

Imagen: Funtap / Shutterstock

SSH tiene muchos trucos bajo la manga de seguridad, uno de los cuales es configurar el servicio para usar un puerto no estándar. De fábrica, SSH united states el puerto 22. Si desea una manera fácil de tropezar con los posibles intentos de piratería, puede configurar ese servicio para usar un puerto diferente, como el 33000.

VER: Política de respuesta a incidentes de seguridad (TechRepublic Premium)

En las distribuciones de Linux que no usan SELinux, este proceso es bastante sencillo. Sin embargo, si SELinux está involucrado, no puede simplemente cambiar el puerto sin dejar que el sistema de seguridad conozca su pequeño secreto.

Y eso es exactamente lo que voy a hacer aquí, configurar Fedora 35 para usar el puerto 33000 para el tráfico SSH entrante. Este mismo proceso funcionará en cualquier distribución de Linux que utilice SELinux (como RHEL, Alma Linux y Rocky Linux).

Dicho esto, pongámonos manos a la obra.

Lo que necesitarás

Para realizar este cambio, necesitará una instancia en ejecución de una distribución de Linux que incluya SELinux, así como el servidor SSH instalado y un usuario con acceso sudo.

Cómo cambiar el puerto SSH predeterminado

Lo primero que haremos es cambiar el puerto predeterminado que united states of america SSH, que se encuentra en el archivo sshd_config. Abra ese archivo para editarlo con el comando:

sudo nano /and so forth/ssh/sshd_config

En ese archivo, busque la línea:

#Port 22

Cambie esa línea para que lea:

Port 33000

Guarde y cierre el archivo.

No reinicie el demonio todavía, ya que primero debemos tratar con SELinux.

Cómo alertar a SELinux sobre el cambio

Lo primero que haremos es verificar que SELinux sea consciente de SSH. Emita el comando:

sudo semanage port -l | grep ssh

Debería ver en la lista:

ssh_port_t   tcp   22

Entonces SELinux está permitiendo el tráfico SSH en el puerto 22. Lo cambiaremos a 33000 con el comando:

sudo semanage port -a -t ssh_port_t -p tcp 33000

Ahora, si comprobamos qué puerto se está utilizando, debería volver como:

ssh_port_t   tcp   33000, 22

Aunque SELinux permite el puerto 22, SSH no escuchará ese puerto, por lo que no es un problema.

Cómo abrir el firewall al puerto 33000

A continuación, debemos abrir el firewall para permitir el tráfico SSH a través del puerto 33000. Para ello, emitimos el comando:

sudo firewall-cmd --insert-port=33000/tcp --everlasting

A continuación, vuelva a cargar el firewall con:

sudo firewall-cmd --reload

A continuación, deshabilitaremos el puerto SHH estándar a través del firewall con:

sudo firewall-cmd --remove-provider=ssh --long-lasting

Una vez más, recargue el firewall con:

sudo firewall-cmd --reload

Cómo reiniciar el demonio SSH e iniciar sesión

Ahora podemos reiniciar el demonio SSH con:

sudo systemctl restart sshd

Inicie sesión en el servidor recién configurado con:

ssh Consumer@SERVER -p 33000

Donde USUARIO es un nombre de usuario remoto y SERVIDOR es la dirección IP (o dominio) del servidor remoto.

Y así es como configura SSH para usar un puerto no estándar en una distribución de Linux que hace uso de SELinux. Debería considerar cambiar todos sus servidores para usar un puerto no estándar para el servicio SSH. Cuando combina eso con otros trucos de endurecimiento de SSH, contribuirá en gran medida a evitar que los usuarios no deseados obtengan acceso a sus servidores.

Suscríbete a TechRepublic’s Cómo hacer que la tecnología funcione en YouTube para obtener los últimos consejos tecnológicos para profesionales de negocios de Jack Wallen.

Ver también



Enlace a la noticia primary