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:
@@ -16,26 +16,25 @@ zapret2 является пакетным манипулятором, основ
|
||||
Главный компонент zapret2 - программа [nfqws2](#nfqws2) (dvtws2 на BSD, winws2 на Windows), написанная на C, которая и является пакетным манипулятором.
|
||||
Содержит функции по перехвату пакетов, базовой [фильтрации](#использование-множественных-профилей), рапознавания основных протоколов и пейлоадов, поддержки хост и IP [листов](#фильтрация-по-листам), [автоматических](#детектор-неудач-автохостлистов) хостлистов
|
||||
с распознаванием блокировок, систему множественных [профилей](#использование-множественных-профилей) (стратегий), возможности по [отсылке](#прием-и-отсылка-пакетов) raw пакетов и другие сервисные функции.
|
||||
Однако, там нет никаких возможностей собственно для воздействия на трафик. Это вынесено в код на языке LUA, вызываемый из nfqws2.
|
||||
Однако, там нет никаких возможностей собственно для воздействия на трафик. Это вынесено в код на языке LUA, вызываемый из [nfqws2](#nfqws2).
|
||||
|
||||
Поэтому следующая по важности часть проекта - LUA код. В базовый комплект входит библиотека функций-хелперов [zapret-lib.lua](#библиотека-базовых-функций-zapret-liblua),
|
||||
библиотека программ автономных атак на DPI [zapret-antidpi.lua](#библиотека-программ-атаки-на-dpi-zapret-antidpilua), библиотека функций принятия динамических решений (оркестрации) [zapret-auto.lua](#библиотека-программ-автоматизации-и-оркестрации-zapret-autolua).
|
||||
Поэтому следующая по важности часть проекта - LUA код. В базовый комплект входит библиотека функций-хелперов [zapret-lib.lua](#библиотека-базовых-функций-zapret-liblua), библиотека программ автономных атак на DPI [zapret-antidpi.lua](#библиотека-программ-атаки-на-dpi-zapret-antidpilua), библиотека функций принятия динамических решений (оркестрации) [zapret-auto.lua](#библиотека-программ-автоматизации-и-оркестрации-zapret-autolua).
|
||||
Дополнительно присутствует набор тестов C функций `zapret-tests.lua`, средство обфускации wireguard протокола `zapret-wgobfs.lua` и средство записи дампа пакетов в cap файлы `zapret-pcap.lua`.
|
||||
|
||||
Функции перенаправления трафика из ядра в Linux возложены на iptables и nftables, в FreeBSD - на ipfw, в OpenBSD - на pf, в Windows - встроены в сам процесс winws2 посредством драйвера windivert.
|
||||
Функции перенаправления трафика из ядра в [Linux](#перехват-трафика-в-ядре-linux) возложены на [iptables](#перехват-трафика-с-помощью-iptables) и [nftables](#перехват-трафика-с-помощью-nftables), в [FreeBSD](#перехват-трафика-в-ядре-freebsd) - на [ipfw](#перехват-трафика-в-ядре-freebsd), в [OpenBSD](#перехват-трафика-в-ядре-openbsd) - на [pf](#перехват-трафика-в-ядре-openbsd), в [Windows](#перехват-трафика-в-ядре-windows) - встроены в сам процесс winws2 посредством драйвера windivert.
|
||||
Схема перехвата трафика из ядра , nfqws2 и lua код составляют минимально рабочее ядро проекта. Все остальное является дополнительным, второстепенным и опциональным.
|
||||
|
||||
Из второстепенных компонент - [скрипты запуска](#скрипты-запуска) под Linux - `init.d`, `common`, `ipset`, `install_easy.sh`, `uninstall_easy.sh` и средство автоматизации тестирования стратегий [blockcheck2](#blockcheck2).
|
||||
Цель скриптов запуска - согласовать процесс поднятия таблиц и запуск инстансов nfqws2, учесть особенности интеграции в различные дистрибутивы (openwrt, systemd, openrc).
|
||||
Дополнительная функция - обеспечить поддержку и согласованное обновление различных листов и загрузку IP листов в пространство ядра - ipset.
|
||||
Все это можно сделать при желании и собственными средствами, если так удобнее или функционал скриптов запуска не подходит.
|
||||
Скрипты запуска выносят все настройки в файл config, лежащий в корне проекта. Этот конфиг относится только к ним, nfqws2 ничего о нем не знает.
|
||||
Дополнительная функция - обеспечить поддержку и согласованное обновление различных [листов](#система-ведения-листов) и [загрузку](#create_ipset.sh) IP листов в пространство ядра - ipset.
|
||||
Все это можно сделать при желании и собственными средствами, если так удобнее или функционал [скриптов запуска](#скрипты-запуска) не подходит.
|
||||
Скрипты запуска выносят все настройки в файл [config](#файл-config), лежащий в корне проекта. Этот конфиг относится только к ним, nfqws2 ничего о нем не знает.
|
||||
|
||||
Для обработки листов предусмотрены 2 программы, написанные на C. [mdig](#mdig) - многопоточный ресолвер хостлистов неограниченного обьема.
|
||||
[ip2net](#ip2net) - программа для группировки отдельных IP адресов в подсети с целью сокращения их обьема.
|
||||
Эти программы используются в скриптах запуска и в [blockcheck2](#blockcheck2).
|
||||
|
||||
Скрипты запуска и инсталятор поддерживает установку на любые классические дистрибутивы Linux с systemd или openrc , из прошивок - на openwrt.
|
||||
[Скрипты запуска](#скрипты-запуска) и [инсталлятор](#инсталлятор) поддерживает установку на любые классические дистрибутивы Linux с systemd или openrc , из прошивок - на openwrt.
|
||||
Если система не удовлетворяет указанным требованиям - возможна самостоятельная "доприкрутка" к системе.
|
||||
|
||||
MacOS не поддерживается по причине отсутствия подходящего средства перехвата и управления пакетами. Стандартное для BSD средство ipdivert было убрано из ядра производителем.
|
||||
|
||||
Reference in New Issue
Block a user