mirror of
https://github.com/bol-van/zapret.git
synced 2025-05-24 22:32:58 +03:00
init.d: number pools. FW_EXTRA. nft insert. customs reorder
This commit is contained in:
@@ -323,3 +323,8 @@ v64:
|
||||
blockcheck: warn if dpi bypass software is already running
|
||||
blockcheck: TPWS_EXTRA, NFQWS_EXTRA
|
||||
init.d: multiple custom scripts
|
||||
|
||||
v65:
|
||||
|
||||
init.d: dynamic number allocation for dnum,tpws_port,qnum
|
||||
init.d: FW_EXTRA_PRE, FW_EXTRA_POST
|
||||
|
@@ -1579,9 +1579,11 @@ custom код вынесен в отдельные shell includes.
|
||||
/opt/zapret/init.d/macos/custom
|
||||
Он считается устаревшим. Актуальный вариант - помещать отдельные скрипты там же, но в директорию "custom.d".
|
||||
Она будет просканирована стандартным образом, т.е. в алфавитном порядке, и каждый скрипт будет применен.
|
||||
Рядом имеется "custom.d.examples". Это готовые скрипты, который можно копировать в "custom.d".
|
||||
Рядом имеется "custom.d.examples". Это готовые скрипты, которые можно копировать в "custom.d".
|
||||
Особо стоит отметить "10-inherit-*". Они наследуют стандартные режимы nfqws/tpws/tpws-socks.
|
||||
Полезно, чтобы не писать код заново. Достаточно лишь скопировать соответствующий файл.
|
||||
Можно наследовать и более сложным образом.
|
||||
"10-inherit-tpws4http-nfqws4https" наследует для http tpws, а для https и quic - nfqws.
|
||||
|
||||
Для linux пишется код в функции
|
||||
zapret_custom_daemons
|
||||
@@ -1594,18 +1596,41 @@ zapret_custom_firewall_v4
|
||||
zapret_custom_firewall_v6
|
||||
|
||||
zapret_custom_daemons поднимает демоны nfqws/tpws в нужном вам количестве и с нужными вам параметрами.
|
||||
Особо обратите внимание на номер демона в функциях "run_daemon" и "do_daemon".
|
||||
Для систем традиционного linux (sysv) и MacOS в первом параметре передается код операции : 1 = запуск, 0 = останов.
|
||||
Для openwrt логика останова отсутствует за ненадобностью.
|
||||
Схема запуска демонов в openwrt отличается - используется procd.
|
||||
|
||||
zapret_custom_firewall поднимает и убирает правила iptables.
|
||||
В первом параметре передается код операции : 1 = запуск, 0 = останов.
|
||||
|
||||
zapret_custom_firewall_nft поднимает правила nftables.
|
||||
Логика останова отсутствует за ненадобностью.
|
||||
|
||||
Если вам не нужны iptables или nftables - можете не писать соответствующую функцию.
|
||||
|
||||
В linux можно использовать локальные переменные FW_EXTRA_PRE и FW_EXTRA_POST.
|
||||
FW_EXTRA_PRE добавляет код к правилам ip/nf tables до кода, генерируемого функциями-хелперами.
|
||||
FW_EXTRA_POST добавляет код после.
|
||||
|
||||
В linux функции-хелперы добавляют правило в начало цепочек, то есть перед уже имеющимися.
|
||||
Поэтому специализации должны идти после более общих вариантов.
|
||||
Поэтому наследования идут с префиксом 10, а остальные custom скрипты с префиксом 50.
|
||||
Допустим, у вас есть особые правила для IP подсети youtube. Порты те же самые.
|
||||
Включен и общий обход. Чтобы youtube пошел приоритетом, скрипт должен применяться после
|
||||
общего обхода.
|
||||
Для macos правило обратное. Там правила добавляются в конец. Поэтому inherit скрипты
|
||||
имеют префикс 90.
|
||||
|
||||
В macos firewall-функции ничего сами никуда не заносят. Их задача - лишь выдать текст в stdout,
|
||||
содержащий правила для pf-якоря. Остальное сделает обертка.
|
||||
|
||||
Особо обратите внимание на номер демона в функциях "run_daemon" и "do_daemon", номера портов tpws
|
||||
и очередей nfqueue.
|
||||
Они должны быть уникальными во всех скриптах. При накладке будет ошибка.
|
||||
Так же следует избегать пересечения номеров портов tpws и очередей nfqws.
|
||||
При пересечении какой-то из демонов не запустится.
|
||||
Чтобы как-то нивелировать эту проблему, в examples используется переменная DNUM.
|
||||
На ее базе считается диапазон номеров очередей (5 шт), которые использует этот скрипт.
|
||||
При таком подходе достаточно, чтобы DNUM был везде уникален.
|
||||
Поскольку номера очереди и портов имеют нумерацию до 65536, можно использовать DNUM до 13106.
|
||||
Однако, следует оставить номера очереди 200-299 для стандартных режимов и не использовать их.
|
||||
Поэтому используйте функции динамического получения этих значений из пула.
|
||||
|
||||
custom скрипты могут использовать переменные из config. Можно помещать в config свои переменные
|
||||
и использовать их в скриптах.
|
||||
и задействовать их в скриптах.
|
||||
Можно использовать функции-хелперы. Они являются частью общего пространства функций shell.
|
||||
Полезные функции можно взять из примеров скриптов. Так же смотрите "common/*.sh".
|
||||
Используя хелпер функции, вы избавитесь от необходимости учитывать все возможные случаи
|
||||
@@ -1613,17 +1638,6 @@ custom скрипты могут использовать переменные
|
||||
Хелперы это учитывают, вам нужно сосредоточиться лишь на фильтрах {ip,nf}tables и
|
||||
параметрах демонов.
|
||||
|
||||
Код для openwrt и sysv немного отличается. В sysv нужно обрабатывать и запуск, и остановку демонов.
|
||||
Запуск это или остановка передается в параметре $1 (0 или 1).
|
||||
В openwrt за остановку отвечает procd.
|
||||
|
||||
Для фаервола в linux кастом пишется отдельно для iptables и nftables. Все очень похоже, но отличается
|
||||
написание фильтров и названия процедур хелперов. Если вам не нужны iptables или nftables -
|
||||
можете не писать соответствующую функцию.
|
||||
|
||||
В macos firewall-функции ничего сами никуда не заносят. Их задача - лишь выдать текст в stdout,
|
||||
содержащий правила для pf-якоря. Остальное сделает обертка.
|
||||
|
||||
|
||||
Простая установка
|
||||
-----------------
|
||||
|
Reference in New Issue
Block a user