mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
commit
4fcd3bba96
@ -53,7 +53,7 @@ You need to run them with the necessary parameters and redirect certain traffic
|
|||||||
|
|
||||||
To redirect a TCP connection to a transparent proxy, the following commands are used:
|
To redirect a TCP connection to a transparent proxy, the following commands are used:
|
||||||
|
|
||||||
forwarded fraffic :
|
forwarded traffic :
|
||||||
iptables -t nat -I PREROUTING -i <internal_interface> -p tcp --dport 80 -j DNAT --to 127.0.0.127:988
|
iptables -t nat -I PREROUTING -i <internal_interface> -p tcp --dport 80 -j DNAT --to 127.0.0.127:988
|
||||||
outgoing traffic :
|
outgoing traffic :
|
||||||
iptables -t nat -I OUTPUT -o <external_interface> -p tcp --dport 80 -m owner ! --uid-owner tpws -j DNAT --to 127.0.0.127:988
|
iptables -t nat -I OUTPUT -o <external_interface> -p tcp --dport 80 -m owner ! --uid-owner tpws -j DNAT --to 127.0.0.127:988
|
||||||
@ -172,12 +172,12 @@ add tcp option "MD5 signature". All of them have their own disadvantages :
|
|||||||
* md5sig does not work on all servers
|
* md5sig does not work on all servers
|
||||||
* badsum doesn't work if your device is behind NAT which does not pass invalid packets.
|
* badsum doesn't work if your device is behind NAT which does not pass invalid packets.
|
||||||
Linux NAT by default does not pass them without special setting "sysctl -w net.netfilter.nf_conntrack_checksum=0"
|
Linux NAT by default does not pass them without special setting "sysctl -w net.netfilter.nf_conntrack_checksum=0"
|
||||||
Openwrt sets it from the box, other routers in most cases dont, and its not always possible to change it.
|
Openwrt sets it from the box, other routers in most cases don't, and its not always possible to change it.
|
||||||
If nfqws is on the router, its not neccessary to switch of "net.netfilter.nf_conntrack_checksum".
|
If nfqws is on the router, its not necessary to switch of "net.netfilter.nf_conntrack_checksum".
|
||||||
Fake packet doesn't go through FORWARD chain, it goes through OUTPUT. But if your router is behind another NAT, for example ISP NAT,
|
Fake packet doesn't go through FORWARD chain, it goes through OUTPUT. But if your router is behind another NAT, for example ISP NAT,
|
||||||
and that NAT does not pass invalid packets, you cant do anything.
|
and that NAT does not pass invalid packets, you cant do anything.
|
||||||
* badseq packets will be dropped by server, but DPI also can ignore them
|
* badseq packets will be dropped by server, but DPI also can ignore them
|
||||||
* TTL looks like the best option, but it requires special tuning for earch ISP. If DPI is further than local ISP websites
|
* TTL looks like the best option, but it requires special tuning for each ISP. If DPI is further than local ISP websites
|
||||||
you can cut access to them. Manual IP exclude list is required. Its possible to use md5sig with ttl.
|
you can cut access to them. Manual IP exclude list is required. Its possible to use md5sig with ttl.
|
||||||
This way you cant hurt anything, but good chances it will help to open local ISP websites.
|
This way you cant hurt anything, but good chances it will help to open local ISP websites.
|
||||||
If automatic solution cannot be found then use zapret-hosts-user-exclude.txt.
|
If automatic solution cannot be found then use zapret-hosts-user-exclude.txt.
|
||||||
@ -223,7 +223,7 @@ doing something about it is hardly possible without the help of the server.
|
|||||||
The best solution is to enable TLS 1.3 support on the server. TLS 1.3 sends the server certificate in encrypted form.
|
The best solution is to enable TLS 1.3 support on the server. TLS 1.3 sends the server certificate in encrypted form.
|
||||||
This is recommendation to all admins of blocked sites. Enable TLS 1.3. You will give more opportunities to overcome DPI.
|
This is recommendation to all admins of blocked sites. Enable TLS 1.3. You will give more opportunities to overcome DPI.
|
||||||
|
|
||||||
Hosts are extracted from plain http request Host: header and SNI of ClientHelllo TLS message.
|
Hosts are extracted from plain http request Host: header and SNI of ClientHello TLS message.
|
||||||
Subdomains are applied automatically. gzip lists are supported.
|
Subdomains are applied automatically. gzip lists are supported.
|
||||||
|
|
||||||
iptables for performing the attack on the first packet :
|
iptables for performing the attack on the first packet :
|
||||||
@ -300,7 +300,7 @@ tpws is transparent proxy.
|
|||||||
--pidfile=<filename> ; write pid to file
|
--pidfile=<filename> ; write pid to file
|
||||||
--user=<username> ; drop root privs
|
--user=<username> ; drop root privs
|
||||||
--uid=uid[:gid] ; drop root privs
|
--uid=uid[:gid] ; drop root privs
|
||||||
|
|
||||||
The manipulation parameters can be combined in any way.
|
The manipulation parameters can be combined in any way.
|
||||||
|
|
||||||
split-http-req takes precedence over split-pos for http reqs.
|
split-http-req takes precedence over split-pos for http reqs.
|
||||||
@ -523,13 +523,13 @@ The following calls allow you to apply or remove iptables rules separately:
|
|||||||
|
|
||||||
/opt/zapret/init.d/sysv/zapret start-fw
|
/opt/zapret/init.d/sysv/zapret start-fw
|
||||||
/opt/zapret/init.d/sysv/zapret stop-fw
|
/opt/zapret/init.d/sysv/zapret stop-fw
|
||||||
|
|
||||||
And you can start or stop the demons separately from the firewall:
|
And you can start or stop the demons separately from the firewall:
|
||||||
|
|
||||||
/opt/zapret/init.d/sysv/zapret start-daemons
|
/opt/zapret/init.d/sysv/zapret start-daemons
|
||||||
/opt/zapret/init.d/sysv/zapret stop-daemons
|
/opt/zapret/init.d/sysv/zapret stop-daemons
|
||||||
|
|
||||||
|
|
||||||
Simple install to desktop linux system
|
Simple install to desktop linux system
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ iptables -t mangle -I POSTROUTING -o <внешний_интерфейс> -p tcp
|
|||||||
|
|
||||||
|
|
||||||
Если ваше устройство поддерживает аппаратное ускорение (flow offloading, hardware nat, hardware acceleration), то iptables могут не работать.
|
Если ваше устройство поддерживает аппаратное ускорение (flow offloading, hardware nat, hardware acceleration), то iptables могут не работать.
|
||||||
При включенном offloading пакет не проходит по обычному пути netfilter.
|
При включенном offloading пакет не проходит по обычному пути netfilter.
|
||||||
Необходимо или его отключить, или выборочно им управлять.
|
Необходимо или его отключить, или выборочно им управлять.
|
||||||
|
|
||||||
В новых ядрах (и в более старых, openwrt портировал изменение на 4.14) присутствует software flow offloading (SFO).
|
В новых ядрах (и в более старых, openwrt портировал изменение на 4.14) присутствует software flow offloading (SFO).
|
||||||
@ -140,7 +140,7 @@ ip6tables работают почти точно так же, как и ipv4, н
|
|||||||
В DNAT следует брать адрес --to в квадратные скобки. Например :
|
В DNAT следует брать адрес --to в квадратные скобки. Например :
|
||||||
|
|
||||||
ip6tables -t nat -I OUTPUT -o <внешний_интерфейс> -p tcp --dport 80 -m owner ! --uid-owner tpws -j DNAT --to [::1]:988
|
ip6tables -t nat -I OUTPUT -o <внешний_интерфейс> -p tcp --dport 80 -m owner ! --uid-owner tpws -j DNAT --to [::1]:988
|
||||||
|
|
||||||
Параметра route_localnet не существует для ipv6.
|
Параметра route_localnet не существует для ipv6.
|
||||||
DNAT на localhost (::1) возможен только в цепочке OUTPUT.
|
DNAT на localhost (::1) возможен только в цепочке OUTPUT.
|
||||||
В цепочке PREROUTING DNAT возможен на любой global address или на link local address того же интерфейса,
|
В цепочке PREROUTING DNAT возможен на любой global address или на link local address того же интерфейса,
|
||||||
@ -444,7 +444,7 @@ tpws полностью работает на асинхронных сокет
|
|||||||
Полезно против DPI, выполняющих реассемблинг TCP с ограниченным буфером.
|
Полезно против DPI, выполняющих реассемблинг TCP с ограниченным буфером.
|
||||||
Если техника работает, то после некоторого количества bytes http запрос начнет проходить до сайта.
|
Если техника работает, то после некоторого количества bytes http запрос начнет проходить до сайта.
|
||||||
Если при этом критический размер padding около MTU, значит скорее всего DPI не выполняет реассемблинг пакетов, и лучше будет использовать обычные опции --split-…
|
Если при этом критический размер padding около MTU, значит скорее всего DPI не выполняет реассемблинг пакетов, и лучше будет использовать обычные опции --split-…
|
||||||
Если все же реассемблинг выполняется, то критический размер будет около размера буфера DPI. Он может быть 4K или 8K, возможны и другие значения.
|
Если все же реассемблинг выполняется, то критический размер будет около размера буфера DPI. Он может быть 4K или 8K, возможны и другие значения.
|
||||||
|
|
||||||
--skip-nodelay может быть полезен, чтобы привести MTU к MTU системы, на которой работает tpws.
|
--skip-nodelay может быть полезен, чтобы привести MTU к MTU системы, на которой работает tpws.
|
||||||
Это может быть полезно для скрытия факта использования VPN. Пониженный MTU - 1 из способов обнаружения
|
Это может быть полезно для скрытия факта использования VPN. Пониженный MTU - 1 из способов обнаружения
|
||||||
@ -749,12 +749,12 @@ IFACE_WAN=eth1
|
|||||||
|
|
||||||
/opt/zapret/init.d/sysv/zapret start-fw
|
/opt/zapret/init.d/sysv/zapret start-fw
|
||||||
/opt/zapret/init.d/sysv/zapret stop-fw
|
/opt/zapret/init.d/sysv/zapret stop-fw
|
||||||
|
|
||||||
А так можно запустить или остановить демоны отдельно от фаервола :
|
А так можно запустить или остановить демоны отдельно от фаервола :
|
||||||
|
|
||||||
/opt/zapret/init.d/sysv/zapret start-daemons
|
/opt/zapret/init.d/sysv/zapret start-daemons
|
||||||
/opt/zapret/init.d/sysv/zapret stop-daemons
|
/opt/zapret/init.d/sysv/zapret stop-daemons
|
||||||
|
|
||||||
Вариант custom
|
Вариант custom
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
@ -836,7 +836,7 @@ tpws к http и nfqws к https. При этом поддерживаются у
|
|||||||
|
|
||||||
enable auto start : systemctl enable zapret
|
enable auto start : systemctl enable zapret
|
||||||
disable auto start : systemctl disable zapret
|
disable auto start : systemctl disable zapret
|
||||||
start : sytemctl start zapret
|
start : systemctl start zapret
|
||||||
stop : systemctl stop zapret
|
stop : systemctl stop zapret
|
||||||
status, output messages : systemctl status zapret
|
status, output messages : systemctl status zapret
|
||||||
timer info : systemctl list-timer
|
timer info : systemctl list-timer
|
||||||
@ -972,7 +972,7 @@ opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptable
|
|||||||
ЭКОНОМИЯ МЕСТА :
|
ЭКОНОМИЯ МЕСТА :
|
||||||
|
|
||||||
gzip от busybox в разы медленней полноценного варианта. gzip используется скриптами получения листов.
|
gzip от busybox в разы медленней полноценного варианта. gzip используется скриптами получения листов.
|
||||||
sort от busybox медленней полноценного варианта и жрет намного болше памяти. sort используется скриптами получения листов.
|
sort от busybox медленней полноценного варианта и жрет намного больше памяти. sort используется скриптами получения листов.
|
||||||
grep от busybox катастрофически медленный с опцией -f. она применяется в get_reestr_combined.sh. если вы не собираетесь
|
grep от busybox катастрофически медленный с опцией -f. она применяется в get_reestr_combined.sh. если вы не собираетесь
|
||||||
пользоваться этим скриптом, gnu grep можно не устанавливать
|
пользоваться этим скриптом, gnu grep можно не устанавливать
|
||||||
iptables-mod-nfqueue можно выкинуть, если не будем пользоваться nfqws
|
iptables-mod-nfqueue можно выкинуть, если не будем пользоваться nfqws
|
||||||
@ -1159,7 +1159,7 @@ nfqueue поломан. можно собрать фиксящий модуль
|
|||||||
используя исходники с huawei open source. Исходники содержат тулчейн и полусобирающееся,
|
используя исходники с huawei open source. Исходники содержат тулчейн и полусобирающееся,
|
||||||
неактуальное ядро. Конфиг можно взять с рабочего модема из /proc/config.gz.
|
неактуальное ядро. Конфиг можно взять с рабочего модема из /proc/config.gz.
|
||||||
С помощью этих исходников умельцы могут собрать модуль unfuck_nfqueue.ko.
|
С помощью этих исходников умельцы могут собрать модуль unfuck_nfqueue.ko.
|
||||||
После его применения NFQUEUE и nfqws для arm работают нормально.
|
После его применения NFQUEUE и nfqws для arm работают нормально.
|
||||||
|
|
||||||
Чтобы избежать проблемы с offload-ом при использвании nfqws, следует комбинировать tpws в режиме tcp proxy и nfqws.
|
Чтобы избежать проблемы с offload-ом при использвании nfqws, следует комбинировать tpws в режиме tcp proxy и nfqws.
|
||||||
Правила NFQUEUE пишутся для цепочки OUTPUT.
|
Правила NFQUEUE пишутся для цепочки OUTPUT.
|
||||||
@ -1172,7 +1172,7 @@ connbytes придется опускать, поскольку модуля в
|
|||||||
ПРЕДУПРЕЖДЕНИЕ.
|
ПРЕДУПРЕЖДЕНИЕ.
|
||||||
На этом модеме происходят хаотические сбросы соединений tcp по непонятным причинам.
|
На этом модеме происходят хаотические сбросы соединений tcp по непонятным причинам.
|
||||||
Выглядит это так, если запускать curl с самого модема :
|
Выглядит это так, если запускать curl с самого модема :
|
||||||
curl www.ru
|
curl www.ru
|
||||||
curl: (7) Failed to connect to www.ru port 80: Host is unreachable
|
curl: (7) Failed to connect to www.ru port 80: Host is unreachable
|
||||||
Возникает ошибка сокета EHOSTUNREACH (errno -113). То же самое видно в tpws.
|
Возникает ошибка сокета EHOSTUNREACH (errno -113). То же самое видно в tpws.
|
||||||
В броузере не подгружаются части веб страниц, картинки, стили.
|
В броузере не подгружаются части веб страниц, картинки, стили.
|
||||||
@ -1324,7 +1324,7 @@ VPS можно прибрести в множестве мест. Существ
|
|||||||
с большим лимитом по трафику (терабайты). Важен и тип VPS. Openvz подойдет для openvpn, но
|
с большим лимитом по трафику (терабайты). Важен и тип VPS. Openvz подойдет для openvpn, но
|
||||||
вы не поднимете на нем wireguard, ipsec, то есть все, что требует kernel mode.
|
вы не поднимете на нем wireguard, ipsec, то есть все, что требует kernel mode.
|
||||||
Для kernel mode требуется тип виртуализации, предполагающий запуск полноценного экземпляра ОС linux
|
Для kernel mode требуется тип виртуализации, предполагающий запуск полноценного экземпляра ОС linux
|
||||||
вместе с ядром. Подойдут kvm, xen, hyper-v, vmware.
|
вместе с ядром. Подойдут kvm, xen, hyper-v, vmware.
|
||||||
|
|
||||||
По цене можно найти предложения, которые будут дешевле готовой VPN услуги, но при этом вы сам хозяин в своей лавке
|
По цене можно найти предложения, которые будут дешевле готовой VPN услуги, но при этом вы сам хозяин в своей лавке
|
||||||
и не рискуете попасть под бан регулятора, разве что "заодно" под ковровую бомбардировку с баном миллионов IP.
|
и не рискуете попасть под бан регулятора, разве что "заодно" под ковровую бомбардировку с баном миллионов IP.
|
||||||
|
Loading…
Reference in New Issue
Block a user