Port knocking de MikroTik desde iPhone, iPad y Mac
RouterOS no tiene un daemon de llamadas, pero su firewall puede gestionar una llamada mediante listas de direcciones: cada paquete coincidente añade el origen a una lista, y la última lista abre Winbox o SSH. Secret Knock envía ambos tipos de llamadas de MikroTik: puertos y tamaños de ping.
Llamar mediante puertos
Tres intentos de conexión en orden trasladan la dirección de una lista a otra; solo una dirección de la lista final llega a Winbox (8291). Coloca estas reglas antes de cualquier regla que descarte el tráfico de entrada.
/ip firewall filter
add chain=input protocol=tcp dst-port=4311 action=add-src-to-address-list \
address-list=knock-1 address-list-timeout=10s comment="knock 1"
add chain=input protocol=tcp dst-port=5822 src-address-list=knock-1 \
action=add-src-to-address-list address-list=knock-2 address-list-timeout=10s comment="knock 2"
add chain=input protocol=udp dst-port=6133 src-address-list=knock-2 \
action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="knock 3"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept comment="Winbox after the knock"
add chain=input protocol=tcp dst-port=8291 action=drop comment="Winbox for everyone else" Llamar mediante tamaños de ping
RouterOS también puede hacer coincidir el tamaño de las solicitudes de eco ICMP. packet-size corresponde al paquete IPv4 completo: 20 bytes de cabecera IP, 8 bytes de cabecera ICMP y los datos de ping, por lo que 100 bytes de datos llegan como 128. En el editor de ping de Secret Knock introduces el tamaño de los datos; muestra los tamaños de paquete ICMP, IPv4 e IPv6 resultantes, y avisa por encima de 1280 bytes, cuando los paquetes pueden fragmentarse.
/ip firewall filter
add chain=input protocol=icmp packet-size=128 action=add-src-to-address-list \
address-list=ping-1 address-list-timeout=10s comment="ping 100 bytes of data"
add chain=input protocol=icmp packet-size=308 src-address-list=ping-1 \
action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="ping 280 bytes of data"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept
add chain=input protocol=tcp dst-port=8291 action=drop Añade la puerta en la app
- 1Nueva puerta › Empezar con una plantilla › MikroTik — secuencia de puertos o MikroTik — tamaños de ping. Ambas plantillas configuran Winbox (8291) como el puerto que se debe comprobar.
- 2Introduce tus puertos o los tamaños de los datos y el número de pings.
- 3Llama, espera a que aparezca Puerta entreabierta y, después, abre Winbox.
Todos los ejemplos en GitHub → Todas las configuraciones de esta página, listas para copiar: github.com/mobilcomm/secretknock-examples (dominio público).
Preguntas
¿Por qué mi llamada de MikroTik no abre el puerto?
Comprueba el orden de las reglas (las reglas de llamada deben estar antes de la regla de descarte), los tiempos de espera de address-list y que el router vea la dirección desde la que llamas; Secret Knock la muestra en la pantalla de inicio.
Guías para tu configuración
- Port knocking explicado →
- knockd en iPhone, iPad y Mac →
- SPA de fwknop en iPhone, Mac y Apple Watch →
- Llamada a puertos de DrayTek Vigor →
- Oculta SSH tras llamadas a puertos →
- Port knocking en Apple Watch →
- Por qué una llamada no abre el puerto →
- Ejemplos de knockd.conf →
- configuración del servidor fwknop →
- ¿Port knocking, VPN o fail2ban? →