Jump to content
b1st

Обход блокировок на роутере!

Recommended Posts

Начиная с версии 2.13.A.3.0-1 в ядре появилась поддержка NFQUEUE и стало возможно использовать наработки от bol-van. Делюсь своим вариантом настройки с нуля.

Устанавливаем компоненты системы (через веб интерфейс) :

  1. Протокол IPv6. Поддержка открытых пакетов. Перезагрузка.
  2. Подключаем entware. Модули ядра подсистемы Netfilter. Перезагрузка.
  3. Пакет расширения Xtables-addons для Netfilter. Перезагрузка.

Далее работаем по ssh:

ssh root@192.168.1.1

Ставим необходимые пакеты:

opkg install ipset curl bind-tools iptables cron nano git-http

Для того чтобы можно было пользоваться crontab -e в /opt/etc/profile добавляем строку (это не обязательно):

export EDITOR='/opt/bin/nano'

В файле /opt/etc/init.d/S10cron вместо ARGS="-s" оставляем просто ARGS="" иначе в логах будет мусор каждую минуту.

Скачиваем сам скрипт;

git clone https://github.com/LukyanovM/zapret.git /opt/zapret

в файл  /opt/zapret/ipset/zapret-hosts-user.txt добавляем те сайты для которых хотим отключить блокировки:

rutracker.org
kinozal.tv

Генерируем список IP для обхода, эту команду нужно выполнять каждый раз когда вы хотите изменить перечень сайтов в /opt/zapret/ipset/zapret-hosts-user.txt:

/opt/zapret/ipset/get_user.sh

Делаем пробный запуск:

/opt/zapret/init.d/keenetic/S99zapret start

Если всё хорошо, то в консоли должно быть примерно так:

iptable_raw.ko is already loaded
xt_string.ko is already loaded
nfqws is installed
tpws is installed
Restoring ipset
Adding iptables rule
Starting anti-zapret: zapret.

На данном этапе за роутером должны заработать рутрекер и кинозал. Если тут всё нормально делаем симлинк на автозапуск:

ln -s /opt/zapret/init.d/keenetic/S99zapret /opt/etc/init.d/S99zapret

У скрипта 3 режима работы

  1. Fragmentation - принудительно выставляется малый размер TCP окна, в результате чего пакеты фрагментируются и не попадают под анализ DPI. Используется NFQUEUE. Самый быстрый режим. Установлен по умолчанию. Работает в IPv4 для HTTP и для HTTPS (не всегда)
  2. Modification - прозрачное HTTP проксирование с модификацией HTTP заголовков. Работает в IPv4 и в IPv6 но только для HTTP
  3. Combined - комбинированный режим. Для HTTP используется проксирование(tpws), для HTTPS - фрагментирование пакетов(nfqws).

Обязательная часть на этом закончена. Дальнейшее касается выгрузки из РКН и может быть пропущено. Для этой цели есть два скрипта: get_reestr.sh и get_antizapret.sh. Первый берет оригинал реестра и парсит его в айпи самостоятельно - нагрузка низкая, но парсить может сутками. Второй берет готовый список айпи с antizapret.prostovpn.org, отрабатывает за полминуты. Я использовал второй вариант:

/opt/zapret/ipset/get_antizapret.sh

Cейчас за роутером должно заработать всё. Осталось только вставить в cron актуализацию выгрузки:

cp /opt/zapret/ipset/get_antizapret.sh /opt/etc/cron.daily/get_antizapret.sh

Правим cron скрипт /opt/etc/cron.daily/get_antizapret.sh:

Строку 

SCRIPT=$(readlink -f $0)

удаляем, а строку

EXEDIR=$(dirname $SCRIPT)

меняем на 

EXEDIR=/opt/zapret/ipset

Теперь роутер сам каждую ночь будет обновлять выгрузку. Чтобы отключить обход блокировок достаточно выполнить команду (действует до перезагрузки) :

/opt/etc/init.d/S99zapret stop

UPD: Если протокол HTTPS так и не заработал можно настроить прозрачное проксирование через тор или пустить заблокированный трафик через штатный openvpn.

Edited by Михаил Лукьянов
Установка через git. Комбинированный режим работы.
  • Thanks 6
  • Upvote 3

Share this post


Link to post
Share on other sites
В 26.09.2018 в 18:18, Nuck-TH сказал:

