readme: multiple custom docs

This commit is contained in:
bol-van 2024-10-12 13:17:35 +03:00
parent 38fda46b74
commit ff85cd8c0c
2 changed files with 38 additions and 9 deletions

View File

@ -317,3 +317,9 @@ nfqws: multi-strategy
v63:
tpws: multi-strategy
v64:
blockcheck: warn if dpi bypass software is already running
blockcheck: TPWS_EXTRA, NFQWS_EXTRA
init.d: multiple custom scripts

View File

@ -1572,18 +1572,42 @@ nfset-ы принадлежат только одной таблице, след
Вариант custom
--------------
custom код вынесен в отдельный shell include
custom код вынесен в отдельные shell includes.
Поддерживается старый вариант в
/opt/zapret/init.d/sysv/custom
или
/opt/zapret/init.d/openwrt/custom
/opt/zapret/init.d/macos/custom
Он считается устаревшим. Актуальный вариант - помещать отдельные скрипты там же, но в директорию "custom.d".
Она будет просканирована стандартным образом, т.е. в алфавитном порядке, и каждый скрипт будет применен.
Рядом имеется "custom.d.examples". Это готовые скрипты, который можно копировать в "custom.d".
Особо стоит отметить "10-inherit-*". Они наследуют стандартные режимы nfqws/tpws/tpws-socks.
Полезно, чтобы не писать код заново. Достаточно лишь скопировать соответствующий файл.
Нужно свой код вписать в функции :
Для linux пишется код в функции
zapret_custom_daemons
zapret_custom_firewall
zapret_custom_firewall_nft
В файле custom пишите ваш код, пользуясь хелперами из "functions" или "zapret".
Смотрите как там сделано добавление iptables или запуск демонов.
Для macos
zapret_custom_daemons
zapret_custom_firewall_v4
zapret_custom_firewall_v6
zapret_custom_daemons поднимает демоны nfqws/tpws в нужном вам количестве и с нужными вам параметрами.
Особо обратите внимание на номер демона в функциях "run_daemon" и "do_daemon".
Они должны быть уникальными во всех скриптах. При накладке будет ошибка.
Так же следует избегать пересечения номеров портов tpws и очередей nfqws.
При пересечении какой-то из демонов не запустится.
Чтобы как-то нивелировать эту проблему, в examples используется переменная DNUM.
На ее базе считается диапазон номеров очередей (5 шт), которые использует этот скрипт.
При таком подходе достаточно, чтобы DNUM был везде уникален.
Поскольку номера очереди и портов имеют нумерацию до 65536, можно использовать DNUM до 13106.
Однако, следует оставить номера очереди 200-299 для стандартных режимов и не использовать их.
custom скрипты могут использовать переменные из config. Можно помещать в config свои переменные
и использовать их в скриптах.
Можно использовать функции-хелперы. Они являются частью общего пространства функций shell.
Полезные функции можно взять из примеров скриптов. Так же смотрите "common/*.sh".
Используя хелпер функции, вы избавитесь от необходимости учитывать все возможные случаи
типа наличия/отсутствия ipv6, является ли система роутером, имена интерфейсов, ...
Хелперы это учитывают, вам нужно сосредоточиться лишь на фильтрах {ip,nf}tables и
@ -1593,13 +1617,12 @@ zapret_custom_firewall_nft
Запуск это или остановка передается в параметре $1 (0 или 1).
В openwrt за остановку отвечает procd.
Для фаервола кастом пишется отдельно для iptables и nftables. Все очень похоже, но отличается
Для фаервола в linux кастом пишется отдельно для iptables и nftables. Все очень похоже, но отличается
написание фильтров и названия процедур хелперов. Если вам не нужны iptables или nftables -
можете не писать соответствующую функцию.
Готовый custom скрипт custom-tpws4http-nfqws4https позволяет применить дурение
tpws к http и nfqws к https. При этом поддерживаются установки из config.
Его можно использовать как стартовую точку для написания своих скриптов.
В macos firewall-функции ничего сами никуда не заносят. Их задача - лишь выдать текст в stdout,
содержащий правила для pf-якоря. Остальное сделает обертка.
Простая установка