doc works

This commit is contained in:
bol-van 2024-11-19 17:31:19 +03:00
parent f0cc49c7e3
commit 818520452e
5 changed files with 427 additions and 390 deletions

View File

@ -100,7 +100,7 @@ Later you will add ipfw commands to `/etc/rc.firewall.my` to be reapplied after
You can also run zapret daemons from there. Start them with `--daemon` options, for example You can also run zapret daemons from there. Start them with `--daemon` options, for example
``` ```
pkill ^dvtws$ pkill ^dvtws$
/opt/zapret/nfq/dvtws --port=989 --daemon --dpi-desync=split2 /opt/zapret/nfq/dvtws --port=989 --daemon --dpi-desync=multisplit --dpi-desync-split-pos=2
``` ```
To restart firewall and daemons run : `/etc/rc.d/ipfw restart` To restart firewall and daemons run : `/etc/rc.d/ipfw restart`
@ -157,7 +157,7 @@ ipfw delete 100
ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg xmit em0 ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg xmit em0
# required for autottl mode only # required for autottl mode only
ipfw add 100 divert 989 tcp from any 80,443 to any tcpflags syn,ack in not diverted not sockarg recv em0 ipfw add 100 divert 989 tcp from any 80,443 to any tcpflags syn,ack in not diverted not sockarg recv em0
/opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2 /opt/zapret/nfq/dvtws --port=989 --dpi-desync=multisplit --dpi-desync-split-pos=2
``` ```
Process only table zapret with the exception of table nozapret: Process only table zapret with the exception of table nozapret:
@ -167,7 +167,7 @@ ipfw add 100 allow tcp from me to table\(nozapret\) 80,443
ipfw add 100 divert 989 tcp from any to table\(zapret\) 80,443 out not diverted not sockarg xmit em0 ipfw add 100 divert 989 tcp from any to table\(zapret\) 80,443 out not diverted not sockarg xmit em0
# required for autottl mode only # required for autottl mode only
ipfw add 100 divert 989 tcp from table\(zapret\) 80,443 to any tcpflags syn,ack in not diverted not sockarg recv em0 ipfw add 100 divert 989 tcp from table\(zapret\) 80,443 to any tcpflags syn,ack in not diverted not sockarg recv em0
/opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2 /opt/zapret/nfq/dvtws --port=989 --dpi-desync=multisplit --dpi-desync-split-pos=2
``` ```
Reinjection loop avoidance. FreeBSD artificially ignores sockarg for ipv6 in Reinjection loop avoidance. FreeBSD artificially ignores sockarg for ipv6 in
@ -245,7 +245,7 @@ sysctl net.inet6.ip6.pfil.inbound=ipfw,pf
ipfw delete 100 ipfw delete 100
ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg xmit em0 ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg xmit em0
pkill ^dvtws$ pkill ^dvtws$
dvtws --daemon --port 989 --dpi-desync=split2 dvtws --daemon --port 989 --dpi-desync=multisplit --dpi-desync-split-pos=2
# required for newer pfsense versions (2.6.0 tested) to return ipfw to functional state # required for newer pfsense versions (2.6.0 tested) to return ipfw to functional state
pfctl -d ; pfctl -e pfctl -d ; pfctl -e
@ -342,7 +342,7 @@ pass out quick on em0 proto tcp to port {80,443} divert-packet port 989
Then: Then:
``` ```
pfctl -f /etc/pf.conf pfctl -f /etc/pf.conf
./dvtws --port=989 --dpi-desync=split2 ./dvtws --port=989 --dpi-desync=multisplit --dpi-desync-split-pos=2
``` ```
`dwtws` only for table zapret with the exception of table nozapret : `dwtws` only for table zapret with the exception of table nozapret :
@ -375,7 +375,7 @@ pass out quick on em0 inet6 proto tcp to <zapret6-user> port {80,443} divert-p
Then: Then:
``` ```
pfctl -f /etc/pf.conf pfctl -f /etc/pf.conf
./dvtws --port=989 --dpi-desync=split2 ./dvtws --port=989 --dpi-desync=multisplit --dpi-desync-split-pos=2
``` ```
divert-packet automatically adds the reverse rule. By default also incoming divert-packet automatically adds the reverse rule. By default also incoming

