Cómo configurar SSH para usar un puerto no estándar en Linux con SELinux
SSH tiene muchos trucos bajo la manga en cuanto a seguridad, uno de los cuales es configurar el servicio para usar un puerto no estándar. De forma predeterminada, SSH utiliza el puerto 22. Si quieres una manera fácil de confundir a posibles intentos de piratería, puedes configurar el servicio para que use un puerto diferente, como el 33000.
En las distribuciones de Linux que no utilizan SELinux, este proceso es bastante sencillo. Sin embargo, si SELinux está involucrado, no puedes simplemente cambiar el puerto sin informarle al sistema de seguridad de tu pequeño secreto.
Y eso es exactamente lo que vamos a hacer aquí, configurar Fedora 35 para que use el puerto 33000 para el tráfico entrante de SSH. 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ás 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 de sudo.
Cómo cambiar el puerto SSH por defecto
Lo primero que vamos a hacer es cambiar el puerto por defecto que utiliza SSH, que se encuentra en el archivo sshd_config. Abre ese archivo para editarlo con el siguiente comando:
Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivelsudo nano /etc/ssh/sshd_config
En ese archivo, busca la línea:
#Port 22
Cambia esa línea para que quede así:
Port 33000
Guarda y cierra el archivo.
Cómo proteger tu computadora de los virus: métodos y consejosNo reinicies el demonio aún, ya que primero debemos lidiar con SELinux.
Cómo alertar a SELinux sobre el cambio
Lo primero que haremos será verificar que SELinux esté al tanto de SSH. Ejecuta el siguiente comando:
sudo semanage port -l | grep ssh
Deberías ver que se muestra:
ssh_port_t tcp 22
Entonces SELinux está permitiendo el tráfico SSH en el puerto 22. Cambiaremos eso a 33000 con el siguiente comando:
¡Defiéndete! Protege tu seguridad en línea contra amenazas críticassudo semanage port -a -t ssh_port_t -p tcp 33000
Ahora, si verificamos qué puerto se está utilizando, debería aparecer:
ssh_port_t tcp 33000, 22
Aunque SELinux permita el puerto 22, SSH no estará escuchando en ese puerto, por lo que no es un problema.
Cómo abrir el firewall para el puerto 33000
A continuación, debemos abrir el firewall para permitir el tráfico SSH a través del puerto 33000. Para ello, ejecutamos el siguiente comando:
sudo firewall-cmd --add-port=33000/tcp --permanent
A continuación, recargamos el firewall con:
sudo firewall-cmd --reload
Luego, deshabilitaremos el puerto SSH estándar en el firewall con:
sudo firewall-cmd --remove-service=ssh --permanent
Nuevamente, recargamos 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
Inicia sesión en el servidor recién configurado con:
ssh USUARIO@SERVIDOR -p 33000
Donde USUARIO es el nombre de usuario remoto y SERVIDOR es la dirección IP (o dominio) del servidor remoto.
Y así es como se configura SSH para usar un puerto no estándar en una distribución de Linux que utiliza SELinux. Deberías considerar cambiar todos tus servidores para que utilicen un puerto no estándar para el servicio SSH. Cuando combinas eso con otros trucos de endurecimiento de SSH, estarás mucho más protegido contra usuarios indeseados que intenten acceder a tus servidores.
¡Alerta! Un nuevo gusano de Linux está propagándoseEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo configurar SSH para usar un puerto no estándar en Linux con SELinux , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados