====== MikroTik + port knocking over ICMP ======
add action=add-src-to-address-list address-list=white_list_ssh address-list-timeout=3d \
chain=input in-interface=ether1 packet-size=128 protocol=icmp src-address-list=ICMP_SSH_128_Stage1
add action=add-src-to-address-list address-list=ICMP_SSH_128_Stage1 address-list-timeout=1m \
chain=input in-interface=ether1 packet-size=128 protocol=icmp src-address-list=ICMP_SSH_98_Stage2
add action=add-src-to-address-list address-list=ICMP_SSH_98_Stage2 address-list-timeout=1m \
chain=input in-interface=ether1 packet-size=98 protocol=icmp src-address-list=ICMP_SSH_98_Stage1
add action=add-src-to-address-list address-list=ICMP_SSH_98_Stage1 address-list-timeout=1m \
chain=input in-interface=ether1 packet-size=98 protocol=icmp
Только после этого можно написать разрешающее правило для всего ICMP
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
Далее разрешаем работать по SSH только из таблицы white_list_ssh
add action=accept chain=input connection-state=new dst-port=22 in-interface=ether1 \
protocol=tcp src-address-list=white_list_ssh
Достаточно действенный метод, но не всегда удобный...
Чтобы открыть порт нам на 3 дня нужно:
ping -c 2 -s 70 mtik; ping -c 2 -s 100 mtik