View File

@ -12,7 +12,7 @@ iptables -t mangle -I POSTROUTING -p udp --dport 443 -m mark ! --mark 0x40000000
# auto hostlist with avoiding wrong ACK numbers in RST,ACK packets sent by russian DPI # auto hostlist with avoiding wrong ACK numbers in RST,ACK packets sent by russian DPI
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1
iptables -t mangle -I POSTROUTING -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:12 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass iptables -t mangle -I POSTROUTING -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:12 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
iptables -t mangle -I PREROUTING -p tcp -m multiport --sports 80,443 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass iptables -t mangle -I PREROUTING -p tcp -m multiport --sports 80,443 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:3 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
For TPROXY : For TPROXY :

View File

@ -19,8 +19,8 @@ For dpi desync attack :
nft delete table inet ztest nft delete table inet ztest
nft create table inet ztest nft create table inet ztest
nft add chain inet ztest post "{type filter hook postrouting priority mangle;}" nft add chain inet ztest post "{type filter hook postrouting priority mangle;}"
nft add rule inet ztest post meta mark and 0x40000000 == 0 tcp dport "{80,443}" ct original packets 1-12 queue num 200 bypass nft add rule inet ztest post meta mark and 0x40000000 == 0 tcp dport "{80,443}" ct original packets 1-6 queue num 200 bypass
nft add rule inet ztest post meta mark and 0x40000000 == 0 udp dport 443 ct original packets 1-12 queue num 200 bypass nft add rule inet ztest post meta mark and 0x40000000 == 0 udp dport 443 ct original packets 1-6 queue num 200 bypass
# auto hostlist with avoiding wrong ACK numbers in RST,ACK packets sent by russian DPI # auto hostlist with avoiding wrong ACK numbers in RST,ACK packets sent by russian DPI
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1

File diff suppressed because it is too large Load Diff

View File

