https://habr.com/ru/articles/495596/

/ip firewall filter add action=drop chain=input dst-port=19000 protocol=tcp src-address-list=«Black_scanners» comment=RemoteRules add action=drop chain=input dst-port=16000 protocol=tcp src-address-list=«Black_scanners» comment=RemoteRules add action=add-src-to-address-list address-list=«remote_port_1» address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«allow_remote_users» address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules move [/ip firewall filter find comment=RemoteRules] 1 /ip firewall nat add action=dst-nat chain=dstnat comment=«remote_rdp» src-address-list=«allow_remote_users» dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

Теперь подробнее:

первые два правила

/ip firewall filter add action=drop chain=input dst-port=19000 protocol=tcp src-address-list=«Black_scanners» comment=RemoteRules add action=drop chain=input dst-port=16000 protocol=tcp src-address-list=«Black_scanners» comment=RemoteRules

запрещают входящие пакеты с IP адресов, которые попали в черный список при сканировании портов;

Третье правило:

/ip firewall filter add action=add-src-to-address-list address-list=«remote_port_1» address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

добавляет ip в список хостов, которые сделали правильный первый стук на нужный порт (19000); Следующие четыре правила:

add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules add action=add-src-to-address-list address-list=«Black_scanners» address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules

создают порты ловушки для желающих просканировать ваши порты, и при обнаружении таких попыток заносят их ip в черный список на 60 минут, в течении которых первые два правила не дадут таким хостам возможности постучаться в правильные порты;

Следующее правило:

add action=add-src-to-address-list address-list=«allow_remote_users» address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list=«remote_port_1» comment=RemoteRules

помещает ip в список разрешенных на 1 минуту (достаточно для установления соединения), так как сделан второй правильный стук в нужный порт(16000);

Следующая команда:

move [/ip firewall filter find comment=RemoteRules] 1

перемещает наши правила вверх по цепочки обработки фаерволом, так как скорее всего у нас уже будут настроены разные запрещающие правила, которые не дадут сработать нашим вновь созданным. Самое первое правило в микротике начинается с нуля, но у меня на устройстве ноль быль занят встроенным правилом и невозможно было переместить — я переместил на 1. Поэтому смотрим по нашим настройкам — куда можно переместить и указываем нужный номер.

Следующая настройка:

/ip firewall nat add action=dst-nat chain=dstnat comment=«remote_rdp_to_33» src-address-list=«allow_remote_users» dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

осуществляет проброс произвольно выбранного порта 33890 на обычный RDP порт 3389 и ip нужного нам компьютера или терминального сервера. Таких правил мы создаем для всех необходимых внутренних ресурсов, желательно выставляя нестандартные(и разные) внешние порты. Естественно, что ip внутренних ресурсов должны быть либо статичными либо закреплены на DHCP сервере.