Страница 1 из 1

Можно ли занулять с помощью Layer7 и как это сделать?

Добавлено: 13 ноя 2021, 19:00
FUN-ARP
Хотел бы узнать имеет ли вообще Layer7 такую возможность: не только обнаружить данные но еще и записать их (например нолями)? Не знаю, заложена ли такая функциональность. Попытался сымитировать присваивание нуля с помощью выражения "^.+=0".
Создал разрешающее правило файрвола с регулярным выражением включающим "^.+=0". И разместил его вверху по приоритету.

Код: Выделить всё

^.+=0(|[<=0|>=0]in[<=0|>=0]addr[<=0|>=0]+=0|[.in.addr.]+=0|)?i.+$
Ниже создал аналогичное запрещающее правило с таким же выражением но без "+=0". Разместил его под первым правилом.

Код: Выделить всё

^.+(|[<=0|>=0]in[<=0|>=0]addr[<=0|>=0]+=0|[.in.addr.]|)?i.+$
В результате траффик пакетов проходил через оба правила, это было видно на счетчике пакетов. Что проходит через первое правило?

Re: Можно ли занулять с помощью Layer7 и как это сделать?

Добавлено: 20 ноя 2021, 19:29
FUN-ARP
Regex cheat sheet пишет что можно заменять символы. А RouterOS это поддерживает?
 
Изображение

Re: Можно ли занулять с помощью Layer7 и как это сделать?

Добавлено: 21 ноя 2021, 00:53
hardrockbaby
FUN-ARP писал(а): 13 ноя 2021, 19:00 Хотел бы узнать имеет ли вообще Layer7 такую возможность: не только обнаружить данные но еще и записать их (например нолями)?
Попытался сымитировать присваивание нуля с помощью выражения "^.+=0".
Создал разрешающее правило файрвола с регулярным выражением включающим "^.+=0". И разместил его вверху по приоритету.
Согласно информации L7 может только обнаружить. Про замену данных ни слова.
Для RegEx выражения недопустимо в искомой строке производить замену. Должна быть строка поиска и отдельная строка замены.
То, что ты хотел присвоить 0 посредством "^.+=0" - неправильно. Строка отработает только на поиск данных. Например, твоё выражение найдёт такие строки:

Код: Выделить всё

sopicjxb234=0
05404=0abc
}]dkv=0923=q
....=0
FUN-ARP писал(а):Создал разрешающее правило файрвола с регулярным выражением
Сложно понять что ты хотел найти с помощью RegEx. :ne_vi_del:
Лучше укажи примеры что ты хочешь найти без RegEx.
FUN-ARP писал(а):Regex cheat sheet пишет что можно заменять символы
Заменять можно, но там говорится о JavaScript

Re: Можно ли занулять с помощью Layer7 и как это сделать?

Добавлено: 21 ноя 2021, 17:04
FUN-ARP
В общем, теперь понятно, что Layer 7 не заменяет символы.

Делал Regex для обнаружения обратного просмотра DNS по фрагменту "in-addr.arpa": https://ru.wikipedia.org/wiki/Обратный_просмотр_DNS . Разрешил по этому Regex все соединения для IP адресов DNS серверов и запретил соединения INPUT и FORWARD поступающие на порт провайдера. Предполагал что в результате внутренние IP-адреса будут скрыты от внешних. Играться можно долго, но я не знаю будет ли полезным для чего-либо это выражение:

Код: Выделить всё

^.+([<=0|>=0]in[<=0|>=0]addr[<=0|>=0]|[.in.addr.])?i.+$

Re: Можно ли занулять с помощью Layer7 и как это сделать?

Добавлено: 09 май 2023, 23:42
FUN-ARP
Без угловых скобок "<", ">" работает совсем не так, - в таком случае, регулярное выражение ничего не обнаруживает. В микротике регулярки основаны на PHP PCRE, а часть выражения "(?<action>\S+)" - это "Named Capture Group". Может быть, мое выражение работает вообще с любой из возможных "Named Capture Group", за которым следует "in.addr.arpa". Вот ссылка, откуда узнал об этом - https://regex101.com/r/sW8kS0/1 . Копипаст этого выражения:

Код: Выделить всё

.+HappyMK\s?(?<action>\S+)\s(?<chain>\w+):\sin:(?<int_in>\S+)\sout:(?<int_out>\S+), src-mac\s(?<src_mac>\S+),\sproto\s(?<prot>\w+)(\s(?<flags>\S+),|,)\s(?<src_ip>\b(?:\d{1,3}\.){3}\d{1,3}\b):(?<src_port>\d+)->(?<dest_ip>\b(?:\d{1,3}\.){3}\d{1,3}\b):(?<dest_port>\d+),(\s(?<NAT>\w+)\s\((?<src_nat_localip>\b(?:\d{1,3}\.){3}\d{1,3}\b):(?<src_nat_local_port>\d+)->(?<src_nat_public_ip>\b(?:\d{1,3}\.){3}\d{1,3}\b):(?<src_nat_public_port>\d+)\)->(?<dest_nat_ip>\b(?:\d{1,3}\.){3}\d{1,3}\b):(?<dest_nat_port>\d+),)?(\sprio\s(?<prio>\d+->\d+),)?\slen\s(?<len>\d+)
Хотел бы узнать о "Named Capture Groups" и их синтаксисе подробнее, - сейчас в процессе поиска, но информации не много.