Переходим в раздел IP -> Firewall Filter
Создаем новое правило, нажав «+»
Выберем цепочку Input, к примеру:
и рассмотрим все действия, которые находятся в разделе Action.
Accept – разрешить прохождение пакета.
Когда пакет будет сопоставлен с конкретным правилом, то этот пакет не будет идти ниже по правилам Firewall, если мы будем делать что-то с данным пакетом.
Например, действие /Action -> Accept разрешает прохождение пакета, после разрешающего правила наш пакет не будет перемещаться по нашим правилам, которые находятся ниже по списку Firewall.
Это значит, что есть разрешение на обработку этого пакета, и в дальнейшем он может пройти на наш маршрутизатор, и к примеру, может открыть какой-то порт и т.д.
Так будет выглядеть команда cli на маршрутизаторе, для цепочки Input:
/ip firewall filter add action=accept chain=input
Что такое Log, это такое действие, которое ничего не делает с пакетом, а только пишет то, что подпадает под данное правило в лог.
cli команда на маршрутизаторе, для цепочки Input:
/ip firewall filter add action=log chain=input
Например: при отправке команды ping на наш маршрутизатор,
ping 192.168.88.1
(192.168.88.1 это IP адрес тестового маршрутизатора)
у нас правило журналирует данные пакеты, и мы можем посмотреть в разделе Log, что же у нас туда попадает.
Каждый пакет журналирован. С предоставлением детальной информации, и в данном случае у нас mac -адрес отправителя, протокол, код протокола, IP адреса отправителя и получателя.
cli команда для просмотра Log:
/log print
Вывод будет таким:
Хотелось бы отметить, Action Log – может вызвать достаточно высокую нагрузку на маршрутизатор при больших объемах проходящего трафика.
К примеру, данный Action не желательно включать в ситуации, когда у вас идут большие объемы трафика, например Established, Related и скорости в несколько Гигабит, в этот момент вы можете потерять управление вашего маршрутизатора и ваш сервис будет прерван.
Action Log можно применять при написании новых правил, и проверять в логах, какие пакеты попадают под действия этого правила, и удостоверившись в правильной работе, менять действия, к примеру, на Accept или Drop.
Следующие, два действия в правилах, которые добавляют адрес источника или назначения в какой-то адрес лист.
Механика этого правила выглядит следующим образом, к примеру:
мы можем написать правило цепочка Input, Action – add dst to address list, Address List -test_dst
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
После прохождения команды и получения ответов, проверяем:
Для проверки из терминала, cli команда:
/ip firewall address-list print
С выводом:
В данном случае мы добавили адрес самого маршрутизатора. С точки зрения заголовков пакетов в нашем случае и при таких условиях, адрес назначения будет 192.168.88.1, это как раз наш маршрутизатор.
Так зачем нам может понадобиться подобное правило. Подобное правило коллекционирует адреса, и это требуется, к примеру, в случае если мы не знаем когда какой-либо сервис идет куда-то в интернет, и мы не можем каким-то другим образом вычислить этот сервис.
Например, у нас есть Телеграм у него нет конкретного адреса сервера, который мы можем четко определить, для Телеграма используется протокол TCP порт 443, который мы не можем просто так заблокировать, не уничтожив доступ до других ресурсов из нашей сети, можно воссоздать ситуацию, когда с какого-то устройства, например с IP адреса нашего компьютера мы используем Телеграм, и такое правило будем собирать все IP адреса серверов Телеграм, доступных в нашем регионе в данное время, в наш адрес лист. После этого можно использовать этот адрес лист в других правилах, где мы будем совершать блокировку или разрешение, этих самых адресов.
Поменяем ранее созданное правило и изменим это условие:
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 address-list print
Вывод команды:
Данный action – add src to address list полезно использовать в ситуации, когда мы пытаемся вычислить кого-то, кто делает что-то не разрешенное в нашем случае. Например, нельзя отправлять команду Ping в наш маршрутизатор, если ты “пропинговал” маршрутизатор, то тебя добавят в адрес лист и тебе запретят интернет,
или мы можем сделать подобное правило – что если кто-то из вашей локальной сети сходит в VK, то ему на 2 часа запретят выход в интернет.
Это можно сделать и такого рода правила применяются.
Также это правило активно применяется в ситуации так называемых “анипорт”, когда у вас не опубликована служба на 22 порту, то есть ssh, и если кто-то из интернета постучится на ssh, то это явный злоумышленник и его необходимо добавить в адрес лист из которого доступ к вашему маршрутизатору запрещен полностью и навсегда.
Что это значит, none dynamic – это значит до перезагрузки и без учета временных рамок, т.е. мы добавляем адрес с флагом D – dynamic, после перезагрузки этот IP адрес будет удален из адрес листа, то есть мы его не добавляем в конфигурационный файл и не храним при потере питания маршрутизатором.
/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
Опция none static – это, на постоянной основе и без учета временных рамок. Как мы видим у нас добавился адрес, но без флага D. IP адрес добавлен на постоянной основе.
Команда для cli, выглядит:
/ip firewall filter add action=add-src-to-address-list address-list=test_dst address-list-timeout=none-static chain=input
Сравните вывод в терминале, для наших разных опций:
Так же при использовании поля Timeout, мы можем указать какое-то время (добавить временные рамки), в секундах, к примеру 3600,
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 address-list print
Как мы видим, появилось дополнительное значение времени, через которое участник будет удален из данного адрес листа.
Так же хотелось бы отметить, что есть некоторая опасность, например связанная с UDP, дело в том, что в заголовок дейтаграммы UDP пакета, злоумышленник, может добавить абсолютно любой IP адрес и так как соединения у нас не устанавливаются, то может быть ситуация, что вы заблокируете какой-то ресурс, который вам не обходим, например, 8.8.8.8.
То есть если кто-то посылает вам пакет, в заголовке которого будет подставлен адрес источника 8.8.8.8, этим правилом вы добавите адрес, в свой адрес лист для злоумышленников, а уже следующим правилом для блокировки, вы заблокируете себе 8.8.8.8, что может быть определенным риском и неудобством.
С вами скоро свяжутся