¿Qué es Port Knocking?

Port Knocking es una técnica que nos ayuda a mejorar la seguridad de los dispositivos, en este caso MikroTik, para minimizar el riesgo de que un intento de acceso no autorizado al equipo se lleve a cabo sobre protocolos como SSH, Telnet, Winbox, etc.

Su lógica de funcionamiento consiste en que el router reciba intentos de conexión que validen el acceso, el usuario que esta intentando acceder al router debe intentar acceder apuntando en el orden correcto de puertos para poder habilitar el acceso a la administración.

¿Dónde podemos aplicarlo?

Esta configuración la podemos realizar en cualquier equipo MikroTik que trabaje como router que nos permita la administración con RuterOS. Para las pruebas se tiene un equipo configurado en modo router, el cuál ya tiene una LAN y una WAN configurada con acceso a internet, si desconoce esta configuración recomiendo conocer y revisar el siguiente articulo que explica como hacerlo.

Configuración

El escenario en el que se realizaron las pruebas es en un ambiente de red local, la idea de está configuración es proteger el acceso del router desde cualquier IP origen que venga desde internet, que es de donde provienen la mayor parte de los ataques. De forma local también es funcional, sin embargo si el usuario desea acceder por MAC address no se realizaría está validación, si desea una protección local completa, tendría que deshabilitar el acceso por MAC realizando el siguiente paso.

  • Desde el menú Tools ---> Firewall ---> MAC WinBox Server seleccionamos la opción "none" para bloquear el acceso por MAC hacia el router.

Para este manual se utilizaron tan solo 2 puertos para la verificación, el puerto 9000 y el 6000, pero se puede utilizar la cantidad, orden y número de puerto que deseemos.

Paso 1 - Ingresamos a nuestro equipo MikroTik y nos dirigimos a firewall --> Filter Rules.

Paso 2 - Creamos la primer regla que fungirá como el primer toque para el acceso al router.

  • Chain: se selecciona input, que es la cadena que se debe seleccionar cuando queramos aplicar una regla donde el destino sea nuestro propio router.

  • Protocol: TCP

  • Dest. Port: seleccionamos puerto 9000, que es el puerto al que apuntaremos para intentar acceder al router.

  • Action: seleccionamos add src to address list con esta regla indicamos que la IP de origen la cuál esta intentado al router se agregue a una lista de direcciones IP.

  • Address List: colocamos el nombre que queramos dar a la lista de direcciones IP, para el ejemplo la nombró como puerto9000.

  • Timeout: Se coloca 00:01:00 para indicar que solo mantenga 1 minuto la dirección IP dentro de la lista puerto9000. Tiempo suficiente de intervalo entre un toque y el siguiente.

Paso 3 - Creamos la segunda regla que actuará como el segundo y ultimo toque para el acceso al router.

  • Chain: se selecciona input, que es la cadena que se debe seleccionar cuando queramos aplicar una regla donde el destino sea nuestro propio router.

  • Protocol: TCP

  • Dest. Port: seleccionamos puerto 6000, que es el puerto al que apuntaremos para intentar acceder al router.

  • Src. Address List: seleccionamos puerto9000 que es la lista creada en la anterior regla, indicando que solo se tomará en cuenta direcciones que estén dentro.

  • Action: seleccionamos add src to address list con esta regla indicamos que la IP de origen la cuál esta intentado al router se agregue a una lista de direcciones IP.

  • Address List: colocamos el nombre que queramos dar a la lista de direcciones IP, está sería nuestra ultima adress list y ahí se alojarían las direcciones que hayan pasado el filtro, la cual se nombra para el ejemplo como segura.

  • Timeout: para está lista ya no colocamos un intervalo de tiempo para que la IP se borre de la lista de direcciones IP, puesto que tendríamos que volver a hacer los toques de puertos cuando pase el tiempo que coloquemos aquí.

Paso 4 - Creamos una regla que permite a la address list seguro el trafico que tiene como destino el router.

  • Chain: input todo trafico que tiene como destino el router.

  • Src. Address List: seleccionamos la lista de direcciones IP seguro, donde se alejan nuestras direcciones IP que ya realizaron los toques de puertos que establecimos.

  • Action: accept.

Paso 5 - Creamos la ultima regla que deniega cualquier trafico que tiene como destino el router.

Chain: se selecciona input, todo trafico con destino al router.

Action: se selecciona drop para que haga la denegación.

Nota importante: si tenemos algún servicio operando en el mismo router que este recibiendo solicitudes, como por ejemplo un servidor VPN, servidor DNS, etc. Debemos agregar está regla que deniega todo el trafico hacia el router después de las reglas que permiten estos servicios.

Pruebas

Para probar que la configuración sea correcta vamos al Login de nuestro equipo con la aplicación Winbox y hacemos los siguiente.

  1. Intentamos ingresar colocando únicamente la dirección de nuestro router y no debemos tener acceso.

  2. Intentamos acceder a nuestro router apuntando al puerto 9000 y tampoco debemos tener acceso, pero internamente en el router nuestra IP de origen ya se debió agregar a la lista puerto9000.

  3. Intentamos acceder a nuestro router apuntando al puerto 6000 y tampoco debemos tener acceso, pero internamente en el router nuestra ip de origen ya se debió agregar a la lista seguro.

  4. Volvemos a intentar conectarnos sin apuntar a ningún puerto como en el paso 1, y ya debemos tener acceso a nuestro router.

  5. Para validar el trabajo de las reglas nos dirigimos a IP ---> Firewall ---> Addres list y debemos tener nuestra dirección de origen agregada a la lista puerto9000 con un intervalo de tiempo de 1 Minuto y también agregada indefinidamente a la lista seguro.

Con esto ya tendríamos aplicada la técnica de seguridad conocida como Port Knocking en nuestro equipo.

¿Encontró su respuesta?