Cambia el puerto de tu servidor SSH de manera dinámica con Google Authenticator cada 30 segundos

Escrito por Sergio De Luz

En RedesZone.net os hemos hablado en varias ocasiones sobre cómo mejorar la seguridad de nuestro servidor SSH. En cualquier sistema operativo basado en Linux o Windows es fundamental proteger este servicio, ya que de no hacerlo, podrían entrar en nuestro sistema con permisos de superusuario. Hoy os vamos a enseñar un truco para hacerlo un poco más seguro.

Antes de empezar a describiros cómo funciona este método para asegurar nuestro servidor SSH, os recomendamos visitar este artículo donde os damos recomendaciones de cómo mejorar la seguridad en nuestro servidor SSH:

Además de las recomendaciones básicas para mejorar la seguridad, también puedes instalar software adicional para protegerlo. Una de las recomendaciones que os podemos ofrecer es utilizar Latch para bloquear el acceso siempre que no lo estemos utilizando, de esta forma, estaremos protegidos frente a amenazas externas cuando tengamos el “pestillo” cerrado:

Otro método muy interesante es utilizar Google Authenticator para introducir una clave dinámica y loguearnos en el servicio SSH correctamente, a continuación tenéis el completo manual:

TOTP SSH Port Fluxing

Este nuevo método para asegurar nuestro servidor SSH consiste en que el puerto de acceso al servidor SSH cambia de manera dinámica cada 30 segundos. De esta forma, tendremos seguridad adicional por estar el puerto totalmente escondido. ¿Cómo puede el administrador saber qué puerto está utilizando su servidor en un determinado momento? Utilizando la aplicación Google Authenticator, simplemente con enlazar la aplicación con nuestro sistema operativo será suficiente para saber en todo momento qué puerto utiliza en un determinado instante.

google_authenticator_main

Lo primero que tenemos que hacer es instalar Golang que es el lenguaje en el que se ha programado esta herramienta, a continuación tendremos que compilar el programa y posteriormente ejecutarlo como superusuario en nuestro sistema.

Lo que realmente hace este programa es modificar la tabla PREROUTING del firewall de nuestro Linux (el programa utiliza iptables), para modificar el puerto cada 30 segundos. La parte de código fuente que se encarga de ello es justo esta:

<span class="pl-s"><span class="pl-pds">"</span>iptables<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>-t<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>nat<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>-A<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>PREROUTING<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>-p<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>tcp<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>--dport<span class="pl-pds">"</span></span>, fmt.<span class="pl-c1">Sprint</span>(port), <span class="pl-s"><span class="pl-pds">"</span>-j<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>REDIRECT<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>--to-port<span class="pl-pds">"</span></span>, fmt.<span class="pl-c1">Sprint</span>(sshport)

Un detalle importante es que si ya hay una sesión establecida en el servidor SSH, no cortará dicha conexión, seguirá manteniéndose hasta que finalice.

En el blog del autor de esta herramienta tenéis toda la información sobre ella incluyendo un vídeo de demostración. Os recomendamos visitar la página web oficial del proyecto TOTP SSH Port Fluxing en GitHub para conocer todos los detalles sobre este nuevo método y descargar el código fuente para incorporarlo en nuestro sistema operativo.

Últimos análisis

Valoración RZ
7
Valoración RZ
9
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
10