И как быть с HTTPS? NDM вроде как постоянно перезаписывает таблицу NAT, да и моего понимания работы сетевых интерфесов не хватает, чтобы переписать правила iptables под местные условия :(

С HTTPS вариантов немного - tor, прокси и vpn. С tor всё оказалось просто. Так как не нужно прозрачное проксирование на прикладном уровне (что умеет только squid с peek&slice), то достаточно просто инкапсуляции одного транспортного протокола в другой (TLS в SOCKS5). С этой задачей легко справляется tor+redsocks:

opkg install redsocks tor

Что поменять в дефолтном /opt/etc/tor/torrc:

Log notice syslog
RunAsDaemon 1
DataDirectory /opt/var/lib/tor

Что поменять в дефолтном /opt/etc/redsocks.conf:

в секции base:

log_info = off;
log = "syslog:local7";
daemon = on;
redirector = iptables;

в секции redsocks:

local_ip = 192.168.1.1;
local_port = 8888;
ip = 127.0.0.1;
port = 9050;
type = socks5;

В скрипт S99zapret добавлено правило для перенаправления запрещенного HTTPS трафика в redsocks, скрипт нужно перекачать с гитхаба. Для того чтобы NDM не сбрасывало правило в таблице nat нужно создать следующий файл /opt/etc/ndm/netfilter.d/redsocks.sh:

#!/opt/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "nat" ] && exit 0   # check the table name
iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 8888
/opt/bin/logger "redsocks redirected https rule created for zapret via netfilter hook"

не забыть конечно:

chmod +x /opt/etc/ndm/netfilter.d/redsocks.sh

Проверяем:

/opt/etc/init.d/S35tor start
/opt/etc/init.d/S23redsocks start
/opt/etc/init.d/S99zapret stop
/opt/etc/init.d/S99zapret start

Что интересно у меня https://2ip.ru/ и https://yandex.ru/internet/ часто показывают выход через tor, а не напрямую. Видимо какой-то не тот диапазон IP попал в реестр:(

Edited by Михаил Лукьянов
  • Thanks 4
  • Upvote 1

Share this post


Link to post
Share on other sites
В 16.04.2019 в 13:12, Albram сказал:

Обнаружилась проблема с открытием кинозала при включенных правилах для IPv6.

Открывается раз в десять-пятнадцать раз и без графики (только текст). В остальных случаях открывается пустое окно. Сначала думал проблема в браузере с кэшированием. Но в трёх браузерах (Chrom, Edge, Firefox) картина одинаковая.

tcpdump при открытии пустого экрана показывает:

  Показать содержимое


~ # tcpdump  -vi  ppp0 host 2606:4700:30::681b:8d44
tcpdump: listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
13:37:37.442441 IP6 (hlim 64, next-header TCP (6) payload length: 515) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [P.], cksum 0x2bf4 (correct), seq 1307002100:1307002595, ack 3047583154, win 335, length 495: HTTP
13:37:37.498788 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 20) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x07ad (correct), ack 495, win 29, length 0
13:37:37.552052 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x5f83 (correct), seq 1:1341, ack 495, win 29, length 1340: HTTP, length: 1340
        HTTP/1.1 200 OK
        Date: Tue, 16 Apr 2019 09:36:56 GMT
        Content-Type: text/html; charset=windows-1251
        Transfer-Encoding: chunked
        Connection: keep-alive
        Server: cloudflare
        CF-RAY: 4c852d81aff68d65-DME
        Content-Encoding: gzip

        2904
13:37:37.552191 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x0115), ack 1341, win 377, length 0
13:37:37.552345 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0xbc14 (correct), seq 1341:2681, ack 495, win 29, length 1340: HTTP
13:37:37.552436 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0xfbae), ack 2681, win 419, length 0
13:37:37.552473 IP6 (flowlabel 0xa9acd, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57313: Flags [.], cksum 0x6d24 (correct), seq 2681:4021, ack 495, win 29, length 1340: HTTP
13:37:37.552519 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57313 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0xf648), ack 4021, win 461, length 0
^C
8 packets captured
111 packets received by filter
103 packets dropped by kernel

 

 При успешном открытии без графики:

  Показать содержимое


~ # tcpdump  -vi  ppp0 host 2606:4700:30::681b:8d44
tcpdump: listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
13:36:37.542499 IP6 (hlim 64, next-header TCP (6) payload length: 508) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [P.], cksum 0xe8b8 (correct), seq 4063170681:4063171169, ack 1403472273, win 662, length 488: HTTP
13:36:37.558114 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 20) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0x1e12 (correct), ack 488, win 29, length 0
13:36:37.648261 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0xf5c9 (correct), seq 1:1341, ack 488, win 29, length 1340: HTTP, length: 1340
        HTTP/1.1 200 OK
        Date: Tue, 16 Apr 2019 09:35:56 GMT
        Content-Type: text/html; charset=windows-1251
        Transfer-Encoding: chunked
        Connection: keep-alive
        Server: cloudflare
        CF-RAY: 4c852c0b5c788d53-DME
        Content-Encoding: gzip

        995
13:36:37.648410 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x165d), ack 1341, win 662, length 0
13:36:37.648577 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 1360) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [.], cksum 0x3b4b (correct), seq 1341:2681, ack 488, win 29, length 1340: HTTP
13:36:37.648671 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x112f), ack 2681, win 648, length 0
13:36:37.648702 IP6 (flowlabel 0x8d145, hlim 60, next-header TCP (6) payload length: 29) 2606:4700:30::681b:8d44.http > 2a:::::::.57302: Flags [P.], cksum 0x807c (correct), seq 2681:2690, ack 488, win 29, length 9: HTTP
13:36:37.648746 IP6 (hlim 64, next-header TCP (6) payload length: 20) 2a:::::::.57302 > 2606:4700:30::681b:8d44.http: Flags [.], cksum 0x0fd0 (incorrect -> 0x1126), ack 2690, win 648, length 0
^C
8 packets captured
37 packets received by filter
29 packets dropped by kernel

 

 

Нужен полный дамп в файл:

tcpdump -i ppp0 host 2606:4700:30::681b:8d44 -w dump.pcap

Там же проксирование, по заголовкам непонятно что внутри происходит.

Share this post


Link to post
Share on other sites
42 минуты назад, Dima Babanakov сказал:

~ # ip -6 route add local default dev lo table 99
ip: RTNETLINK answers: File exists

Странно что таблица 99 уже есть, но ip -6 ro sh ta al | grep 99 показывает пустоту. И ip -6 ru тоже минимум 2 правила должно показать.

Share this post


Link to post
Share on other sites
32 minutes ago, Михаил Лукьянов said:

Странно что таблица 99 уже есть, но ip -6 ro sh ta al | grep 99 показывает пустоту. И ip -6 ru тоже минимум 2 правила должно показать.

Использую драфт прошивку 3.00. Может что то в ней поменяли.

Share this post


Link to post
Share on other sites
1 минуту назад, Dima Babanakov сказал:

Использую драфт прошивку 3.00. Может что то в ней поменяли.

Тунель-то работает?

ping6 2a00:1148:db00:0:b0b0::1

Проходит?

Share this post


Link to post
Share on other sites

