Как включать и выключать правила путем отправки пакета на какойто конкретный порт микротика?
Для этого нужно создать новое правило файрволла, которое будет отслеживать входящие пакеты на выбранный порт, и в зависимости от содержания этих пакетов выполнять соответствующие действия.
Например, предположим, что вы хотите включить/выключить правило с номером 3 через отправку пакета на порт 12345. Для этого нужно выполнить следующие шаги:
- Создайте новое правило файрволла, которое будет отслеживать входящие пакеты на порт 12345:
/ip firewall filter add chain=input protocol=tcp dst-port=12345 action=accept \ comment="Enable/disable firewall rule"
- Создайте скрипт, который будет вызываться при получении пакета на порт 12345, и который будет выполнять нужные действия со списком правил файрволла:
:local rule_id 3; # Номер правила для включения/выключения :local packet_data [/ip firewall mangle get [find comment="Enable/disable firewall rule"] packet]; :if ($packet_data = "enable") do={ /ip firewall filter enable $rule_id; } else={ /ip firewall filter disable $rule_id; } }
Здесь мы создаем новый скрипт с именем «toggle-firewall-rule», который будет вызываться при получении пакета на порт 12345. Скрипт содержит локальную переменную rule_id с номером правила файрволла, которое нужно включить/выключить. Также скрипт проверяет содержимое поля «packet» в маркировке (mangle), связанной с этим пакетом, и в зависимости от значения этого поля выполняет команду enable или disable для соответствующего правила файрволла.
- Создайте новое правило маршрутизации (mangle), которое будет добавлять значение enable или disable в поле «packet», чтобы скрипт мог определить, какое действие нужно выполнить:
/ip firewall mangle add chain=input protocol=tcp dst-port=12345 action=mark-packet \ new-packet-mark="Toggle firewall rule" passthrough=yes comment="Enable/disable firewall rule"
Теперь, когда вы отправляете пакет на порт 12345, он будет проходить через созданные правила файрволла и маршрутизации, и в зависимости от содержания поля «packet» в маркировке будет выполняться команда enable или disable для выбранного правила файрволла.
Обратите внимание, что этот подход может быть небезопасным, поскольку любой человек или приложение, имеющий доступ к сети Mikrotik, может отправить пакет на указанный порт и изменить правила файрволла. Поэтому рекомендуется использовать дополнительные меры безопасности, например, ограничение доступа к порту 12345 только из определенных сетей или IP-адресов.