Maxval писал(а): ↑28 окт 2017, 16:22
Vlad-2 писал(а):У меня только идея
Надо слегка обхитрить текущую защиту Вашу!
1) при успешном подключении скриптом вытаскивать адрес внешнего подключения и заносить в белый список
2) указать белый список ранее(перед) правилами Вашими! (то есть сначала смотрим белый, потом Блок-лист списки)
3) (и самое важное!) если подключение происходит с адреса из белого списка, то в файрволе с помощью Jump сразу "
убегать" на правило:
Код: Выделить всё
add action=accept chain=input comment="Allow L2TP" dst-port=1701,500,4500 protocol=udp
тем самым для подключающего не будет срабатывать правила защиты от брут-форса.
В общем как всегда, методом научного тыка, гуглением и не пониманием происходящего удалось сделать как надо:
Код: Выделить всё
add action=accept chain=input comment="Block l2tp brute forcer" dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_success tcp-flags=""
add action=drop chain=input connection-state="" dst-port=1701,500,4500 log=yes log-prefix="--==DROP L2TP brute forcer==--" protocol=udp src-address-list=l2tp_blacklist tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_blacklist address-list-timeout=3d chain=input connection-state=new dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_stage5 tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_stage5 address-list-timeout=1m chain=input connection-state=new dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_stage4 tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_stage4 address-list-timeout=1m chain=input connection-state=new dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_stage3 tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_stage2 tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=1701,500,4500 protocol=udp src-address-list=l2tp_stage1 tcp-flags=""
add action=add-src-to-address-list address-list=l2tp_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=1701,500,4500 protocol=udp tcp-flags=""
add action=accept chain=input comment="Allow L2TP" dst-port=1701,500,4500 protocol=udp
/ppp profile
add change-tcp-mss=yes local-address=10.0.0.1 name=L2TP-Server on-up="/ip firewall address-list add list=l2tp_success address=\$\"caller-id\" timeout=1d" remote-address=l2tp_pool use-encryption=yes use-mpls=yes
После успешного подключения по l2tp/ipsec клиент залетает со своим внешним ип в адрес лист фаервола и в течении дня больше не проверяется. Спасибо за помощь =)
Спасибо вам, все работает.
Видимо я слишком параноидален, но вот засела мысль, которую выкинуть из головы не получилось )
В общем сделал по вашему скрипту. В то же время наткнулся на другой гайд по порт-кногингу. И идея мне понравилась. Но, из-за своей параноидальности, взбрело в голову что возможен такой момент: Если вдруг, по какой-либо случайности, пакет попадет на правильный порт, то зная, или подобрав данные к доступу моего l2tp, есть вероятность, что доступ будет осуществлен. Решил объединить ваш скрипт и порт-кногинг.
У меня, к сожалению, нет опыта по настройке микротика. Даже не разобрался пока как сделать выгрузку правил фаерволла. Все сделал по гайдам.
Действовал методом тыка, вот что получилось:
Собственно логика такая:
- При попытке соединения по l2tp начинает работать защита брут-форса
- Если до этого не было стука на правильный порт, то даже при правильных идентификационных данных, защита добавит в блеклист ип
- Если стук был в порт-ловушку, то ип улетает в блеклист
- Если стук был на правильный порт, но данные не правильные, то так же улетает в блеклист
- Если стук был в правильный порт, то есть 10 сек. на то, чтоб осуществить подключение
- Если стук был на правильный порт, с правильными данными, то ип добавляется в список разрешенных. (в этом случае подключение разрешено на сутки даже без предварительного стука
Правильная последовательность действий для подключения:
- Постучаться на правильный порт
- В течение 10 сек. осуществить подключение
- Если подключение было разорвано, то подключаться можно без предварительного стука на правильный порт. Пока ип находится в белом списке
Я, конечно, подозреваю, что есть куда более правильные способы. Но оно работает! Да и додумано головой, не знающей покоя ) Что принесло удовлетворение от проделанной работы )
Прошу форумчан поправить, если что не так с моими правилами, касающиеся данного сегмента. Кидайте тапками, если я изобрел велосипед, все это не нужно, и можно обойтись куда более простыми решениями