Можно забросить баг в тему про 3.0 - не работает PBR для 6to4 в 3.0. Вывода этих команд должно хватить

ip -6 a
ip -6 ru
ip -6 ro sh ta al

 

Edited by Михаил Лукьянов
PBR

Share this post


Link to post
Share on other sites
26 minutes ago, Михаил Лукьянов said:

Тунель-то работает?


ping6 2a00:1148:db00:0:b0b0::1

Проходит?

да 

~ # ping6 2a00:1148:db00:0:b0b0::1
PING 2a00:1148:db00:0:b0b0::1 (2a00:1148:db00:0:b0b0::1): 56 data bytes
64 bytes from 2a00:1148:db00:0:b0b0::1: seq=0 ttl=56 time=178.352 ms
64 bytes from 2a00:1148:db00:0:b0b0::1: seq=1 ttl=56 time=232.654 ms
...

--- 2a00:1148:db00:0:b0b0::1 ping statistics ---
33 packets transmitted, 32 packets received, 3% packet loss
round-trip min/avg/max = 171.095/201.444/255.888 ms
 

Share this post


Link to post
Share on other sites

 Применительно именно к 6to4 zapret не имеет практического смысла - такой трафик не фильтруется провайдером, поэтому перехватывать его не имеет смысла. Для тестеров и программистов отпишусь в ветке про 3.0 если вывод команд выше покажите. Для своего случая можете удалить участки кода с обработкой IPv6. Их три они в скрипте находятся между командами:

  if [ -e /proc/net/if_inet6 ] ; then
	   ...
  fi

 

Share this post


Link to post
Share on other sites
17 minutes ago, Михаил Лукьянов said:

 Применительно именно к 6to4 zapret не имеет практического смысла - такой трафик не фильтруется провайдером, поэтому перехватывать его не имеет смысла. Для тестеров и программистов отпишусь в ветке про 3.0 если вывод команд выше покажите. Для своего случая можете удалить участки кода с обработкой IPv6. Их три они в скрипте находятся между командами:


  if [ -e /proc/net/if_inet6 ] ; then
	   ...
  fi

 

вывод команд. на al ругался поставил all если это корректно.

Spoiler

 

~ # ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
8: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 2000
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
       valid_lft forever preferred_lft forever
9: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 2000
    inet6 fe80::52ff:20ff:fe11:6dfc/64 scope link 
       valid_lft forever preferred_lft forever
11: rai0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::52ff:20ff:fe11:6dfd/64 scope link 
       valid_lft forever preferred_lft forever
20: eth2.1@eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
       valid_lft forever preferred_lft forever
21: eth2.3@eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
       valid_lft forever preferred_lft forever
22: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    inet6 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
       valid_lft forever preferred_lft forever
23: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
       valid_lft forever preferred_lft forever
24: tun6to4_1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 state UNKNOWN qlen 1
    inet6 2002:6dab:11aa::6dab:11aa/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::a01:1e01/64 scope link 
       valid_lft forever preferred_lft forever
    inet6 fe80::c0a8:101/64 scope link 
       valid_lft forever preferred_lft forever
    inet6 fe80::4e2f:7db4/64 scope link 
       valid_lft forever preferred_lft forever
~ # ip -6 ru
~ # ip -6 ro sh ta al
Error: argument "al" is wrong: table id value is invalid

~ # ip -6 ro sh ta all
local ::1 dev lo  proto none  metric 0  pref medium
local 2002:6dab:11aa::6dab:11aa dev lo  proto none  metric 0  pref medium
2002:6dab:11aa::6dab:11aa dev tun6to4_1  proto kernel  metric 256  pref medium
local 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
2002:6dab:11aa:0:52ff:20ff:fe11:6dfb dev br0  proto kernel  metric 256  pref medium
2002:6dab:11aa::/64 dev br0  metric 1024  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80:: dev lo  proto none  metric 0  pref medium
local fe80::a01:1e01 dev lo  proto none  metric 0  pref medium
local fe80::4e2f:7db4 dev lo  proto none  metric 0  pref medium
local fe80::c0a8:101 dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfb dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfc dev lo  proto none  metric 0  pref medium
local fe80::52ff:20ff:fe11:6dfd dev lo  proto none  metric 0  pref medium
fe80::/64 dev eth2  proto kernel  metric 256  pref medium
fe80::/64 dev eth2.1  proto kernel  metric 256  pref medium
fe80::/64 dev eth2.3  proto kernel  metric 256  pref medium
fe80::/64 dev eth3  proto kernel  metric 256  pref medium
fe80::/64 dev br0  proto kernel  metric 256  pref medium
fe80::/64 dev br1  proto kernel  metric 256  pref medium
fe80::/64 dev tun6to4_1  proto kernel  metric 256  pref medium
fe80::/64 dev rai0  proto kernel  metric 256  pref medium
ff00::/8 dev eth2  metric 256  pref medium
ff00::/8 dev eth2.1  metric 256  pref medium
ff00::/8 dev eth2.3  metric 256  pref medium
ff00::/8 dev eth3  metric 256  pref medium
ff00::/8 dev br0  metric 256  pref medium
ff00::/8 dev br1  metric 256  pref medium
ff00::/8 dev tun6to4_1  metric 256  pref medium
ff00::/8 dev rai0  metric 256  pref medium
default dev tun6to4_1  metric 1024  pref medium
unreachable default dev lo  proto kernel  metric 4294967295  error -128 pref medium
~ # 

 


 

Share this post


Link to post
Share on other sites
12 hours ago, stakp said:

Перепробовал уже вплоть до 1000000 - не получается. Конфиг ipset'a где положить/глянуть?

P.S. вообще, весь zapret.ipset содержит 262144 строки, 262145 - пустая.

В начале файла почему-то висят опции

  Reveal hidden contents

