Ваши темы для Вебинаров

В Москве:

РФ (звонок бесплатный):

+7 (495) 103-99-88 +7 (800) 600-20-56

Action в Mikrotik ip firewall filter — accept, log, add to address list

3617



Мы поговорим об IP -> Firewall -> Action, о том какие действия мы можем применять в создаваемых правилах Firewall, по отношению к пакетам, если пакет был сопоставлен с нашими правилами. Рассмотрим, как эти действия мы можем применять, и в каких случаях мы будем использовать то или иное действие, и как это позволит оптимизировать наш Firewall.

Action = действие

Переходим в раздел IP -> Firewall Filter

IP/Firewall

Создаем новое правило, нажав «+»

Выберем цепочку Input, к примеру:

IP/Firewall/New Firewall Rule/General/Chain/Input

и рассмотрим все действия, которые находятся в разделе Action.

IP/Firewall/New Firewall Rule/Action

01. Action “Accept”

IP/Firewall/New Firewall Rule/Action/accept

Отмечу, что при создании нового правила по умолчанию подставляется действие Accept.

Accept – разрешить прохождение пакета.

Когда пакет будет сопоставлен с конкретным правилом, то этот пакет не будет идти ниже по правилам Firewall, если мы будем делать что-то с данным пакетом.

Например, действие /Action -> Accept разрешает прохождение пакета, после разрешающего правила наш пакет не будет перемещаться по нашим правилам, которые находятся ниже по списку Firewall.

Это значит, что есть разрешение на обработку этого пакета, и в дальнейшем он может пройти на наш маршрутизатор, и к примеру, может открыть какой-то порт и т.д.

Так будет выглядеть команда cli на маршрутизаторе, для цепочки Input:

/ip firewall filter add action=accept chain=input

02. Action “Log”

IP/Firewall/New Firewall Rule/Action/log

Что такое Log, это такое действие, которое ничего не делает с пакетом, а только пишет то, что подпадает под данное правило в лог.

cli команда на маршрутизаторе, для цепочки Input:

/ip firewall filter add action=log chain=input

Например: при отправке команды ping на наш маршрутизатор,

ping 192.168.88.1

(192.168.88.1 это IP адрес тестового маршрутизатора)

у нас правило журналирует данные пакеты, и мы можем посмотреть в разделе Log, что же у нас туда попадает.

Log

Каждый пакет журналирован. С предоставлением детальной информации, и в данном случае у нас mac -адрес отправителя, протокол, код протокола, IP адреса отправителя и получателя.

Log/Log Entry

cli команда для просмотра Log:

/log print

Вывод будет таким:

New Terminal/log print

Хотелось бы отметить, Action Log – может вызвать достаточно высокую нагрузку на маршрутизатор при больших объемах проходящего трафика.

К примеру, данный Action не желательно включать в ситуации, когда у вас идут большие объемы трафика, например Established, Related и скорости в несколько Гигабит, в этот момент вы можете потерять управление вашего маршрутизатора и ваш сервис будет прерван.
Action Log можно применять при написании новых правил, и проверять в логах, какие пакеты попадают под действия этого правила, и удостоверившись в правильной работе, менять действия, к примеру, на Accept или Drop.

Отмечу, что не всегда правило может работать как задумано, из-за неверно выбранных опций, а чаще всего по причине неправильного порядка в листе Firewall.

03. Action “add to address list”

Следующие, два действия в правилах, которые добавляют адрес источника или назначения в какой-то адрес лист.

IP/Firewall/New Firewall Rule/Action

Правило “add dst to address list” добавляет адрес назначения в заголовке пакета в указанный адрес лист.

Механика этого правила выглядит следующим образом, к примеру:
мы можем написать правило цепочка Input, Action – add dst to address list, Address List -test_dst

IP/Firewall/New Firewall Rule/General

Address List мы пишем сами или выбираем из тех, что есть в выпадающем списке, если у нас есть уже добавленные прочие адресные листы.

IP/Firewall/New Firewall Rule/Action/Address List

cli команда для создания такого правила:


    /ip firewall filter add action=add-dst-to-address-list address-list=test_dst address-list-timeout=none-dynamic chain=input    

В данном случае, для теста, отправим команду ping на наш маршрутизатор:

ping 192.168.88.1

После прохождения команды и получения ответов, проверяем:

IP/Firewall/Address Lists

Для проверки из терминала, cli команда:

/ip firewall address-list print

С выводом:
New Terminal/ip firewall address-list print

В данном случае мы добавили адрес самого маршрутизатора. С точки зрения заголовков пакетов в нашем случае и при таких условиях, адрес назначения будет 192.168.88.1, это как раз наш маршрутизатор.

add dst to address list и add srt to address list – ничего не делает с нашими пакетами, все пакеты проходящие через эти правила с такими условиями, будут обрабатываться другими,
нижестоящими правилами Firewall, которые идут следующими по списку правил.

Так зачем нам может понадобиться подобное правило. Подобное правило коллекционирует адреса, и это требуется, к примеру, в случае если мы не знаем когда какой-либо сервис идет куда-то в интернет, и мы не можем каким-то другим образом вычислить этот сервис.

