Интересные факты о протоколе седьмого уровня в маршрутизаторах Mikrotik

Рейтинг
Оценка: 5Голосов: 7Комментарии: 7

Есть в маршрутизаторах Mikrotik такая функция, как layer7-protocol, если кто не знает, находится она в меню IP Firewall, где есть соответствующая вкладка.

Рис.1. Меню IP FireWall. Вкладка Layer7 protocol

Рис.1. Меню IP FireWall. Вкладка Layer7 protocol

 

Layer7 protocol – это метод поиска по определенным параметрам в ICMP/TCP/UDP потоках. И при помощи правильно составленных регулярных выражениях посредством этого протокола можно очень гибко управлять всем проходящим через маршрутизатор трафиком. В частности, данная опция получает первые 10 пакетов или 2KB каждого установленного соединения и ищет совпадения по регулярному выражению. Если совпадений нет, то дальнейший поиск прекращается и соединение, считается неизвестным. Если же совпадения находятся, то в дальнейшем на вкладах Filter Rules, NAT или Mangle можно создавать цепочки правил с необходимыми действиями, которые вы хотели бы совершить над данным типом трафика.

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

Область применения L7 протокола крайне велика. Приведем пример, в котором определим соединение по SSH протоколу. Для этого мы создадим новую запись, которая будет содержать такое регулярное выражение: ^ssh-[12]\.[0-9]

Сделать это можно через командную строку, как показано на изображении.

Рис.2. Командна строка - ip firewall layer 7 protocol

Рис.2. Результат командной строки – ip firewall layer7 protocol

 

Или же, через GUI в меню IP Firewall на вкладке Layer7 Protocol.

Рис.3. GUI, в меню Firewall 7 Protocol

Рис.3. GUI, в меню Firewall 7 Protocol

 

После чего на вкладке Filter Rules можно создать правила Firewall, в котором допустим, запретить данный вид трафика входящего в маршрутизатор в цепочке input.

Рис.4. Создаём правила Firewall в цепочке input

Рис.4. Создаём правила Firewall в цепочке input

 

И при попытке подключиться к Mikrotik по этому протоколу, Вы увидите, что пакеты блокируются.

Рис.5. Пакет блокируется при подключении к Mikrotik

Рис.5. Пакет блокируется при подключении к Mikrotik

 

Похожим образом можно определять, помечать, фильтровать и сортировать практически любой вид трафика. Достаточно только правильно определить его. Для этого уже написан целый ряд регулярных выражений. Некоторые из них мы приводим в таблице ниже:

AIM: ^(\*[\x01\x02].*\x03\x0b|\*\x01.?.?.?.?\x01)|flapon|toc_signon.*0x
Bittorrent: ^(\x13bittorrent protocol|azver\x01$|get /scrape\?info_hash=get/announce\?info_hash=|get /client/bitcomet/|GET/data\?fid=)|d1:ad2:id20:|\x08’7P\)[RP]
Counterstrike Source: ^\xff\xff\xff\xff.*cstrikeCounter-Strike
DHCP: ^[\x01\x02][\x01- ]\x06.*c\x82sc
DNS: ^.?.?.?.?[\x01\x02].?.?.?.?.?.?[\x01-?][a-z0-9][\x01-?a-z]*[\x02-\x06][a-z][a-z][fglmoprstuvz]?[aeop]?(um)?[\x01-\x10\x1c][\x01\x03\x04\xFF]
eDonkey: ^[\xc5\xd4\xe3-\xe5].?.?.?.?([\x01\x02\x05\x14\x15\x16\x18\x19\x1a\x1b\x1c\x20\x21\x32\x33\x34\x35\x36\x38\x40\x41\x42\x43\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58[\x60\x81\x82\x90\x91\x93\x96\x97\x98\x99\x9a\x9b\x9c\x9e\xa0\xa1\xa2\xa3\xa4]|\x59…………….? [ -~]|\x96….$)
FTP: ^220[\x09-\x0d -~]*ftp
HTTP: http/(0\.9|1\.0|1\.1) [1-5][0-9][0-9] [\x09-\x0d –~]*(connection:|content-type:|content-length:|date:)|post [\x09-\x0d -~]* http/[01]\.[019]
IRC: ^(nick[\x09-\x0d -~]*user[\x09-\x0d -~]*:|user[\x09-\x0d –~]*:[\x02-\x0d –~]*nick[\x09-\x0d -~]*\x0d\x0a)
Jabber: <stream:stream[\x09-\x0d ][ -~]*[\x09-\x0d ]xmlns=['"]jabber
NTP: ^([\x13\x1b\x23\xd3\xdb\xe3]|[\x14\x1c$]…….?.?.?.?.?.?.?.?.?[\xc6-\xff])
POP3: ^(\+ok .*pop)
SIP: ^(invite|register|cancel|message|subscribe|notify)sip[\x09-\x0d -~]*sip/[0-2]\.[0-9]
Samba: \xffsmb[\x72\x25]
SMTP: ^220[\x09-\x0d -~]* (e?smtp|simple mail)userspacepattern=^220[\x09-\x0d -~]* (E?SMTP|[Ss]imple [Mm]ail)userspace flags=REG_NOSUB REG_EXTENDED
SNMP: ^\x02\x01\x04.+([\xa0-\xa3]\x02[\x01-x04].?.?.?.?\x02\x01.?\x02\x01.?\x30|\xa4\x06.+\x40\x04.?.?.?.?\x02\x01.?\x02\x01.?\x43)
Socks: \x05[\x01-\x08]*\x05[\x01-\x08]?.*\x05[\x01-\x03][\x01\x03].*\x05[\x01-\x08]?[\x01\x03]
SSH: ^ssh-[12]\.[0-9]
SSL: ^(.?.?\x16\x03.*\x16\x03|.?.?\x01\x03\x01?.*\x0b)
Telnet: ^\xff[\xfb-\xfe].\xff[\xfb-\xfe].\xff[\xfb-\xfe]
Tor: TOR1.*<identity>

   Таблица регулярных выражений

Так же можно самостоятельно составить регулярное выражение, допустим, для определения соединения с сайтами социальных сетей. Такой Regexp будет выглядеть примерно так: ^.*(get|GET).+(vk.com|odnoklassniki.com|twitter.com).*$ И это только малая часть возможных регулярных выражений. Однако, хочется заметить, что наш мир, а уж тем более Интернет, постоянно меняется, поэтому возможен вариант, что приведенный Regexp может не работать.                                               

И если добавить такую запись в разделе Layer7 Protocol, то в дальнейшем можно запретить этот трафик или перенаправить в другое место. Тем самым заблокировав доступ к этим сайтам.

Рис.6. Regexp - соединения с сайтами социальных сетей

Рис.6. Regexp – соединения с сайтами социальных сетей

 

Рис.7. Можно запретить или заблокировав доступ к социальным сетям

Рис.7. Можно запретить или заблокировав доступ к социальным сетям

Если Вы нашли ошибку в тексте, то выделите ее мышкой и нажмите Ctrl + Enter или нажмите здесь.

Сообщение об ошибке

Ошибка:

Ваш комментарий (не обязательно):

Да Отмена

Об авторе Newmann