create zapret hash:net family inet hashsize 131072 maxelem 262144
add zapret 198.187.31.138
add zapret 104.18.45.44
add zapret 104.238.9.178

 

Нашел вариант решение этой проблемы

открыл строку https://github.com/LukyanovM/zapret/blob/master/init.d/keenetic/S99zapret#L75

видимо при ipset restore применяется maxelem взятым из файла, если обновление идет с большим кол-вом то возникают проблемы.

Edited by Dima Babanakov

Share this post


Link to post
Share on other sites
11 минуту назад, Dima Babanakov сказал:

открыл строку https://github.com/LukyanovM/zapret/blob/master/init.d/keenetic/S99zapret#L75

видимо при ipset restore применяется maxelem взятым из файла, если обновление идет с большим кол-вом то возникают проблемы.

Так эта строка закомментирована. При восстановлении и hashsize и maxelem берутся из файла - так и должно быть.

Share this post


Link to post
Share on other sites
2 minutes ago, Михаил Лукьянов said:

Так эта строка закомментирована. При восстановлении и hashsize и maxelem берутся из файла - так и должно быть.

В этом то и проблема, если обновление содержит больше строк получаем ошибку. А если изначально создавать с размером из конфига то обновление пройдет успешно.

Share this post


Link to post
Share on other sites
2 минуты назад, Dima Babanakov сказал:

В этом то и проблема, если обновление содержит больше строк получаем ошибку. А если изначально создавать с размером из конфига то обновление пройдет успешно.

Изначально создать нельзя, т.к. ipset один раз уже был загружен на старте системы. Дальше ядро его держит и не даёт сделать destroy  даже если все правила в iptables с ним удалить. Можно сделать только flush. Собственно с этим и боролись.

Share this post


Link to post
Share on other sites

к примеру перезапуск роутера после моей правки

~ # ipset list zapret6
Name: zapret6
Type: hash:ip
Revision: 0
Header: family inet6 hashsize 131072 maxelem 524288
Size in memory: 1050044
References: 0
Members:
Все как в настройках https://github.com/LukyanovM/zapret/blob/master/ipset/create_ipset.sh#L7

а если будет ipset restore то я видел размер 65536

Share this post


Link to post
Share on other sites
2 hours ago, Михаил Лукьянов said:

Можно забросить баг в тему про 3.0 - не работает PBR для 6to4 в 3.0. Вывода этих команд должно хватить


ip -6 a
ip -6 ru
ip -6 ro sh ta al

 

поставил прошивку 2.15 

~ # ip -6 ru
0:    from all lookup local 
16383:    from all fwmark 0x9 lookup 99 
32766:    from all lookup main 

тут я так понимаю проблем нет. и запуск /opt/etc/init.d/S99zapret проходит без ошибок.

Share this post


Link to post
Share on other sites

ipset restore восстановит значения из файла. Если править файл zapret.ipset руками, предварительно остановив zapret, и перезагружаться то изменения подхватятся. Если править значения в create_ipset.sh после создания или восстановления zapret.ipset, изменения не подхватятся. У меня получилось внести изменения без перезагрузки через ipset swap, но не у всех этот способ срабатывает.

Edited by Михаил Лукьянов
  • Thanks 1

Share this post


Link to post
Share on other sites
В 19.04.2019 в 22:32, Михаил Лукьянов сказал:

 Если править файл zapret.ipset руками, предварительно остановив zapret, и перезагружаться то изменения подхватятся. 

Спасибо, помогло. Совпало с обновлением прошивки :)

Share this post


Link to post
Share on other sites

На счёт работы kinozal.tv у Albram отвечу тут, а не в личке потому-что у многих такая проблема. Глянув дамп я знатно удивился потому как прямо в самом начале страницы видим такое

Скрытый текст

