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

В Москве:

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

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

Layer7 в Mikrotik

10680


В данной статье рассмотрим Layer7 на оборудование MikroTik.

Зачастую некоторые статьи в интернете пестрят информацией о том, что Layer7 — это прекрасный вариант для блокировки каких-либо ресурсов, для работы с какими-то сложными протоколами и детектирования этих сложных протоколов на оборудовании mikrotik.

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

Как это все происходит?

  • Общий принцип работы Layer7 на оборудовании Mikrotik:
    • Layer7 Protocol – это метод поиска по шаблонам (регулярным выражениям) определенных данных в TCP/UDP и ICMP протоколах.
    • Данный протокол просматривает первые 10 пакетов или 2KB каждого установленного соединения и ищет совпадения по регулярному выражению.
    • Если совпадений нет, то дальнейший поиск прекращается и соединение считается неизвестным для L7 фильтра.
    • Добавление регулярных выражений находится в /ip firewall layer7-protocol.
    • Для снижения нагрузки на маршрутизатор лучше работать с помеченными соединениями.
    • Если есть любые другие варианты идентификации трафика – лучше использовать их.

Что касается производительности, то производительность на layer7 самая минимальная. То есть, по большому счету, мы вместо базовой блокировки по портам, по ip-адресам, согласно интерфейсам, согласно размером пакета, занимаемся достаточно не характерной и ресурсоемкой работой для нашего маршрутизатора.

Данный подход можно рассматривать как ситуацию, когда альтернативных вариантов у вас конечно же нет. Что мы можем взять и где вообще взять эти самые регулярные выражения для нашей работы?

Раздел для настройки — это IP > firewall > Layer7 Protocol. Здесь мы можем записывать наборы регулярных выражений для использования в дальнейших наших правилах.

New Firewall L7 Protocol

Как это сделать – ищем «mikrotik layer7», переходим на страницу «mikrotik Вики». Страница.

Wiki Firewall Layer7 Protocol

Здесь есть огромное количество различных приложений. Есть уже написанные примеры, в том числе регулярные выражения.

Откроем, например регулярное выражение для SIP протокола.

sourceforge.net Layer7 Protocols

Выглядит это так:

sourceforge.net Layer7 Protocols


sip
^(invite|register|cancel|message|subscribe|notify) sip[\x09-\x0d -~]*sip/[0-2]\.[0-9]

Сюда дописываем SIP и уже можно использовать данный Layer7 фильтр в наших правилах.

New Firewall L7 Protocol

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

New Firewall Rule

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

IP/Firewall/Mangle

Или допустим делать Mark Connection , то есть метить соединение.

Mark Connection

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

Что касается оптимизации, если у нас есть любые другие варианты на тему поиска того или иного протокола в нашем потоке данных, используем его. Прибегать к layer7 имеет смысл только в ситуации, когда все другие варианты нам не помогли или же мы хотим блокировать или наоборот разрешать что-то очень специфичное. Например, мы хотим блокировать только инвайты в SIP, а все остальное оставлять или еще какие-то небольшие части того или иного протокола.

Хотелось бы отметить, что Layer7 не умеет работать с https трафиком. Если трафик серьезно зашифрован, то внутри этого трафика мы ничего не обнаружим. Естественно, работоспособность такого правила находится под серьезным сомнением.

Здесь посмотрим пример фильтрации социальных сетей:

Регулярное выражение для блокировки сайтов.


/ip firewall layer7-protocol add name=socseti regexp=”^.*(vk.com|vkontakte|odnoklassniki|odnoklasniki|facebook|my.mail.ru|ok.ru|twitter.com|urod.ru|yaplakal.com|fishki.net|youtube).*\$”

Пример “правильной” настройки блокировки с использованием фильтра L7.


/ip firewall mangle add action=mark-connection chain=prerouting comment=”L7social” connection-mark=no-mark dst-port=80,443 layer7-protocol=socsety new-connection-mark=block passthrought=yes protocol=tcp

/ip firewall mangle add action=mark-connection chain=prerouting comment=no-mark connection-mark=no-mark new-connection-mark=no-mark passthrough=yes

/ip firewall filter add action=reject chain=forward connection-mark=block protocol=tcp reject-with=tcp-reset

На мой взгляд, в двадцать втором году в современной версии RouterOS для этого можно использовать совершенно другие механики. Например, адрес листы с доменными именами, DNS блокировки и так далее.

На данный момент, layer7 является интересным функционалом, но его использование находится под большим вопросом.

Делайте оптимизацию, если все-таки решите настраивать Layer7 протокол. Настраивайте цепочки, метьте соединения если собираетесь разрешать что-то с помощью Layer7 протокола. Если есть возможность не использовать Layer7 протокол, не используйте Layer7 протокол.

OSI Firewall vs IDS/IPS

Для полноценной работы существует различные системы, которые не относятся к mikrotik.

Это ЭДС сканеры, которые позволяют проверять сигнатурами, позволяют работать с каким-то поведенческим анализом на пятом, шестом, седьмом уровне сетевой модели OSI, и для них это гораздо более правильная модель работы нежели, чем для стандартного Firewall, которым является mikrotik.


  • MTCNA

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

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

    12 - 15 августа 10.00 - 18.00
  • MTCNA

    09 - 12 сентября 10.00 - 18.00
  • MTCWE

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

    07 - 10 октября 10.00 - 18.00
  • MTCTCE

    11 - 14 ноября 10.00 - 18.00
  • MTCRE

    16 - 19 декабря 10.00 - 18.00

Курсы Mikrotik-Training.

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