mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-22 06:15:25 +00:00
doc works
This commit is contained in:
parent
f0cc49c7e3
commit
818520452e
@ -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
|
||||||
|
@ -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 :
|
||||||
|
@ -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
@ -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 подойдет) позволяет решить эту проблему.
|
||||||
|
Loading…
Reference in New Issue
Block a user