mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-02 06:30:53 +03:00
at-home moved to tpws
This commit is contained in:
parent
1294555e11
commit
098c642598
@ -82,3 +82,7 @@ v16
|
||||
|
||||
tpws: split-http-req=method : split inside method name, not after
|
||||
ISP support : mns.ru changed split pos to 3 (got redirect page with HEAD req : curl -I ej.ru)
|
||||
|
||||
v17
|
||||
|
||||
ISP support : athome moved from nfqws to tpws because of instability and http request hangs
|
||||
|
@ -16,6 +16,7 @@ ISP=mns
|
||||
#ISP=beeline
|
||||
#ISP=domru
|
||||
#ISP=tiera
|
||||
#ISP=athome
|
||||
|
||||
# If ISP is unlisted then uncomment "custom"
|
||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
||||
@ -94,6 +95,16 @@ case "$1" in
|
||||
DAEMON=$TPWS
|
||||
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
|
||||
;;
|
||||
athome)
|
||||
adduser --disabled-login --no-create-home --system --quiet $TPWS_USER
|
||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=1
|
||||
iptables -t nat -C PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT 2>/dev/null ||
|
||||
iptables -t nat -I PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
iptables -t nat -C OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT 2>/dev/null ||
|
||||
iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
DAEMON=$TPWS
|
||||
DAEMON_OPTS="--port=$TPPORT --split-http-req=method --user=$TPWS_USER --bind-addr=127.0.0.1"
|
||||
;;
|
||||
custom)
|
||||
# PLACEHOLDER
|
||||
echo !!! NEED ATTENTION !!!
|
||||
@ -133,7 +144,7 @@ case "$1" in
|
||||
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
|
||||
DAEMON=$TPWS
|
||||
;;
|
||||
tiera)
|
||||
tiera|athome)
|
||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0
|
||||
iptables -t nat -D PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
|
18
init.d/openwrt/firewall.user.athome
Normal file
18
init.d/openwrt/firewall.user.athome
Normal file
@ -0,0 +1,18 @@
|
||||
TPPORT=1188
|
||||
TPWS_USER=daemon
|
||||
|
||||
. /lib/functions/network.sh
|
||||
|
||||
network_find_wan wan_iface
|
||||
|
||||
for ext_iface in $wan_iface; do
|
||||
network_get_device DEVICE $ext_iface
|
||||
# DNAT for local traffic
|
||||
iptables -t nat -C OUTPUT -p tcp --dport 80 -o $DEVICE -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT ||
|
||||
iptables -t nat -I OUTPUT -p tcp --dport 80 -o $DEVICE -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
|
||||
done
|
||||
|
||||
sysctl -w net.ipv4.conf.br-lan.route_localnet=1
|
||||
iptables -t nat -C prerouting_lan_rule -p tcp --dport 80 -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT ||
|
||||
iptables -t nat -I prerouting_lan_rule -p tcp --dport 80 -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
@ -1,5 +1,2 @@
|
||||
# put it to /etc/firewall.user
|
||||
|
||||
# for MNS ISP
|
||||
iptables -t raw -C PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass ||
|
||||
iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
|
@ -1,5 +1,2 @@
|
||||
# put it to /etc/firewall.user
|
||||
|
||||
# for Rostelecom ISP
|
||||
iptables -t raw -C PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass ||
|
||||
iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
|
@ -2,11 +2,12 @@
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
|
||||
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
||||
#ISP=mns
|
||||
ISP=mns
|
||||
#ISP=rt
|
||||
ISP=beeline
|
||||
#ISP=beeline
|
||||
#ISP=domru
|
||||
#ISP=tiera
|
||||
#ISP=athome
|
||||
|
||||
# If ISP is unlisted then uncomment "custom"
|
||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
||||
@ -68,6 +69,10 @@ get_daemon() {
|
||||
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --bind-addr=127.0.0.1 --user=$TPWS_USER"
|
||||
DAEMON=$TPWS
|
||||
;;
|
||||
athome)
|
||||
DAEMON_OPTS="--port=$TPPORT --split-http-req=method --bind-addr=127.0.0.1 --user=$TPWS_USER"
|
||||
DAEMON=$TPWS
|
||||
;;
|
||||
custom)
|
||||
# PLACEHOLDER
|
||||
echo !!! NEED ATTENTION !!!
|
||||
|
@ -4,11 +4,12 @@ start on runlevel [2345]
|
||||
stop on runlevel [!2345]
|
||||
|
||||
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
||||
#env ISP=mns
|
||||
env ISP=mns
|
||||
#env ISP=rt
|
||||
env ISP=beeline
|
||||
#env ISP=beeline
|
||||
#env ISP=domru
|
||||
#env ISP=tiera
|
||||
#env ISP=athome
|
||||
|
||||
# If ISP is unlisted then uncomment "custom"
|
||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
||||
@ -54,7 +55,7 @@ pre-start script
|
||||
iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300 ||
|
||||
iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
|
||||
;;
|
||||
tiera)
|
||||
tiera|athome)
|
||||
adduser --disabled-login --no-create-home --system --quiet $TPWS_USER
|
||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=1
|
||||
iptables -t nat -C PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT ||
|
||||
@ -94,6 +95,10 @@ script
|
||||
NFEXE=$TPWS
|
||||
NFARG="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
|
||||
;;
|
||||
athome)
|
||||
NFEXE=$TPWS
|
||||
NFARG="--port=$TPPORT --split-http-req=method --user=$TPWS_USER --bind-addr=127.0.0.1"
|
||||
;;
|
||||
custom)
|
||||
# PLACEHOLDER
|
||||
echo !!! NEED ATTENTION !!!
|
||||
@ -124,7 +129,7 @@ pre-stop script
|
||||
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300
|
||||
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
|
||||
;;
|
||||
tiera)
|
||||
tiera|athome)
|
||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0
|
||||
iptables -t nat -D PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
|
||||
|
11
readme.txt
11
readme.txt
@ -1,4 +1,4 @@
|
||||
zapret v.16
|
||||
zapret v.17
|
||||
|
||||
Для чего это надо
|
||||
-----------------
|
||||
@ -124,22 +124,29 @@ tpws - это transparent proxy.
|
||||
----------
|
||||
|
||||
mns.ru : нужна замена window size на 3. mns.ru убирает заблокированные домены из выдачи своих DNS серверов. меняем на сторонние.
|
||||
|
||||
at-home.ru : при дефолтном подключении все блокировалось по IP. после заказа внешнего IP (static NAT) по IP блокируются немногие сайты. закономерность не ясна.
|
||||
Для обхода DPI подходят настройки mns.ru. в https подменяется сертификат. Если у вас все блокируется по IP, то нет никакого способа, кроме как проксирование порта 80 по аналогии с 443.
|
||||
Для обхода DPI работает замена windows size на 3, но была замечена нестабильность и подвисания. Лучше всего работает сплит запроса около метода в течение всей http сессии.
|
||||
В https подменяется сертификат. Если у вас все блокируется по IP, то нет никакого способа, кроме как проксирование порта 80 по аналогии с 443.
|
||||
|
||||
beeline (corbina) : нужна замена регистра "Host:" на протяжении всей http сессии. С некоторых пор "host" не работает, но работают другие регистры букв.
|
||||
|
||||
dom.ru : нужно проксирование HTTP сессий через tpws с заменой регистра "Host:" и разделение TCP сегментов на хедере "Host:".
|
||||
Ахтунг ! Домру блокирует все поддомены заблоченого домена. IP адреса всевозможных поддоменов узнать невозможно из реестра
|
||||
блокировок, поэтому если вдруг на каком-то сайте вылезает блокировочный баннер, то идите в консоль firefox, вкладка network.
|
||||
Загружайте сайт и смотрите куда идет редирект. Потом вносите домен в zapret-hosts-user.txt. Например, на kinozal.tv имеются
|
||||
2 запрашиваемых поддомена : s.kinozal.tv и st.kinozal.tv с разными IP адресами.
|
||||
Домру перехватывает DNS запросы и всовывает свой лже-ответ. Это обходится через дроп лже-ответа посредством iptables по наличию IP адреса заглушки или через dnscrypt.
|
||||
|
||||
sknt.ru : проверена работа с tpws с параметром "--split-http-req=method". возможно, будет работать nfqueue, пока возможности
|
||||
проверить нет
|
||||
|
||||
Ростелеком/tkt : помогает разделение http запроса на сегменты, настройки mns.ru подходят
|
||||
ТКТ был куплен ростелекомом, используется фильтрация ростелекома.
|
||||
Поскольку DPI не отбрасывает входящую сессию, а только всовывает свой пакет, который приходит раньше ответа от настоящего сервера,
|
||||
блокировки так же обходятся без применения "тяжелой артиллерии" следующим правилом :
|
||||
iptables -t raw -I PREROUTING -p tcp --sport 80 -m string --hex-string "|0D0A|Location: http://95.167.13.50" --algo bm -j DROP --from 40 --to 200
|
||||
|
||||
tiera : Требуется сплит http запросов в течение всей сессии.
|
||||
|
||||
Другие провайдеры
|
||||
|
Loading…
Reference in New Issue
Block a user