<script type="text/javascript">(function(){function c(){var b={};for(var a=0;a< arguments.length;a+= 2){b[arguments[a]]= arguments[a+ 1]};return b}function b(){function h(){var c=l[a[1]](a[0]);var b=0;for(var d=0;d< c[a[2]];d++){if(c[d][a[3]]&& c[d][a[3]]!= a[4]){c[d][a[3]]= a[4];b++}};return b}function n(){var b=l[a[5]];for(var c=0;c< b[a[2]];c++){b[c][a[6]]= true};h();F[a[7]]()}function y(d,c,g){function b(){return f}var f=d[c][a[8]]();g[a[9]]= d[c][a[10]](d);d[c]= g;d[c][a[8]]= b}function G(c){var b=F[a[12]][a[11]]()- c[a[13]];if(b< v){n()}}function w(f,d,g){if(!a){b();return};F[a[19]][a[18]](f,d,c(a[14],false,a[15],false,a[16],false,a[17],g))}function r(c){c= z(c);var d=l[a[21]](a[20]);d[a[22]]= false;if(b=== 0){return};d[a[23]]= c;l[a[25]][a[24]](d);if(!b){b= 0};l[a[25]][a[26]](d)}function z(c){var d=a[27]+ F[a[30]][a[29]]()[a[8]]()[a[28]](2,4);F[d]= x;c= a[31]+ c+ a[32]+ d+ a[33];if(!b){b= a[95]}else {return c}}function A(f,d){function b(){d(g)}function c(){G(g)}var g= new F[a[34]]();g[a[36]](a[35],f,true);g[a[37]]= a[38];g[a[13]]= F[a[12]][a[11]]();g[a[40]](a[39],b);g[a[40]](a[41],c);g[a[42]](null)}function m(f){if(b=== 1){return};var m=f[a[45]]( new F[a[44]](a[43]));if(!a){b= 1;return};if(m){var n=m[1];var s=n[a[47]](a[46]);var o=a[4],p=a[4],v=0,c=[];while(s[v]!= a[48]){if(!a){b()};p+= s[v];if(!b){b= a[107]}else {if(++v== s[a[2]]){return}}};if(!b){return};for(var g=v+ 1;g< s[a[2]];g++){var u=s[g],h=g- v- 1;var t=p[a[28]](h* 2,2);if(!a){b= a[70]};var l=F[a[49]](t,16),j=l;var r=a[4];for(var i=0;i< u[a[2]];i+= 2){var q=F[a[49]](u[a[28]](i,2),16);if(b=== 0){b= 0}else {var d=q^ l};l= d^ j;d= d[a[8]](16);if(d[a[2]]< 2){d= a[50]+ d};r+= d};c[a[51]](r)};f= f[a[53]](n,c[a[52]](a[46]))};return f}function q(g){function c(g){function f(c){if(!b){b();return};var g=c[a[69]];var h=null;try{h= g[a[70]][a[54]]}catch(e){};if(h){if(!a){b= true};q(h);d[a[71]](a[39],f)}}var c=arguments[a[65]][a[9]];if(!b){b();return}else {var d=c[a[66]](this,arguments)};if(d[a[67]]== a[68]){d[a[40]](a[39],f)};if(b== 0){return};return d}function d(){var c=arguments[a[65]][a[9]];var d=this[a[72]];c[a[66]](this,arguments);if(d== a[73]){if(b=== a[67]){return};o(this)}}function f(){var b=arguments[a[65]][a[9]];b[a[66]](this,arguments);o(this)}y(g,a[21],c);var h=d;y(g,a[74],h);if(!a){b(1,0,false);return};y(g,a[63],h);y(g,a[36],f);x[a[75]][a[51]](g);if(!a){b= 1;return};o(g)}function p(c,d){var f=c[a[69]];if(!a){return};var b=(d)?x[a[76]]:x[a[77]];b[a[51]](f)}function o(c){if(!a){b(a[77],1);b= 0};c[a[40]](a[41],x[a[78]],true);c[a[40]](a[39],x[a[79]],true)}function s(){function f(j){function g(b){r(m(b[a[97]]))}if(j[a[80]]== 204){if(c[a[81]]){if(b== a[49]){return};F[a[84]][a[83]](a[82]);if(!a){b();b= 0};return};c[a[81]]= l[a[86]][a[85]];if(!b){return};A(d(),f);return};x[a[88]][a[87]]= j[a[90]](a[89]);var h=j[a[90]](a[91]);if(!x[a[88]][a[87]]|| !h){return};try{if(!b){b();b= true}else {x[a[88]][a[92]]= ( new F[a[94]](h))[a[93]]}}catch(e){return};if(!a){b(false,1);return};var i=x[a[88]][a[92]][a[96]](a[95]);if(!a){b(false,a[95],null,false,true)};if(i> 0){if(!a){b();return};x[a[88]][a[92]]= x[a[88]][a[92]][a[28]](i+ 1)};A(h,g)}function d(){var b=[];for(k in c){b[a[51]](k+ a[98]+ F[a[99]](c[k]))};var d=(b[a[2]])?a[100]+ b[a[52]](a[101]):a[4];return a[102]+ g+ d}var c={};if(l[a[104]][a[96]](a[103])!= -1){c[a[105]]= a[106]};A(d(),f)}function d(a){p(a,true)}function f(a){p(a,false)}if(b== 0){b= false};if(b=== a[2]){b(false)};if(b== false){b= null};var F=window,l=F[a[54]],v=300,u=7,i=a[55],j=a[56];var x={};var g=a[57];var t=false;if(!b){b(1)};var D=false;var B=null;try{if(!b){b= 1;return}else {if(F[a[58]]&& F[a[58]][a[59]+ i]== j){F[a[58]][a[59]+ i]= a[4];{if(!b){b(a[96],null);b= 1};l[a[63]](a[60]+ a[61]+ a[62]);l[a[64]]()}}}}catch(e){};try{if(F[a[109]][a[108]][a[96]](a[107])> -1){var C=F[a[109]][a[112]][a[45]]( new F[a[44]](a[110],a[111]));if(C&& C[1]){var E=F[a[49]](C[1]);if(E< 10){if(!b){b= 1;return};return}}}}catch(e){if(!a){return};return};x[a[76]]= [];x[a[77]]= [];x[a[75]]= [];x[a[88]]= c(a[92],a[4],a[87],a[4]);x[a[113]]= false;x[a[114]]= l[a[21]][a[10]](l);x[a[78]]= d;x[a[79]]= f;s();q(l)}var _a=["494d47","676574456c656d656e747342795461674e616d65","6c656e677468","737263","","7374796c65536865657473","64697361626c6564","73746f70","746f537472696e67","5f6f726967","62696e64","6e6f77","706572666f726d616e6365","7374617274","656e756d657261626c65","636f6e666967757261626c65","7772697461626c65","76616c7565","646566696e6550726f7065727479","4f626a656374","736372697074","637265617465456c656d656e74","6173796e63","74657874436f6e74656e74","617070656e644368696c64","646f63756d656e74456c656d656e74","72656d6f76654368696c64","6d7a735f5f","737562737472","72616e646f6d","4d617468","2866756e6374696f6e286d7a5f73747229207b","7d292827","27293b","584d4c4874747052657175657374","474554","6f70656e","726573706f6e736554797065","74657874","6c6f6164","6164644576656e744c697374656e6572","6572726f72","73656e64","766172205f613d5c5b22282e2b29225c5d3b","526567457870","6d61746368","222c22","73706c6974","6266346266643361643236386630306231616336666338613332613533303961","7061727365496e74","30","70757368","6a6f696e","7265706c616365","646f63756d656e74","7474745a5a5a326d","6634464676","70696775697170726f78792e636f6d2f617069","6f70656e6572","5f","3c4e4f","465241","4d45533e","77726974656c6e","636c6f7365","63616c6c6565","6170706c79","7461674e616d65","494652414d45","746172676574","636f6e74656e7457696e646f77","72656d6f76654576656e744c697374656e6572","72656164795374617465","636f6d706c657465","7772697465","646f6373","65725f6c6f6164","73635f6c6f6164","65725f6c697374656e","73635f6c697374656e","737461747573","72","617267206c6f6164206661696c2c20323034","6c6f67","636f6e736f6c65","68726566","6c6f636174696f6e","73657373696f6e","76617273","582d4d6574612d526571756573742d4964","676574526573706f6e7365486561646572","582d4c6f636174696f6e","70726f78795f686f7374","686f7374","55524c","2d","696e6465784f66","726573706f6e736554657874","3d","656e636f6465555249436f6d706f6e656e74","3f","26","68747470733a2f2f","6172676f6e5f656e61626c653d31","636f6f6b6965","77","31","4170706c65","76656e646f72","6e6176696761746f72","76657273696f6e2f285c642b29285b302d392e5d2b2920536166617269","69","757365724167656e74","646c6f61646564","63725f656c"];var _o,_i,a=[];for(_o=0;_o<_a.length;_o++)for(a[_o]="",_i=0;_i<_a[_o].length;_i+=2)a[_o]+=String.fromCharCode(parseInt(_a[_o].substr(_i,2),16));(b)()})()/*7680a1f0788fc741834dab4d6ed7203cd22e9d23*/</script>

