mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
- [nfqws2](#nfqws2)
|
||||
- [Общие принципы задания параметров](#общие-принципы-задания-параметров)
|
||||
- [Полный список опций](#полный-список-опций)
|
||||
- [Распознавание протоколов](#распознавание-протоколов)
|
||||
- [Использование множественных профилей](#использование-множественных-профилей)
|
||||
- [Шаблоны профилей](#шаблоны-профилей)
|
||||
- [Фильтрация по листам](#фильтрация-по-листам)
|
||||
@@ -690,7 +691,7 @@ MULTI-STRATEGY:
|
||||
--filter-l3=ipv4|ipv6 ; фильтр профиля : версия ip протокола
|
||||
--filter-tcp=[~]port1[-port2]|* ; фильтр профиля : порты tcp или диапазоны портов через запятую
|
||||
--filter-udp=[~]port1[-port2]|* ; фильтр профиля : порты udp или диапазоны портов через запятую
|
||||
--filter-l7=proto[,proto] ; фильтр профиля : список протоколов потока. полный список доступен в help тексте программы.
|
||||
--filter-l7=proto[,proto] ; фильтр профиля : список протоколов потока
|
||||
--ipset=<filename> ; фильтр профиля : включающий список ip адресов или подсетей из файла. может быть смешанным ipv4+ipv6.
|
||||
--ipset-ip=<ip_list> ; фильтр профиля : включающий фиксированный список ip адресов или подсетей через запятую
|
||||
--ipset-exclude=<filename> ; фильтр профиля : исключающий список ip адресов или подсетей из файла. может быть смешанным ipv4+ipv6.
|
||||
@@ -711,7 +712,7 @@ MULTI-STRATEGY:
|
||||
--hostlist-auto-debug=<logfile> ; дебаг лог автолиста
|
||||
|
||||
LUA PACKET PASS MODE:
|
||||
--payload=type[,type] ; внутрипрофильный фильтр : фильтр пейлоада для последующих инстансов внутри профиля. список пейлоадов доступен в help тексте программы.
|
||||
--payload=type[,type] ; внутрипрофильный фильтр : фильтр пейлоада для последующих инстансов внутри профиля
|
||||
--out-range=[(n|a|d|s|p)<int>](-|<)[(n|a|d|s|p)<int>] ; внутрипрофильный фильтр : диапазон счетчиков conntrack для последующих инстансов внутри профиля - исходящее направление
|
||||
--in-range=[(n|a|d|s|p)<int>](-|<)[(n|a|d|s|p)<int>] ; внутрипрофильный фильтр : диапазон счетчиков conntrack для последующих инстансов внутри профиля - входящее направление
|
||||
|
||||
@@ -759,6 +760,30 @@ LOGICAL NETWORK FILTER:
|
||||
--nlm-list[=all] ; вывести список подключенных NLM сетей. all - список всех NLM сетей
|
||||
```
|
||||
|
||||
## Распознавание протоколов
|
||||
|
||||
nfqws2 сигнатурно распознает типы пейлоадов отдельно взятых пакетов или групп пакетов.
|
||||
Все пустые пакеты имеют пейлоад empty, неизвестные - unknown.
|
||||
Протокол потока присваивается после получение первого известного пейлоада и остается с потоком до конца его существования.
|
||||
При этом последующие пейлоады могут иметь как известный тип, так и неизвестный.
|
||||
В фильтрах по пейлоаду и протоколу потока доступны специальные значения - all и known. All означает любой, known - не empty и не unknown.
|
||||
|
||||
Таблица распознаваемых типов пейлоада и протоколов потока
|
||||
|
||||
| Протокол потока | L4 | Пейлоады |
|
||||
| :-------------- | :-- | :------- |
|
||||
| http | tcp | http_req<br>http_reply |
|
||||
| tls | tcp | tls_client_hello<br>tls_server_hello |
|
||||
| xmpp | tcp | xmpp_stream<br>xmpp_starttls<br>xmpp_proceed<br>xmpp_features |
|
||||
| quic | udp | quic_initial |
|
||||
| wireguarв | udp | wireguard_initiation<br>wireguard_response<br>wireguard_cookie<br>wireguard_keepalive |
|
||||
| dht | udp | dht |
|
||||
| discord | udp | discord_ip_discovery |
|
||||
| stun | udp | stun |
|
||||
| dns | udp | dns_query dns_response |
|
||||
| mtproto | udp | mtproto_initial |
|
||||
| dtls | udp | dtls_client_hello<br>dtls_server_hello |
|
||||
|
||||
## Использование множественных профилей
|
||||
|
||||
Профили существуют, чтобы в зависимости от указанных условий фильтра выбрать ту или иную стратегию воздействия на трафик.
|
||||
@@ -1086,7 +1111,7 @@ Lua код выполняется с ограниченными правами,
|
||||
Они бывают трех видов - `--payload`, `--in-range`, `--out-range`.
|
||||
Значения фильтров действуют с момента их указания до следующего переопределения.
|
||||
|
||||
- `--payload=type1[,type2][,type2]...` принимает список известных пейлоадов через зяпятую, "all" или "known". Список известных пейлоадов доступен в help тексте nfqws2. По умолчанию `--payload=all`.
|
||||
- `--payload=type1[,type2][,type2]...` принимает список известных пейлоадов через зяпятую, "all" или "known". [Список известных пейлоадов](#распознавание-протоколов). По умолчанию `--payload=all`.
|
||||
- `--(in-range|out-range)=[(n|a|d|s|p)<int>](-|<)[(n|a|d|s|p)<int>]` задает диапазоны счетчиков conntrack по входящему и исходящему направлениям. По умолчанию `--in-range=x`, `--out-range=a`.
|
||||
|
||||
Диапазоны задаются в формах : `mX-mY`, `mX<mY`, `-mY`, `<mY`, `mX-`, где m - режим счетчика, X - нижнее значение, Y - верхнее значение.
|
||||
@@ -1418,7 +1443,7 @@ desync
|
||||
| replay_piece | number | номер проигрываемой части | нумерация с 1 |
|
||||
| replay_piece_count | number | количество проигрываемых частей | |
|
||||
| replay_piece_last | bool | последняя проигрываемая часть | |
|
||||
| l7payload | string | тип пейлоада текущего пакета или группы пакетов. список возможных в help тексте nfqws2 | если неизвестно - unknown |
|
||||
| l7payload | string | [тип пейлоада](#распознавание-протоколов) текущего пакета или группы пакетов | если неизвестно - unknown |
|
||||
| l7proto | string | тип протокола потока | если неизвестно - unknown |
|
||||
| reasm_data | string | результат сборки многопакетного сообщения, либо сам пейлоад, если сборки не было | пока применяется только для tcp |
|
||||
| reasm_offset | string | смещение текущего переигрываемого пакета в сборке | пока применяется только для tcp |
|
||||
@@ -1555,7 +1580,7 @@ ipv6 extension headers и tcp options представляются в форме
|
||||
| Поле | Тип | Описание | Примечание |
|
||||
| :------------- | :----- | :-------------------------------------------------------------- | :----------------------------------------------- |
|
||||
| incoming_ttl | number | ttl/hl первого входящего пакета по потоку | может не быть, если не определено |
|
||||
| l7proto | string | протокол потока. список возможных доступен в help тексте nfqws2 | есть всегда. если неизвестно - unknown |
|
||||
| l7proto | string | [протокол потока](#распознавание-протоколов) | есть всегда. если неизвестно - unknown |
|
||||
| hostname | string | имя хоста. определяется на основе анализа L6/L7 протоколов | появляется только после определения |
|
||||
| hostname_is_ip | bool | является ли hostname ip адресом | только если есть hostname |
|
||||
| lua_state | table | таблица для хранения состояния, привязанного к потоку | есть всегда, передается с каждым пакетом потока |
|
||||
@@ -3331,7 +3356,8 @@ function payload_match_filter(l7payload, l7payload_filter, def)
|
||||
function payload_check(desync, def)
|
||||
```
|
||||
|
||||
Функции работают со строкой - списком пейлоадов через запятую. Список известных типов пейлоада можно получить из help текста nfqws2. Все пустые пакеты имеют пейлоад empty, неизвестные - unknown. Особые значения - all и known. all означает любой пейлоад, known - не unknown и не empty. Префикс `~` в начале означает логическую инверсию - несоответствие списку.
|
||||
Функции работают со строкой - списком пейлоадов через запятую. Особые значения - all и known. all означает любой пейлоад, known - не unknown и не empty. Префикс `~` в начале означает логическую инверсию - несоответствие списку.
|
||||
См. [распознавание протоколов](#распознавание-протоколов).
|
||||
|
||||
- payload_match_filter проверяет соответствие l7payload списку l7payload_filter или def, если l7payload_filter=nil. Если оба nil - список берется как "known".
|
||||
- payload_check вызывает `payload_match_filter(desync.l7payload, desync.arg.payload, def)`
|
||||
@@ -3480,7 +3506,7 @@ nfqws2 ничего не знает о том, что нужно `--lua-desync`
|
||||
|
||||
### standard payload
|
||||
|
||||
Фильтр по пейлоаду берет список типов пейлоада. Список известных типов пейлоада можно получить из help текста nfqws2. Все пустые пакеты имеют пейлоад empty, неизвестные - unknown. Особые значения - all и known. all означает любой пейлоад, known - не unknown и не empty.
|
||||
Фильтр по пейлоаду берет список [типов пейлоада](#распознавание-протоколов).
|
||||
|
||||
**standard payload**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user