Перейти к содержимому
Secret Knock

Порт-нокинг MikroTik с iPhone, iPad и Mac

В RouterOS нет демона стука, но его брандмауэр может поэтапно обрабатывать стук с помощью списков адресов: каждый подходящий пакет добавляет исходный адрес в список, а последний список открывает Winbox или SSH. Secret Knock отправляет оба типа стука для MikroTik — по портам и размерам ping-пакетов.

Стук по портам

Три попытки подключения по порядку перемещают адрес из списка в список; только адрес из последнего списка получает доступ к Winbox (8291). Разместите эти правила выше любого правила, блокирующего входящий трафик.

/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"
Терминал RouterOS

Стук по размерам ping-пакетов

RouterOS также может сопоставлять размер эхо-запросов ICMP. packet-size — это весь пакет IPv4: 20 байт заголовка IP, 8 байт заголовка ICMP и данные ping, поэтому данные размером 100 байт приходят как 128 байт. В редакторе ping в Secret Knock вы указываете размер данных; приложение показывает итоговые размеры пакетов ICMP, IPv4 и IPv6 и предупреждает при значениях свыше 1280 байт, когда пакеты могут быть фрагментированы.

/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
Терминал RouterOS

Добавьте дверь в приложение

  1. 1Новая дверь › Начать с шаблона › MikroTik — последовательность портов или MikroTik — размеры ping-пакетов. В обоих шаблонах в качестве проверяемого порта задан Winbox (8291).
  2. 2Введите свои порты или размеры данных и количество ping-пакетов.
  3. 3Постучите, дождитесь статуса «Дверь приоткрыта», затем откройте Winbox.

Все примеры на GitHub → Все конфигурации с этой страницы, готовые к копированию: github.com/mobilcomm/secretknock-examples (общественное достояние).

Вопросы

Почему стук не открывает доступ к MikroTik?

Проверьте порядок правил (правила стука должны стоять перед правилом блокировки), тайм-ауты address-list и то, видит ли маршрутизатор адрес, с которого вы стучите: Secret Knock показывает его на главном экране.

Руководства по настройке