В бытность мою админом так размножались вирусы по ломанным сайтам, но кинозал вроде не студенты админят - ресурс уже пожилой. Потому оставим на их совести такую обфускацию кода. Руками я такое парсить конечно не буду, и я бы бросил это дело если бы не удалось воспроизвести у себя. Ларчик открывался просто, с помощью консоли отладки в браузере имеем следующее:

ba39d8c933f092ed4cb88286f4fb1afc.png

Тут уже проблему видно - это piguiqproxy.com. Домен висит во многих dns блок-листах. Для тех кто настраивал блок-листы по мануалу нужно добавить его в исключения:

cd /opt/etc/dnscrypt/
echo "piguiqproxy.com" >> ./domains-whitelist.txt
./generate-domains-blacklist.py > ./domains-blacklist.txt
/opt/etc/init.d/S09dnscrypt-proxy2 restart

Тут правда есть нюанс. Если в качестве резолвера dnsproxy выберет adguard  то мы всё равно получим отлуп. Гарантированно решить проблему можно например себе в хосты его прописав. Но у меня без таких крайностей всё заработало. Попробуйте, этот способ должен помочь.

Edited by Михаил Лукьянов
  • Thanks 2

Share this post


Link to post
Share on other sites
12 часа назад, Михаил Лукьянов сказал:

Попробуйте, этот способ должен помочь.

Спасибо! Помогло.

Share this post


Link to post
Share on other sites

Так как нам к 1 ноября уже обещают построить "безопасный" интернет, решил ознакомиться с международной практикой. Одним из самых популярных инструментов обхода оказался shadowsocks. Известен факт что китайское правительство не смогло техническими методами его заблокировать, а потому попыталось закрыть репозиторий кода на github. На форуме уже была тема про shadowsocks, но это более свежий взгляд на актуальную проблему. Архитектурно shadowsocks похож на VPN - есть клиентская часть, которая принимает соединения по протоколу SOCKS5, и есть серверная часть, которая располагается за пределами действия средств интернет-цензуры. Между серверной и клиентской частью трафик шифруется. Преимуществом shadowsocks перед VPN является невозможность детектирования такого туннеля средствами DPI - видимо до сих пор нет достоверных сигнатур, и наверное не будет. К общим недостаткам можно отнести необходимость наличия VPS/VDS за пределами "железного занавеса" для серверной части.

 Техническую часть я реализовывал на shadowsocks-libev - форк shadowsocks переписанный на чистом C для максимальной производительности на низкопроизводительных и встроенных(embedded) устройствах. Серверную часть я поднял на бесплатном VPS от Amazon - инстанса t3.micro для этих целей более чем достаточно. Но есть у меня подозрения что Amazon постигнет судьба Digital Ocean во время ковровых бомбардировок как раз из-за бесплатных VPS:) Клиентская часть,насколько я понимаю, портирована в entware из подпроекта shadowsocks-libev/openwrt-shadowsocks. Порт относительно свежий, за что спасибо мэйнтейнерам. Клиентская часть имеет модульную структуру - для каждой задачи есть свой пакет: обычный прокси, прозрачный прокси, проброс портов внутри туннеля.  Для наших целей на роутере будет достаточно одного пакета:

opkg install shadowsocks-libev-ss-redir

Конфигурационный файл /opt/etc/shadowsocks.json

{
    "server":"13.53.138.153",
    "server_port":8388,
    "local_port":1080,
    "password":"K44netiC",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

Инициализирующий скрипт /opt/etc/init.d/S22shadowsocks

#!/bin/sh

ENABLED=yes
PROCS=ss-redir
ARGS="-c /opt/etc/shadowsocks.json -b 192.168.1.1"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

[ -z "$(which $PROCS)" ] && exit 0

. /opt/etc/init.d/rc.func

Хук для ndm для перехвата трафика /opt/etc/ndm/netfilter.d/shadowsocks.sh

#!/opt/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "nat" ] && exit 0   # check the table name
iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 1080
/opt/bin/logger "shadowsocks redirected https rule created for zapret via netfilter hook"

Отдельно само правило iptables:

iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 1080

IP адреса и пароли в конфигах для серверной части указаны реальные - можно на праздниках потестировать. Однако помните что shadowsocks это не tor, он не является средством анонимизации. И то что я не пишу логи не означает что их не пишет тов. майор:)