@ -614,7 +614,7 @@ options ip6table_raw raw_before_defrag=1
### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ ### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
`nfqws` способен по-разному реагировать на различные запросы и применять разные стратегии дурения. **nfqws** способен по-разному реагировать на различные запросы и применять разные стратегии дурения.
Это реализовано посредством поддержки множества профилей дурения. Это реализовано посредством поддержки множества профилей дурения.
Профили разделяются в командной строке параметром `--new`. Первый профиль создается автоматически. Профили разделяются в командной строке параметром `--new`. Первый профиль создается автоматически.
Для него не нужно `--new`. Каждый профиль имеет фильтр. По умолчанию он пуст, то есть профиль удовлетворяет Для него не нужно `--new`. Каждый профиль имеет фильтр. По умолчанию он пуст, то есть профиль удовлетворяет
@ -680,10 +680,9 @@ mark нужен, чтобы сгенерированный поддельный
* 4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например) * 4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например)
Для режима autottl необходимо перенаправление входящего `SYN,ACK` пакета или первого пакета соединения (что обычно есть тоже самое). Для режима autottl необходимо перенаправление входящего `SYN,ACK` пакета или первого пакета соединения (что обычно есть тоже самое).
Можно построить фильтр на tcp flags и модуле u32 для поиска характерных паттернов http redirect, но проще использовать connbytes. Для режима autohostlist необходимы входящие RST и http redirect.
Можно построить фильтр на tcp flags для выделения `SYN,ACK` и модуле u32 для поиска характерных паттернов http redirect,
Для режима autohostlist необходимо перенаправление нескольких входящих пакетов, чтобы засечь RST или http redirect. но проще использовать connbytes для выделения нескольких начальных входящих пакетов.
Так же стоит увеличить лимит исходящих пакетов в connbytes, чтобы в него вошли все возможные ретрансмиссии, после которых идет реакция по autoostlist.
` `
iptables -t mangle -I PREROUTING -i <внешний интерфейс> -p tcp -m multiport --sports 80,443 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:3 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass iptables -t mangle -I PREROUTING -i <внешний интерфейс> -p tcp -m multiport --sports 80,443 -m connbytes --connbytes-dir=reply --connbytes-mode=packets --connbytes 1:3 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
@ -951,8 +950,8 @@ tpws работает на уровне сокетов, поэтому длин
### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ ### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
Работают аналогично `nfqws`, кроме некоторых моментов. Работают аналогично **nfqws**, кроме некоторых моментов.
Нет параметра `--filter-udp`, поскольку `tpws` udp не поддерживает. Нет параметра `--filter-udp`, поскольку **tpws** udp не поддерживает.
Методы нулевой фазы (`--mss`) могут работать по хостлисту в одном единственном случае: Методы нулевой фазы (`--mss`) могут работать по хостлисту в одном единственном случае:
если используется режим socks и удаленный ресолвинг хостов через прокси. если используется режим socks и удаленный ресолвинг хостов через прокси.
То есть работоспособность вашей настройки в одном и том же режиме может зависеть от того, То есть работоспособность вашей настройки в одном и том же режиме может зависеть от того,
@ -1060,7 +1059,7 @@ iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j DROP
``` ```
Фильтр по owner необходим для исключения рекурсивного перенаправления соединений от самого tpws. tpws запускается под Фильтр по owner необходим для исключения рекурсивного перенаправления соединений от самого tpws. tpws запускается под
пользователем `tpws`, для него задается исключающее правило. пользователем **tpws**, для него задается исключающее правило.
ip6tables работают почти точно так же, как и ipv4, но есть ряд важных нюансов. В DNAT следует брать адрес --to в ip6tables работают почти точно так же, как и ipv4, но есть ряд важных нюансов. В DNAT следует брать адрес --to в
квадратные скобки. Например : квадратные скобки. Например :
@ -1291,7 +1290,7 @@ mdig --family=6 --dns-make-query=rutracker.org | curl --data-binary @- -H "Conte
и 1 exclude список и 1 exclude список
`ipset/zapret-hosts-users-exclude.txt.gz` или `ipset/zapret-hosts-users-exclude.txt` `ipset/zapret-hosts-users-exclude.txt.gz` или `ipset/zapret-hosts-users-exclude.txt`
При режимах фильтрации `MODE_FILTER=hostlist` или `MODE_FILTER=autohostlist` система запуска передает `nfqws` или `tpws` все листы, файлы которых присутствуют. При режимах фильтрации `MODE_FILTER=hostlist` или `MODE_FILTER=autohostlist` система запуска передает **nfqws** или **tpws** все листы, файлы которых присутствуют.
Передача происходит через замену маркеров `<HOSTLIST>` и `<HOSTLIST_NOAUTO>` на реальные параметры `--hostlist`, `--hostlist-exclude`, `--hostlist-auto`. Передача происходит через замену маркеров `<HOSTLIST>` и `<HOSTLIST_NOAUTO>` на реальные параметры `--hostlist`, `--hostlist-exclude`, `--hostlist-auto`.
Если вдруг листы include присутствуют, но все они пустые, то работа аналогична отсутствию include листа. Если вдруг листы include присутствуют, но все они пустые, то работа аналогична отсутствию include листа.
Файл есть, но не смотря на это дурится все, кроме exclude. Файл есть, но не смотря на это дурится все, кроме exclude.
@ -1320,21 +1319,21 @@ tpws и nfqws решают нужно ли применять дурение в
Этот режим позволяет проанализировать как запросы со стороны клиента, так и ответы от сервера. Этот режим позволяет проанализировать как запросы со стороны клиента, так и ответы от сервера.
Если хост еще не находится ни в каких листах и обнаруживается ситуация, похожая на блокировку, Если хост еще не находится ни в каких листах и обнаруживается ситуация, похожая на блокировку,
происходит автоматическое добавление хоста в список `autohostlist` как в памяти, так и в файле. происходит автоматическое добавление хоста в список `autohostlist` как в памяти, так и в файле.
`nfqws` или `tpws` сами ведут этот файл. **nfqws** или **tpws** сами ведут этот файл.
Чтобы какой-то хост не смог попась в `autohostlist` используйте `hostlist-exclude`. Чтобы какой-то хост не смог попась в `autohostlist` используйте `hostlist-exclude`.
Если он все-же туда попал - удалите запись из файла вручную. Процессы автоматически перечитают файл. Если он все-же туда попал - удалите запись из файла вручную. Процессы автоматически перечитают файл.
`tpws`/`nfqws` сами назначают владельцем файла юзера, под которым они работают после сброса привилегий, **tpws**/**nfqws** сами назначают владельцем файла юзера, под которым они работают после сброса привилегий,
чтобы иметь возможность обновлять лист. чтобы иметь возможность обновлять лист.
В случае `nfqws` данный режим требует перенаправления в том числе и входящего трафика. В случае **nfqws** данный режим требует перенаправления в том числе и входящего трафика.
Крайне рекомендовано использовать ограничитель `connbytes`, чтобы `nfqws` не обрабатывал гигабайты. Крайне рекомендовано использовать ограничитель `connbytes`, чтобы **nfqws** не обрабатывал гигабайты.
По этой же причине не рекомендуется использование режима на BSD системах. Там нет фильтра `connbytes`. По этой же причине не рекомендуется использование режима на BSD системах. Там нет фильтра `connbytes`.
На linux системах при использовании nfqws и фильтра connbytes может понадобится : На linux системах при использовании nfqws и фильтра connbytes может понадобится :
`sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1` `sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1`
Было замечено, что некоторые DPI в России возвращают RST с неверным ACK. Это принимается tcp/ip стеком Было замечено, что некоторые DPI в России возвращают RST с неверным ACK. Это принимается tcp/ip стеком
linux, но через раз приобретает статус INVALID в conntrack. Поэтому правила с `connbytes` срабатывают linux, но через раз приобретает статус INVALID в conntrack. Поэтому правила с `connbytes` срабатывают
через раз, не пересылая RST пакет `nfqws`. через раз, не пересылая RST пакет **nfqws**.
Как вообще могут вести себя DPI, получив "плохой запрос" и приняв решение о блокировке: Как вообще могут вести себя DPI, получив "плохой запрос" и приняв решение о блокировке:
@ -1344,7 +1343,7 @@ linux, но через раз приобретает статус INVALID в con
4) Подмена сертификата: (только для https) полный перехват TLS сеанса с попыткой всунуть что-то 4) Подмена сертификата: (только для https) полный перехват TLS сеанса с попыткой всунуть что-то
свое клиенту. Применяется нечасто, поскольку броузеры на такое ругаются. свое клиенту. Применяется нечасто, поскольку броузеры на такое ругаются.
`nfqws` и `tpws` могут сечь варианты 1-3, 4 они не распознают. **nfqws** и **tpws** могут сечь варианты 1-3, 4 они не распознают.
Всилу специфики работы с отдельными пакетами или с TCP каналом tpws и nfqws распознают эти ситуации Всилу специфики работы с отдельными пакетами или с TCP каналом tpws и nfqws распознают эти ситуации
по-разному. по-разному.
Что считается ситуацией, похожей на блокировку : Что считается ситуацией, похожей на блокировку :
@ -1375,7 +1374,7 @@ linux, но через раз приобретает статус INVALID в con
незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную. незаблокированный сайт. Эту ситуацию, увы, придется вам контролировать вручную.
Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения. Заносите такие домены в `ipset/zapret-hosts-user-exclude.txt`, чтобы избежать повторения.
Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`. Чтобы впоследствии разобраться почему домен был занесен в лист, можно включить `autohostlist debug log`.
Он полезен тем, что работает без постоянного просмотра вывода `nfqws` в режиме debug. Он полезен тем, что работает без постоянного просмотра вывода **nfqws** в режиме debug.
В лог заносятся только основные события, ведущие к занесению хоста в лист. В лог заносятся только основные события, ведущие к занесению хоста в лист.
По логу можно понять как избежать ложных срабатываний и подходит ли вообще вам этот режим. По логу можно понять как избежать ложных срабатываний и подходит ли вообще вам этот режим.
@ -1567,11 +1566,11 @@ nfqws начнет получать адреса пакетов из локал
`POSTNAT=0` `POSTNAT=0`
Существует 3 стандартных опции запуска, настраиваемых раздельно и независимо: `tpws-socks`, `tpws`, `nfqws`. Существует 3 стандартных опции запуска, настраиваемых раздельно и независимо: `tpws-socks`, **tpws**, **nfqws**.
Их можно использовать как по отдельности, так и вместе. Например, вам надо сделать комбинацию Их можно использовать как по отдельности, так и вместе. Например, вам надо сделать комбинацию
из методов, доступных только в `tpws` и только в `nfqws`. Их можно задействовать вместе. из методов, доступных только в **tpws** и только в **nfqws**. Их можно задействовать вместе.
`tpws` будет прозрачно локализовывать трафик на системе и применять свое дурение, `nfqws` будет дурить трафик, **tpws** будет прозрачно локализовывать трафик на системе и применять свое дурение, **nfqws** будет дурить трафик,
исходящий с самой системы после обработки на `tpws`. исходящий с самой системы после обработки на **tpws**.
А можно на эту же систему повесить без параметров socks proxy, чтобы получать доступ к обходу блокировок через прокси. А можно на эту же систему повесить без параметров socks proxy, чтобы получать доступ к обходу блокировок через прокси.
Таким образом, все 3 режима вполне могут задействоваться вместе. Таким образом, все 3 режима вполне могут задействоваться вместе.
Так же безусловно и независимо, в добавок к стандартным опциям, применяются все custom скрипты в `init.d/{sysv,openwrt,macos}/custom.d`. Так же безусловно и независимо, в добавок к стандартным опциям, применяются все custom скрипты в `init.d/{sysv,openwrt,macos}/custom.d`.
@ -1587,7 +1586,7 @@ nfqws начнет получать адреса пакетов из локал
Одновременное использование tpws и nfqws без пересечения по L3/L4 (то есть nfqws - udp, tpws - tcp или nfqws - port 443, tpws - port 80 или nfqws - ipv4, tpws - ipv6) проблем не представляет. Одновременное использование tpws и nfqws без пересечения по L3/L4 (то есть nfqws - udp, tpws - tcp или nfqws - port 443, tpws - port 80 или nfqws - ipv4, tpws - ipv6) проблем не представляет.
`tpws-socks` требует настройки параметров `tpws`, но не требует перехвата трафика. `tpws-socks` требует настройки параметров **tpws**, но не требует перехвата трафика.
Остальные опции требуют раздельно настройки перехвата трафика и опции самих демонов. Остальные опции требуют раздельно настройки перехвата трафика и опции самих демонов.
Каждая опция предполагает запуск одного инстанса соответствующего демона. Все различия методов дурения Каждая опция предполагает запуск одного инстанса соответствующего демона. Все различия методов дурения
для `http`, `https`, `quic` и т.д. должны быть отражены через схему мультистратегий. для `http`, `https`, `quic` и т.д. должны быть отражены через схему мультистратегий.
@ -1885,7 +1884,7 @@ zapret_custom_firewall_v4
zapret_custom_firewall_v6 zapret_custom_firewall_v6
``` ```
zapret_custom_daemons поднимает демоны `nfqws`/`tpws` в нужном вам количестве и с нужными вам параметрами. zapret_custom_daemons поднимает демоны **nfqws**/**tpws** в нужном вам количестве и с нужными вам параметрами.
Для систем традиционного linux (sysv) и MacOS в первом параметре передается код операции: 1 = запуск, 0 = останов. Для систем традиционного linux (sysv) и MacOS в первом параметре передается код операции: 1 = запуск, 0 = останов.
Для openwrt логика останова отсутствует за ненадобностью. Для openwrt логика останова отсутствует за ненадобностью.
Схема запуска демонов в openwrt отличается - используется procd. Схема запуска демонов в openwrt отличается - используется procd.
@ -1914,7 +1913,7 @@ zapret_custom_firewall_nft поднимает правила nftables.
В macos firewall-функции ничего сами никуда не заносят. Их задача - лишь выдать текст в stdout, В macos firewall-функции ничего сами никуда не заносят. Их задача - лишь выдать текст в stdout,
содержащий правила для pf-якоря. Остальное сделает обертка. содержащий правила для pf-якоря. Остальное сделает обертка.
Особо обратите внимание на номер демона в функциях `run_daemon` и `do_daemon`, номера портов `tpws` Особо обратите внимание на номер демона в функциях `run_daemon` и `do_daemon`, номера портов **tpws**
и очередей `nfqueue`. и очередей `nfqueue`.
Они должны быть уникальными во всех скриптах. При накладке будет ошибка. Они должны быть уникальными во всех скриптах. При накладке будет ошибка.
Поэтому используйте функции динамического получения этих значений из пула. Поэтому используйте функции динамического получения этих значений из пула.
@ -1950,11 +1949,11 @@ zapret_custom_firewall_nft поднимает правила nftables.
Имена интерфейсов WAN и LAN известны из настроек системы. Имена интерфейсов WAN и LAN известны из настроек системы.
Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается. Под другими системами роутер вы настраиваете самостоятельно. Инсталлятор в это не вмешивается.
инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы. инсталлятор в зависимости от выбранного режима может спросить LAN и WAN интерфейсы.
Нужно понимать, что заворот проходящего трафика на `tpws` в прозрачном режиме происходит до выполнения маршрутизации, Нужно понимать, что заворот проходящего трафика на **tpws** в прозрачном режиме происходит до выполнения маршрутизации,
следовательно возможна фильтрация по LAN и невозможна по WAN. следовательно возможна фильтрация по LAN и невозможна по WAN.
Решение о завороте на `tpws` локального исходящего трафика принимается после выполнения маршрутизации, Решение о завороте на **tpws** локального исходящего трафика принимается после выполнения маршрутизации,
следовательно ситуация обратная: LAN не имеет смысла, фильтрация по WAN возможна. следовательно ситуация обратная: LAN не имеет смысла, фильтрация по WAN возможна.
Заворот на `nfqws` происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN. Заворот на **nfqws** происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN.
Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера. Возможность прохождения трафика в том или ином направлении настраивается вами в процессе конфигурации роутера.
Деинсталляция выполняется через `uninstall_easy.sh`. После выполнения деинсталляции можно удалить каталог `/opt/zapret`. Деинсталляция выполняется через `uninstall_easy.sh`. После выполнения деинсталляции можно удалить каталог `/opt/zapret`.
@ -1982,7 +1981,7 @@ zapret_custom_firewall_nft поднимает правила nftables.
## Установка на openwrt в режиме острой нехватки места на диске ## Установка на openwrt в режиме острой нехватки места на диске
Требуется около 120-200 кб на диске. Придется отказаться от всего, кроме `tpws`. Требуется около 120-200 кб на диске. Придется отказаться от всего, кроме **tpws**.
**Инструкция для openwrt 22 и выше с nftables** **Инструкция для openwrt 22 и выше с nftables**
@ -1991,7 +1990,7 @@ zapret_custom_firewall_nft поднимает правила nftables.
***Установка:*** ***Установка:***
1) Скопируйте все из `init.d/openwrt-minimal/tpws/*` в корень openwrt. 1) Скопируйте все из `init.d/openwrt-minimal/tpws/*` в корень openwrt.
2) Скопируйте бинарник `tpws` подходящей архитектуры в `/usr/bin/tpws`. 2) Скопируйте бинарник **tpws** подходящей архитектуры в `/usr/bin/tpws`.
3) Установите права на файлы: `chmod 755 /etc/init.d/tpws /usr/bin/tpws` 3) Установите права на файлы: `chmod 755 /etc/init.d/tpws /usr/bin/tpws`
4) Отредактируйте `/etc/config/tpws` 4) Отредактируйте `/etc/config/tpws`
* Если не нужен ipv6, отредактируйте `/etc/nftables.d/90-tpws.nft` и закомментируйте строки с редиректом ipv6. * Если не нужен ipv6, отредактируйте `/etc/nftables.d/90-tpws.nft` и закомментируйте строки с редиректом ipv6.
@ -2019,7 +2018,7 @@ zapret_custom_firewall_nft поднимает правила nftables.
***Установка:*** ***Установка:***
1) Скопируйте все из `init.d/openwrt-minimal/tpws/*` в корень openwrt. 1) Скопируйте все из `init.d/openwrt-minimal/tpws/*` в корень openwrt.
2) Скопируйте бинарник `tpws` подходящей архитектуры в `/usr/bin/tpws`. 2) Скопируйте бинарник **tpws** подходящей архитектуры в `/usr/bin/tpws`.
3) Установите права на файлы: `chmod 755 /etc/init.d/tpws /usr/bin/tpws` 3) Установите права на файлы: `chmod 755 /etc/init.d/tpws /usr/bin/tpws`
4) Отредактируйте `/etc/config/tpws` 4) Отредактируйте `/etc/config/tpws`
* Если не нужен ipv6, отредактируйте /etc/firewall.user и установите там DISABLE_IPV6=1. * Если не нужен ipv6, отредактируйте /etc/firewall.user и установите там DISABLE_IPV6=1.
@ -2049,7 +2048,7 @@ tpws будет работать в любом случае, он не треб
Хотя linux варианты под Android работают, рекомендуется использовать специально собранные под bionic бинарники. Хотя linux варианты под Android работают, рекомендуется использовать специально собранные под bionic бинарники.
У них не будет проблем с DNS, с локальным временем и именами юзеров и групп.\ У них не будет проблем с DNS, с локальным временем и именами юзеров и групп.\
Рекомендую использовать gid 3003 (AID_INET). Иначе можете получить permission denied на создание сокета. Рекомендуется использовать gid 3003 (AID_INET). Иначе можете получить permission denied на создание сокета.
Например: `--uid 1:3003`\ Например: `--uid 1:3003`\
В iptables укажите: `! --uid-owner 1` вместо `! --uid-owner tpws`.\ В iptables укажите: `! --uid-owner 1` вместо `! --uid-owner tpws`.\
Напишите шелл скрипт с iptables и tpws, запускайте его средствами вашего рут менеджера. Напишите шелл скрипт с iptables и tpws, запускайте его средствами вашего рут менеджера.
@ -2057,7 +2056,7 @@ tpws будет работать в любом случае, он не треб
magisk : /data/adb/service.d\ magisk : /data/adb/service.d\
supersu: /system/su.d supersu: /system/su.d
`nfqws` может иметь такой глюк. При запуске с uid по умолчанию (0x7FFFFFFF) при условии работы на сотовом интерфейсе **nfqws** может иметь такой глюк. При запуске с uid по умолчанию (0x7FFFFFFF) при условии работы на сотовом интерфейсе
и отключенном кабеле внешнего питания система может частично виснуть. Перестает работать тач и кнопки, и отключенном кабеле внешнего питания система может частично виснуть. Перестает работать тач и кнопки,
но анимация на экране может продолжаться. Если экран был погашен, то включить его кнопкой power невозможно. но анимация на экране может продолжаться. Если экран был погашен, то включить его кнопкой power невозможно.
Изменение UID на низкий (--uid 1 подойдет) позволяет решить эту проблему. Изменение UID на низкий (--uid 1 подойдет) позволяет решить эту проблему.