Например, у нас есть Телеграм у него нет конкретного адреса сервера, который мы можем четко определить, для Телеграма используется протокол TCP порт 443, который мы не можем просто так заблокировать, не уничтожив доступ до других ресурсов из нашей сети, можно воссоздать ситуацию, когда с какого-то устройства, например с IP адреса нашего компьютера мы используем Телеграм, и такое правило будем собирать все IP адреса серверов Телеграм, доступных в нашем регионе в данное время, в наш адрес лист. После этого можно использовать этот адрес лист в других правилах, где мы будем совершать блокировку или разрешение, этих самых адресов.

Правило “add src to address list” добавляет в некий адрес лист IP адрес источника, который берется из заголовка пакета.

Поменяем ранее созданное правило и изменим это условие:

IP/Firewall/New Firewall Rule/Action

cli пример, пример создания нового правила:

/ip firewall filter add action=add-src-to-address-list address-list=test_dst chain=input

Если повторить действие – с командой Ping для нашего маршрутизатора, со своего компьютера.

ping 192.168.88.1

То в адрес лист попадет уже IP адрес самого компьютера. Проверим:

IP/Firewall/New Firewall Rule/Action

Для проверки из терминала

/ip firewall address-list print

Вывод команды:

New Terminal/ip firewall address-list print

Данный action – add src to address list полезно использовать в ситуации, когда мы пытаемся вычислить кого-то, кто делает что-то не разрешенное в нашем случае. Например, нельзя отправлять команду Ping в наш маршрутизатор, если ты “пропинговал” маршрутизатор, то тебя добавят в адрес лист и тебе запретят интернет,

или мы можем сделать подобное правило – что если кто-то из вашей локальной сети сходит в VK, то ему на 2 часа запретят выход в интернет.

Это можно сделать и такого рода правила применяются.

Также это правило активно применяется в ситуации так называемых “анипорт”, когда у вас не опубликована служба на 22 порту, то есть ssh, и если кто-то из интернета постучится на ssh, то это явный злоумышленник и его необходимо добавить в адрес лист из которого доступ к вашему маршрутизатору запрещен полностью и навсегда.

Так же у нас ниже есть опция Timeout – none dynamic и none static, которое позволяет добавлять в наш адрес лист, адреса источника или назначения динамично или статично.

IP/Firewall/New Firewall Rule/Action/Timeout

Что это значит, none dynamic – это значит до перезагрузки и без учета временных рамок, т.е. мы добавляем адрес с флагом D – dynamic, после перезагрузки этот IP адрес будет удален из адрес листа, то есть мы его не добавляем в конфигурационный файл и не храним при потере питания маршрутизатором.

Опция Timeout – none dynamic, добавляется по умолчанию, для Action – add dst to address list и add srt to address list.
/ip firewall filter add action=add-src-to-address-list address-list=test_dst chain=input
/ip firewall filter add action=add-src-to-address-list address-list=test_dst address-list-timeout=none-dynamic chain=input

IP/Firewall/Address Lists

Опция none static – это, на постоянной основе и без учета временных рамок. Как мы видим у нас добавился адрес, но без флага D. IP адрес добавлен на постоянной основе.

IP/Firewall/Address Lists

Команда для cli, выглядит:

/ip firewall filter add action=add-src-to-address-list address-list=test_dst address-list-timeout=none-static chain=input

Сравните вывод в терминале, для наших разных опций:
Comparing

Так же при использовании поля Timeout, мы можем указать какое-то время (добавить временные рамки), в секундах, к примеру 3600,

Timeout

Winbox автоматически определит, что это 1 час, и подставит удобно читаемое значение:

cli команда (значение 1h, так же будет верным):

/ip firewall filter add action=add-src-to-address-list address-list=test_dst address-list-timeout=3600 chain=input

IP/Firewall/Firewall Rule/Action/Timeout

Проверим, что получилось, в адрес листе.

IP/Firewall/Firewall Rule/Action/Timeout

Для проверки из терминала:

/ip firewall address-list print

New Terminal/ip firewall address-list print

Как мы видим, появилось дополнительное значение времени, через которое участник будет удален из данного адрес листа.

Повторюсь, что оба этих правила ничего не делают с пакетами, они всего лишь коллекционируют, либо адрес источника, либо адрес назначения из заголовков пакетов.

Так же хотелось бы отметить, что есть некоторая опасность, например связанная с UDP, дело в том, что в заголовок дейтаграммы UDP пакета, злоумышленник, может добавить абсолютно любой IP адрес и так как соединения у нас не устанавливаются, то может быть ситуация, что вы заблокируете какой-то ресурс, который вам не обходим, например, 8.8.8.8.

То есть если кто-то посылает вам пакет, в заголовке которого будет подставлен адрес источника 8.8.8.8, этим правилом вы добавите адрес, в свой адрес лист для злоумышленников, а уже следующим правилом для блокировки, вы заблокируете себе 8.8.8.8, что может быть определенным риском и неудобством.


  • MTCRE

    13 - 16 мая 10.00 - 18.00
  • MTCSE

    20 - 23 мая 10.00 - 18.00
  • MTCNA

    17 - 20 июня 10.00 - 18.00
  • MTCNA

    24 - 27 июня 10.00 - 18.00
  • MTCNA

    09 - 12 июля 10.00 - 18.00
  • MTCNA

    15 - 18 июля 10.00 - 18.00
  • MTCRE

    05 - 08 августа 10.00 - 18.00
  • MTCWE

    16 - 19 сентября 10.00 - 18.00

Курсы Mikrotik-Training.

Знания, которые дают результат.