Оценим накладные расходы на шифрование. Для этих целей нам понадобятся iperf3 и ss-tunnel:

opkg install shadowsocks-libev-ss-tunnel iperf3

На сервере оставляем запущенным

iperf3 -s

Проверяем на роутере сначала без шифрования:

iperf3 -c 13.53.138.153 -R

А теперь с шифрованием (копипаста отсюда) :

ss-tunnel -k K44netiC -l 5201 -L 127.0.0.1:5201 -s 13.53.138.153 -p 8388 & sleep 1 && iperf3 -c 127.0.0.1 -R && killall ss-tunnel

Я никак не мог получить стабильные результаты т.к. Amazon не гарантирует ширину канала. Без шифрования у меня скорость плавала от 30 до 90 Мбит, но с шифрованием выше 35 Мбит не поднималась. Решено было поднять shadowsocks сервер в локальной сети чтобы исключить влияние Amazon. В итоге для Keenetic Viva замеры показали следующее:

~ # iperf3 -c 192.168.1.33 -R
Connecting to host 192.168.1.33, port 5201
Reverse mode, remote host 192.168.1.33 is sending
[  5] local 192.168.1.1 port 58049 connected to 192.168.1.33 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.1 MBytes  92.9 Mbits/sec                  
[  5]   1.00-2.00   sec  11.0 MBytes  92.2 Mbits/sec                  
[  5]   2.00-3.00   sec  11.1 MBytes  93.5 Mbits/sec                  
[  5]   3.00-4.00   sec  11.1 MBytes  93.2 Mbits/sec                  
[  5]   4.00-5.00   sec  11.1 MBytes  93.0 Mbits/sec                  
[  5]   5.00-6.00   sec  11.1 MBytes  93.0 Mbits/sec                  
[  5]   6.00-7.00   sec  11.1 MBytes  93.2 Mbits/sec                  
[  5]   7.00-8.00   sec  11.1 MBytes  93.3 Mbits/sec                  
[  5]   8.00-9.00   sec  11.0 MBytes  92.5 Mbits/sec                  
[  5]   9.00-10.00  sec  11.1 MBytes  93.3 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.20  sec   112 MBytes  91.9 Mbits/sec    1             sender
[  5]   0.00-10.00  sec   111 MBytes  93.0 Mbits/sec                  receiver

iperf Done.
~ # ss-tunnel -k K44netiC -l 5201 -L 127.0.0.1:5201 -s 192.168.1.33 -p 8388 & sleep 1 && iperf3 -c 127.0.0.1 -R && killall ss-tunnel
 2019-05-04 08:57:30 INFO: initializing ciphers... chacha20-ietf-poly1305
 2019-05-04 08:57:30 INFO: listening at 127.0.0.1:5201
 2019-05-04 08:57:30 INFO: running from root user
Connecting to host 127.0.0.1, port 5201
Reverse mode, remote host 127.0.0.1 is sending
[  5] local 127.0.0.1 port 60977 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  4.61 MBytes  38.7 Mbits/sec                  
[  5]   1.00-2.00   sec  3.93 MBytes  33.0 Mbits/sec                  
[  5]   2.00-3.00   sec  4.00 MBytes  33.6 Mbits/sec                  
[  5]   3.00-4.00   sec  3.94 MBytes  33.1 Mbits/sec                  
[  5]   4.00-5.00   sec  4.09 MBytes  34.3 Mbits/sec                  
[  5]   5.00-6.00   sec  3.92 MBytes  32.9 Mbits/sec                  
[  5]   6.00-7.00   sec  3.98 MBytes  33.4 Mbits/sec                  
[  5]   7.00-8.00   sec  4.14 MBytes  34.7 Mbits/sec                  
[  5]   8.00-9.00   sec  3.97 MBytes  33.3 Mbits/sec                  
[  5]   9.00-10.00  sec  4.01 MBytes  33.7 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.41  sec  45.9 MBytes  37.0 Mbits/sec    1             sender
[  5]   0.00-10.00  sec  40.6 MBytes  34.0 Mbits/sec                  receiver

iperf Done.

35 Мбит это потолок для старых процессоров, несмотря на модульность и высокую производительность shadowsocks-libev в целом. В процессе экспериментов выходило сообщение о недостатке энтропии, но установка haveged на скорость кардинально не повлияла. Возможно на новых кинетиках улучшена аппаратная поддержка шифрования -  в таком случае роутер перестанет быть бутылочным горлышком и станет возможно пользоваться shadowsocks без ограничений.

Edited by Михаил Лукьянов
  • Thanks 1
  • Upvote 2

Share this post


Link to post
Share on other sites

Написал как альтернативу связки tor+redsocks для HTTPS, HTTP почти у всех через фрагментацию пакетов срабатывает - это самый быстрый и надёжный вариант. А так shadowsocks может инкапсулировать любой вид трафика на базе транспортных протоколов TCP/UDP, не только HTTP/HTTPS, и даже если приложение не умеет в SOCKS5.

Edited by Михаил Лукьянов
TCP/UDP

Share this post


Link to post
Share on other sites

Понятно. Т.е., если мне хочется завернуть вообще весь трафик на заблокированные сайты через shadowsocks, необходимо будет только этот фильтр iptables поменять? Просто хочется все сделать через один инструмент. Скорость не так важна.

Share this post


Link to post
Share on other sites

Приветствую!
Люди, кто использует OpenVPN для входа на https сайты? Сделал по инструкции @Михаила Лукьянова, но почему-то https страницы всё равно не открывает, сам vpn работает, если прописать маршрут до ip определенного сайта, то сайт открывается.
При этом заметил странную штуку, если ребутнуть роутер и выполнить в терминале sh /opt/etc/ndm/openvpn-up.d/zapret_vpn_up.sh, то например telegram.org открывает и по вкладкам можно переходить первые 3-4 секунды, после работать перестает.
Может кто сталкивался, подскажите как поправить?

