La técnica de Port Knocking es muy utilizada para segurizar los router y de la cual hemos comentado varias maneras de implementarla; con una aplicación de Linux para trabajar con TCP y UDP (SYN) y también con Layer7 siguiendo algún patrón en especial para detectar el intento de acceso.

En esta oportunidad encontré una nueva manera de implementarla que es muy ingeniosa, se trata de enviar un paquete ICMP pero con un tamaño en especial y así poder detectar el intento de acceso, colocando el IP origen a una lista para luego aceptarle sus peticiones.

El paso a paso está en este artículo (original inglés)  y he decido tomar el mismo y traducirlo al español ya que será de utilidad para todos.

Partimos de la idea que vamos a permitir el acceso vía SSH de un Address List llamado AllowKnock; a ésta lista agregaremos los IP que nos envién un paquete ICMP con cierto tamaño en particular. Vamos a definir el tamaño de 5000 bytes pero teniendo en cuenta lo siguiente:

Tamaño del paquete (bytes) + 28 = Tamaño total del paquete (bytes)(28 bytes es el encabezado)

Sabiendo lo anterior y utilizando el tamaño de 5000 bytes tenemos:

5000 + 28 = 5028

Los pasos para crear las reglas son:

Ahora agregamos la nueva regla que acepte el SSH:

Ahora para testearlo hacemos:

Y eso es todo, excelente técnica!!

Vía: Datapels