Порт-ловушка в port knocking

Базовая функциональность RouterOS
Аватара пользователя
sasha300
Сообщения: 107
Зарегистрирован: 03 мар 2016, 16:00
Откуда: Санкт-Петербург

Порт-ловушка в port knocking

Сообщение sasha300 »

И снова привет!
Наваял правила для порткнокинга:

Код: Выделить всё

/ip firewall filter
add action=accept chain=input src-address-list=port_knocking
add action=drop chain=input dst-port=80 in-interface=bridge1 protocol=tcp
add action=add-src-to-address-list address-list=stage1 address-list-timeout=10s chain=input \
    in-interface=bridge1 packet-size=38 protocol=icmp
add action=add-src-to-address-list address-list=stage2 address-list-timeout=10s chain=input \
    in-interface=bridge1 packet-size=48 protocol=icmp src-address-list=stage1
add action=add-src-to-address-list address-list=port_knocking address-list-timeout=5m chain=input \
    in-interface=bridge1 packet-size=58 protocol=icmp src-address-list=stage2
add action=add-src-to-address-list address-list=port_knocking_BAN address-list-timeout=5m chain=input \
    comment=BAN in-interface=bridge1 log=yes packet-size=!58 protocol=icmp src-address-list=stage2
Порткнокинг работает, решил вставить порт ловушку (см. последнюю запись). Но проблема в том, что:
а) пакет на 38 бит проходит
б) пакет на 48 бит проходит и по этому же пакету срабатывает последнее правило, так как оно true (48 бит ведь != 58)

Мысля была такая: если кто-то как-то простучался успешно 2 раза, т.е. 38 бит => stage1 => 48 бит => stage2 => и тут отсылается любой размер пакета, не равный 58, то ip заносится в бан лист.

Но, как оказалось, не учел дальнейшее прохождение пакета на предпоследнем правиле; 48 бит проходят соответствующее правило, идет дальше и зацепляет последнее правило (так как source adress list = stage2). Собственно как сделать, чтобы оно не зацеплялось, но в source adress list было stage2, т.е. чтобы правила срабатывали при цепочке?
На просторах инета предлагают только порты-ловушки, вне зависимости от цепочки, а ведь это более красивое решение, только не понимаю как его реализовать..
Аватара пользователя
sasha300
Сообщения: 107
Зарегистрирован: 03 мар 2016, 16:00
Откуда: Санкт-Петербург

Re: Порт-ловушка в port knocking

Сообщение sasha300 »

допер:

Код: Выделить всё

/ip firewall filter
add action=accept chain=input src-address-list=port_knocking
add action=drop chain=input dst-port=80 in-interface=bridge1 protocol=tcp
add action=drop chain=input src-address-list=port_knocking_BAN
add action=add-src-to-address-list address-list=stage1 address-list-timeout=10s \
    chain=input in-interface=bridge1 packet-size=38 protocol=icmp
add action=add-src-to-address-list address-list=stage2 address-list-timeout=10s \
    chain=input in-interface=bridge1 packet-size=48 protocol=icmp \
    src-address-list=stage1
add action=drop chain=input in-interface=bridge1 packet-size=48 protocol=icmp \
    src-address-list=stage1
add action=add-src-to-address-list address-list=port_knocking \
    address-list-timeout=5m chain=input in-interface=bridge1 packet-size=58 \
    protocol=icmp src-address-list=stage2
add action=add-src-to-address-list address-list=port_knocking_BAN \
    address-list-timeout=1d chain=input comment=BAN in-interface=bridge1 log=\
    yes packet-size=!58 protocol=icmp src-address-list=stage2
Так как предпоследнее правило портит всю картину, то следующим правилом дропаю этот пакет. В итоге до последнего правила пакет не доходит.
эти тесты делал на тике для экспериментов, поэтому на боевом Микротике входящий input должен заходить на WAN