Drop port scanners

Базовая функциональность RouterOS
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Drop port scanners

Сообщение chas99 »

Коллеги, доброго дня.

везде, где нашел, предлагают такое правило для "борьбы" со сканерами портов -

/ip firewall filter

add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Port scanners to list " disabled=no

хотелось бы понять - а бывают ли другие значения, отличные от psd=21,3s,3,1 ?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Доброго.

https://wiki.mikrotik.com/wiki/Manual:I ... Properties

Т.е. в данном конкретном примере если какой-то src-address оказывается замечен чаще, чем раз в 3 секунды, то на каждый пакет значение счётчика для данного src-address увеличивается (на 3 для портов от 0 до 1024, на 1 для остальных портов). Когда суммарно накопится 21 - срабатывает правило. Если 3 секунды не было пакетов - счётчик обнуляется.
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Спасибо!

А есть ещё какие нибудь варианты применения этой функции?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Есть ли другой вариант применения функции "Обнаружение сканирования портов"? Есть наверное. Ведь микроскопом тоже можно гвозди забивать... Но в целом всё же лучше их обоих использовать осознанно и по назначению :)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

а порт можно использовать в этом правиле, например 3389, чтобы сканирование "отлавливалось" на конкретном порту?
или лучше и не придумаешь чем это -
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Port scanners to list " disabled=no
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Вы мешаете в кучу сканирование портов и подбор пароля. Сканирование портов - это когда кто-то пытается подключиться сначала на порт 80, потом на 81, потом на 443, 444, 8080 и далее по списку. И в итоге знает, что на целевой машине открыты такие-то порты, можно использовать на них более узкоспециализированные инструменты.

А как можно отсканировать один порт - не представляю. Один раз попробовал подключиться - и уже знаешь, открыт он или нет. Как роутер должен легитимное подключение отличить от "сканирования" - мне пока непонятно.
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Понятно, спасибо!

можно понять легитимное подключение или нет через «Port knocking», так ?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Можно и Port Knocking реализовать, только это уже немного другая история :)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Chupaka

я правильно понимаю, что если используется проброс портов, то правило фильтра "port scanners" не поможет ?
/ip firewall filter
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Port scanners to list " disabled=no
Ведь цепочка NAT обрабатывается раньше, чем правила фильтра и поэтому даже если атакующий в листе "port scanners", то правило
chain=dstnat action=netmap to-addresses=192.168.1.50 to-ports=3389 protocol=tcp src-address-list=!bruteforcer in-interface-list=WAN
dst-port=20700 log=no log-prefix=""
будет "выдавать" открытые порты...

как тогда бороться со сканерами портов, при наличии проброса ?

я сделал костыль в виде внесения адреса атакующего сразу в два списка "port scanners" и "bruteforcer", но может есть вариант как-то красивее это сделать ?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Ваше правило port scanners работает в input, а dst-nat пробрасывает пакеты внутрь сети, поэтому они пойдут не в input, а в forward.

А зачем вам бороться со сканерами портов? И со сканированием чего именно вы хотите бороться?
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Так как есть открытые порты, то не хочется, чтобы зловреды занимались подбором паролей на сервере...
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

На сколько я понимаю, зловреды сначала сканируют все порты, а уже после того как определяют какие порты "отвечают", начинают атаки на эти открытые порты...
Поэтому я подумал, что если дать отбой сканерам портов, то снизиться вероятность взлома RDP, да и нагрузка на сам сервер, как то так :)
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Проще всё же непосредственно закрыть порт каким-нибудь PortKnocking'ом.

Также PSD можно реализовать непосредственно в правилах NAT, которые будут сканеры заносить в Address-List, затем ниже делать Accept для сканеров - и уже потом пробрасывать порты для более легитимных пользователей, например.
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Chupaka писал(а): 23 дек 2018, 20:52 Также PSD можно реализовать непосредственно в правилах NAT, которые будут сканеры заносить в Address-List, затем ниже делать Accept для сканеров - и уже потом пробрасывать порты для более легитимных пользователей, например.
такое правило ?
chain=dstnat action=add-src-to-address-list protocol=tcp psd=21,3s,3,1 address-list=block_rdp address-list-timeout=10m in-interface=interne>
dst-port="" log=no log-prefix=""
затем ниже делать Accept для сканеров
это не понял, зачем Accept для сканеров ?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Да, типа такого.

Accept для того, чтобы прервать обработку правил dstnat. Альтернатива — в каждом правиле проброса дописать src-address-list=!block_rdp. При большом количестве пробросов неудобно и путь к дальнейшей путанице :)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Chupaka писал(а): 24 дек 2018, 15:08 При большом количестве пробросов неудобно и путь к дальнейшей путанице :)
а чем плохо использовать использовать Src.Address List ?
по моему вполне наглядно :)
Screenshot_1.jpg
Screenshot_1.jpg (101.56 КБ) 3215 просмотров
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Да, именно такого я стараюсь избегать без надобности =)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Вы рекомендуете в NAT делать только "проброс порта", а уже в Filter Rules обрабатывать (фильтровать) так ?
а чем кроме красивости/наглядности в NAT этот прием лучше?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Просто красивость/наглядность. Которая потом не даст повода где-нибудь недосмотреть и ошибиться.

Про рекомендации не совсем понял... Я рекомендую "пробрасывать" только легитимные источники, а block_rdp не пробрасывать, чтобы они приземлились в input, а не forward. Где их и заблокировать окончательно, например.
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

Chupaka писал(а): 26 дек 2018, 17:30
Я рекомендую "пробрасывать" только легитимные источники, а block_rdp не пробрасывать, чтобы они приземлились в input, а не forward. Где их и заблокировать окончательно, например.
Что-то я запутался, подскажите, плиз, а как из forward переделать в input ?

а можете поделиться как вы делаете проброс порта с блокировкой "левых" ?
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

chas99 писал(а): 27 дек 2018, 10:43 Что-то я запутался, подскажите, плиз, а как из forward переделать в input ?
Не переделать, а оставить. Нет DST-NAT - пакет уйдёт в input.
chas99 писал(а): 27 дек 2018, 10:43 а можете поделиться как вы делаете проброс порта с блокировкой "левых" ?
Никак, у меня такой необходимости нет. Я лишь говорю, что добавить accept-правило в NAT для block_rdp - и из всех правил можно убрать этот параметр, что сделает конфиг чище. Чем меньше дополнительных параметров - тем сложнее запутаться в них :)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

так ?
в самом начале списка NAT
chain=dstnat action=accept protocol=tcp src-address-list=block_rdp in-interface=internet log=no log-prefix=""
Аватара пользователя
Chupaka
Сообщения: 3878
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Drop port scanners

Сообщение Chupaka »

Да я бы уже все протоколы accept'ил от этих злодеев. Зачем только tcp? :)
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

а в Filter Rules, в самый верх добавить
chain=input action=drop protocol=tcp src-address-list=block_rdp in-interface=internet log=no log-prefix=""
chas99
Сообщения: 127
Зарегистрирован: 10 фев 2017, 08:52

Re: Drop port scanners

Сообщение chas99 »

итого в NAT добавить эти правила, первое будет пакеты от "block_rdp" отправлять в input Filter Rules для дальнейшей блокировки, а второе будет заносить адреса в "block_rdp" тех кто будет подпадать под PSD

chain=dstnat action=accept protocol=tcp src-address-list=block_rdp in-interface=internet log=no log-prefix=""
chain=dstnat action=add-src-to-address-list protocol=tcp psd=21,3s,3,1 address-list=block_rdp address-list-timeout=10m in-interface=interne>
dst-port="" log=no log-prefix=""
Ответить