mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-02 14:40:52 +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
|
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)
|
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=beeline
|
||||||
#ISP=domru
|
#ISP=domru
|
||||||
#ISP=tiera
|
#ISP=tiera
|
||||||
|
#ISP=athome
|
||||||
|
|
||||||
# If ISP is unlisted then uncomment "custom"
|
# If ISP is unlisted then uncomment "custom"
|
||||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
||||||
@ -94,6 +95,16 @@ case "$1" in
|
|||||||
DAEMON=$TPWS
|
DAEMON=$TPWS
|
||||||
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
|
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)
|
custom)
|
||||||
# PLACEHOLDER
|
# PLACEHOLDER
|
||||||
echo !!! NEED ATTENTION !!!
|
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
|
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
|
||||||
DAEMON=$TPWS
|
DAEMON=$TPWS
|
||||||
;;
|
;;
|
||||||
tiera)
|
tiera|athome)
|
||||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0
|
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 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
|
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 -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
|
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 -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
|
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
|
# Copyright (C) 2006-2011 OpenWrt.org
|
||||||
|
|
||||||
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
||||||
#ISP=mns
|
ISP=mns
|
||||||
#ISP=rt
|
#ISP=rt
|
||||||
ISP=beeline
|
#ISP=beeline
|
||||||
#ISP=domru
|
#ISP=domru
|
||||||
#ISP=tiera
|
#ISP=tiera
|
||||||
|
#ISP=athome
|
||||||
|
|
||||||
# If ISP is unlisted then uncomment "custom"
|
# If ISP is unlisted then uncomment "custom"
|
||||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
# 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_OPTS="--port=$TPPORT --split-http-req=host --bind-addr=127.0.0.1 --user=$TPWS_USER"
|
||||||
DAEMON=$TPWS
|
DAEMON=$TPWS
|
||||||
;;
|
;;
|
||||||
|
athome)
|
||||||
|
DAEMON_OPTS="--port=$TPPORT --split-http-req=method --bind-addr=127.0.0.1 --user=$TPWS_USER"
|
||||||
|
DAEMON=$TPWS
|
||||||
|
;;
|
||||||
custom)
|
custom)
|
||||||
# PLACEHOLDER
|
# PLACEHOLDER
|
||||||
echo !!! NEED ATTENTION !!!
|
echo !!! NEED ATTENTION !!!
|
||||||
|
@ -4,11 +4,12 @@ start on runlevel [2345]
|
|||||||
stop on runlevel [!2345]
|
stop on runlevel [!2345]
|
||||||
|
|
||||||
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
|
||||||
#env ISP=mns
|
env ISP=mns
|
||||||
#env ISP=rt
|
#env ISP=rt
|
||||||
env ISP=beeline
|
#env ISP=beeline
|
||||||
#env ISP=domru
|
#env ISP=domru
|
||||||
#env ISP=tiera
|
#env ISP=tiera
|
||||||
|
#env ISP=athome
|
||||||
|
|
||||||
# If ISP is unlisted then uncomment "custom"
|
# If ISP is unlisted then uncomment "custom"
|
||||||
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
|
# 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 -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
|
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
|
adduser --disabled-login --no-create-home --system --quiet $TPWS_USER
|
||||||
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=1
|
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 ||
|
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
|
NFEXE=$TPWS
|
||||||
NFARG="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
|
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)
|
custom)
|
||||||
# PLACEHOLDER
|
# PLACEHOLDER
|
||||||
echo !!! NEED ATTENTION !!!
|
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 "|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
|
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
|
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 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
|
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 серверов. меняем на сторонние.
|
mns.ru : нужна замена window size на 3. mns.ru убирает заблокированные домены из выдачи своих DNS серверов. меняем на сторонние.
|
||||||
|
|
||||||
at-home.ru : при дефолтном подключении все блокировалось по IP. после заказа внешнего IP (static NAT) по IP блокируются немногие сайты. закономерность не ясна.
|
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" не работает, но работают другие регистры букв.
|
beeline (corbina) : нужна замена регистра "Host:" на протяжении всей http сессии. С некоторых пор "host" не работает, но работают другие регистры букв.
|
||||||
|
|
||||||
dom.ru : нужно проксирование HTTP сессий через tpws с заменой регистра "Host:" и разделение TCP сегментов на хедере "Host:".
|
dom.ru : нужно проксирование HTTP сессий через tpws с заменой регистра "Host:" и разделение TCP сегментов на хедере "Host:".
|
||||||
Ахтунг ! Домру блокирует все поддомены заблоченого домена. IP адреса всевозможных поддоменов узнать невозможно из реестра
|
Ахтунг ! Домру блокирует все поддомены заблоченого домена. IP адреса всевозможных поддоменов узнать невозможно из реестра
|
||||||
блокировок, поэтому если вдруг на каком-то сайте вылезает блокировочный баннер, то идите в консоль firefox, вкладка network.
|
блокировок, поэтому если вдруг на каком-то сайте вылезает блокировочный баннер, то идите в консоль firefox, вкладка network.
|
||||||
Загружайте сайт и смотрите куда идет редирект. Потом вносите домен в zapret-hosts-user.txt. Например, на kinozal.tv имеются
|
Загружайте сайт и смотрите куда идет редирект. Потом вносите домен в zapret-hosts-user.txt. Например, на kinozal.tv имеются
|
||||||
2 запрашиваемых поддомена : s.kinozal.tv и st.kinozal.tv с разными IP адресами.
|
2 запрашиваемых поддомена : s.kinozal.tv и st.kinozal.tv с разными IP адресами.
|
||||||
Домру перехватывает DNS запросы и всовывает свой лже-ответ. Это обходится через дроп лже-ответа посредством iptables по наличию IP адреса заглушки или через dnscrypt.
|
Домру перехватывает DNS запросы и всовывает свой лже-ответ. Это обходится через дроп лже-ответа посредством iptables по наличию IP адреса заглушки или через dnscrypt.
|
||||||
|
|
||||||
sknt.ru : проверена работа с tpws с параметром "--split-http-req=method". возможно, будет работать nfqueue, пока возможности
|
sknt.ru : проверена работа с tpws с параметром "--split-http-req=method". возможно, будет работать nfqueue, пока возможности
|
||||||
проверить нет
|
проверить нет
|
||||||
|
|
||||||
Ростелеком/tkt : помогает разделение http запроса на сегменты, настройки mns.ru подходят
|
Ростелеком/tkt : помогает разделение http запроса на сегменты, настройки mns.ru подходят
|
||||||
ТКТ был куплен ростелекомом, используется фильтрация ростелекома.
|
ТКТ был куплен ростелекомом, используется фильтрация ростелекома.
|
||||||
Поскольку DPI не отбрасывает входящую сессию, а только всовывает свой пакет, который приходит раньше ответа от настоящего сервера,
|
Поскольку 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
|
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 запросов в течение всей сессии.
|
tiera : Требуется сплит http запросов в течение всей сессии.
|
||||||
|
|
||||||
Другие провайдеры
|
Другие провайдеры
|
||||||
|
Loading…
Reference in New Issue
Block a user