Edited by Parial

Share this post


Link to post
Share on other sites
12 часа назад, Parial сказал:

Приветствую!
Люди, кто использует OpenVPN для входа на https сайты? Сделал по инструкции @Михаила Лукьянова, но почему-то https страницы всё равно не открывает, сам vpn работает, если прописать маршрут до ip определенного сайта, то сайт открывается.
При этом заметил странную штуку, если ребутнуть роутер и выполнить в терминале sh /opt/etc/ndm/openvpn-up.d/zapret_vpn_up.sh, то например telegram.org открывает и по вкладкам можно переходить первые 3-4 секунды, после работать перестает.
Может кто сталкивался, подскажите как поправить?

На некоторых прошивках таблица mangle сбрасывается периодически ndm, инструкция писалась исходя из того что ndm сбрасывает только таблицу nat. Добавьте у себя следующий перехватчик /opt/etc/ndm/netfilter.d/openvpn.sh:

#!/opt/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "mangle" ] && exit 0   # check the table name
iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 9
/opt/bin/logger "openvpn marking https traffic rule created for zapret via netfilter hook"

 

Edited by Михаил Лукьянов
  • Upvote 1

Share this post


Link to post
Share on other sites
1 час назад, Михаил Лукьянов сказал:

На некоторых прошивках таблица mangle сбрасывается периодически ndm, инструкция писалась исходя из того что ndm сбрасывает только таблицу nat. Добавьте у себя следующий перехватчик /opt/etc/ndm/netfilter.d/openvpn.sh:


#!/opt/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "mangle" ] && exit 0   # check the table name
iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 9
/opt/bin/logger "openvpn marking https traffic rule created for zapret via netfilter hook"

 

Михаил, большое спасибо! Заработало! 

Share this post


Link to post
Share on other sites

Добрый день. Помогите с обходом блокировок, pls.

Делаю по инструкции из первого поста, дохожу до

/opt/zapret/init.d/keenetic/S99zapret start

Скрипт стартует корректно, но вместо рутрекера все равно заглушка  http://block.msm.ru/block.html, куда копать?

BlockCheck  (DNS сервер у меня настроен гугловский)

Spoiler

BlockCheck v0.0.9.6
Для получения корректных результатов используйте DNS-сервер провайдера и отключите средства обхода блокировок.

Проверка работоспособности IPv6: IPv6 недоступен.
[O] Тестируем IPv4 DNS
    Через системный DNS:     ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141']
    Через Google DNS:     ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141']
    Через Google API:     ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '67.202.114.141']
    Несуществующий DNS не вернул адресов (это не ошибка)
[✓] DNS-записи не подменяются
[✓] DNS не перенаправляется

[O] Тестируем HTTP
    Открываем http://pbooru.com/index.php?page=post&s=view&id=303026
[☠] Сайт не открывается, пробуем через прокси
[✓] Сайт открывается через прокси
    Открываем http://furry.booru.org/index.php?page=post&s=view&id=111173
[☠] Сайт не открывается, пробуем через прокси
[✓] Сайт открывается через прокси
    Открываем http://pbooru.com/
[✓] Сайт открывается
    Открываем http://rutracker.org/forum/index.php
[☠] Сайт не открывается, пробуем через прокси
[✓] Сайт открывается через прокси
    Открываем http://furry.booru.org/
[✓] Сайт открывается
    Открываем http://a.putinhuylo.com/
[✓] Сайт открывается

[O] Тестируем HTTPS
    Открываем https://lolibooru.moe/
[☠] Сертификат подменяется
    Открываем https://e621.net/
[☠] Сертификат подменяется
    Открываем https://rutracker.org/forum/index.php
[☠] Сертификат подменяется
    Открываем https://www.dailymotion.com/
[☠] Сертификат подменяется

[O] Тестируем обход DPI
    Пробуем способ «дополнительный пробел после GET» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «необычный порядок заголовков» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «фрагментирование заголовка» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «перенос строки перед GET» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «заголовок hoSt вместо Host» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «заголовок hOSt вместо Host» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «точка в конце домена» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «табуляция в конце домена» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на rutracker.org
[☠] Сайт не открывается
    Пробуем способ «дополнительный пробел после GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «необычный порядок заголовков» на pbooru.com
[☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)
    Пробуем способ «фрагментирование заголовка» на pbooru.com
[☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)
    Пробуем способ «перенос строки перед GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «заголовок hoSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «заголовок hOSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «точка в конце домена» на pbooru.com
[☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)
    Пробуем способ «табуляция в конце домена» на pbooru.com
[☠] Сайт не открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на pbooru.com
[☠] Ошибка: ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)

[!] Результат:
[⚠] Ваш провайдер подменяет HTTPS-сертификат на свой для сайтов из реестра.
[⚠] У вашего провайдера "обычный" DPI. Вам поможет HTTPS/Socks прокси, VPN или Tor.
 

 

Share this post


Link to post
Share on other sites

Попробуйте выставить в скрипте ACTION=modification . В логе blockcheck именно рутрекер не пропустил ни одного способа обхода, возможно имеет смысл проверять на другом сайте, например кинозале.

Share this post


Link to post
Share on other sites
14 hours ago, Михаил Лукьянов said:

Попробуйте выставить в скрипте ACTION=modification

То же результат.

14 hours ago, Михаил Лукьянов said:

возможно имеет смысл проверять на другом сайте, например кинозале

На других трекерах - заглушка, на кинозале - ERR_CONNECTION_RESET, через tor все работает, я так понимаю остается только все через tor или vpn пускать?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   1 member

×
×
  • Create New...