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
20 минут назад, Михаил Лукьянов сказал:

Я не кодер, а бывший админ - сам писать не обучен, на досуге могу чужое подправить. Нагрузка минимальна - за день в цепочку NFQUEUE у меня упало 15 пакетов весом 752 байта, хотя на трекерах я сижу, при сёрфинге load average на роутере выше 5% не поднимается. DPI ленивый - вместо полноценного statefull inspection, происходит только анализ SYN,ACK пакетов (т.е. первый пакет во всей TCP сессии) остальное пролетает со свистом без модификации. И это хорошо) 

У вас если идет по RT то основная часть идет не по NFQUEUE а по заглушке, смотрите сколько там у вас DROP по ней. Второе по строке

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 $QNUM --queue-bypass

весь вопрос это в самом списке "zapret" если их там два одно, а если их десяток?

 

Share this post


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

У вас если идет по RT то основная часть идет не по NFQUEUE а по заглушке, смотрите сколько там у вас DROP по ней. Второе по строке


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 $QNUM --queue-bypass

весь вопрос это в самом списке "zapret" если их там два одно, а если их десяток?

 

Цитата

 

~ # iptables -nvL -t raw
Chain PREROUTING (policy ACCEPT 377K packets, 46M bytes)
 pkts bytes target     prot opt in     out     source               destination         
   25  1316 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 flags:0x12/0x12 match-set zapret src NFQUEUE num 200 bypass
    5  2120 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 STRING match  "|0d0a4c6f636174696f6e3a20687474703a2f2f626c61636b686f6c652e6265656c696e652e7275|" ALGO name bm FROM 40 TO 200

Chain OUTPUT (policy ACCEPT 256K packets, 46M bytes)
 pkts bytes target     prot opt in     out     source               destination         
~ # ipset list zapret | wc -l
111597

 

Красным выделены ответы на ваши вопросы. Причем в DROP попадает только то чего нет в списке zapret (т.е. kinozal попал сейчас из-за смены IP). При корректном списке zapret правило с drop вообще не играет.

Share this post


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

Красным выделены ответы на ваши вопросы. Причем в DROP попадает только то чего нет в списке zapret (т.е. kinozal попал сейчас из-за смены IP). При корректном списке zapret правило с drop вообще не играет.

Я рад за ваш, но есть другой пример

/ # iptables -t raw -nvL
Chain PREROUTING (policy ACCEPT 3371K packets, 394M bytes)
 pkts bytes target     prot opt in     out     source               destination
....
    4  1078 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 ....
 3501  140K DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:443 ....
....

 

Share this post


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

3501 140K DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443 ....

И что, работает? DPI только на HTTP работает, по HTTPS провайдер должен трафик дропать. Каков смысл такого правила?

Share this post


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

И что, работает? DPI только на HTTP работает, по HTTPS провайдер должен трафик дропать. Каков смысл такого правила? 

Смысл прост, чтоб работало.

Share this post


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

Смысл прост, чтоб работало.

Ну возможно. Blockcheck покажет. Может кто-то из региональных провайдеров балуется.

Share this post


Link to post
Share on other sites

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

Share this post


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

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

Видимо на каких-то прошивках модуль не грузится автоматом - добавил проверку в скрипт.

 

Edited by Михаил Лукьянов
Поторопился

Share this post


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

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


rutracker.org
kinozal.tv

Генерируем пользовательский айписет:


/opt/zapret/ipset/get_user.sh

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


/opt/etc/init.d/S99zapret start

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


Checking iptable_raw.ko kernel module
iptable_raw.ko loaded
Restoring ipset
Adding iptables rule
Starting anti-zapret: zapret.

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

Не работает. 
Провайдер Фаннет телеком.


~ # /opt/etc/init.d/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: ~ #

Edited by Andrey64

Share this post


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

Покажите вывод blockcheck

А как скопировать текст из blockcheck?
Ctrl+С и правая кнопка мыши, не получается

Share this post


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

А как скопировать текст из blockcheck?
Ctrl+С и правая кнопка мыши, не получается

blockcheck --console --no-report

В cmd запустить (я так понял по виндой запускается).

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

Share this post


Link to post
Share on other sites

Да под виндой. Запускаю blockcheck-0.0.9.6.exe
Я правильно понял. После окончания работы ввести  

blockcheck --console --no-report
Edited by Andrey64

Share this post


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

Да под виндой. Запускаю blockcheck-0.0.9.6.exe
Я правильно понял. После окончания работы ввести  


blockcheck --console --no-report

В командной строке (cmd) находясь в папке с исполняемым файлом запустите следующее:

blockcheck-0.0.9.6.exe --console --no-report

 

Share this post


Link to post
Share on other sites
В 21.10.2018 в 16:57, Andrey64 сказал:

Покажите вывод blockcheck 

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

BlockCheck v0.0.9.6

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

 

Проверка работоспособности IPv6: IPv6 недоступен.

[О] Тестируем IPv4 DNS

        Через системный DNS:  ['92.43.0.7', '92.43.0.7', '92.43.0.7', '92.43.0.7', '92.43.0.7', '92.43.0.7']

        Через Google DNS: ['104.20.134.45', 404.20.135.45', 404.24.10.70', 404.24.11.70', 484.173.136.161', '195.8.215.136', 495.82.146.214', '5.178.68.100']

        Через Google API: ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', 484.173.136.161', '195.8.215.136', '195.82.146.214', '5.178.68.100']

        Несуществующий DNS не вернул адресов (это не ошибка)

[] DNS-записи подменяются

[] DNS не перенаправляется

 

[О] Тестируем HTTP (по настоящим IP-адресам сайтов)

         Открываем http://а.putinhuylo.сот/

[] Сайт открывается

         Открываем http://rutracker.org/forum/index.php

[] Сайт не открывается, пробуем через прокси

[] Сайт открывается через прокси

         Открываем http://pbooru.com/index.php?page=post&s=view&id=303026

[] Сайт не открывается, пробуем через прокси

[] Сайт открывается через прокси

         Открываем http://furry.booru.org/index.php?page=post&s=view&id=111173

[] Сайт не открывается, пробуем через прокси

[] Сайт не открывается через прокси

        Проверяем доступность через isup.me

[] Сайт доступен, проблемы только у нас

         Открываем http://pbooru.сот/

[] Сайт не открывается, пробуем через прокси

[] Сайт открывается через прокси

         Открываем http://furry.booru.org/

[] Сайт не открывается, пробуем через прокси

[] Сайт не открывается через прокси

       Проверяем доступность через isup.me

[] Сайт доступен, проблемы только у нас

 

[О] Тестируем HTTPS

         Открываем https://rutracker.org/forum/index.php

[] Сайт не открывается

         Открываем https://www.dailymotion.сот/

[] Сайт не открывается

         Открываем https://e621.net/

[] Сайт не открывается

         Открываем https://lolibooru.тое/

[] Сайт не открывается

 

[О] Тестируем обход DPI

       Пробуем способ «перенос строки в заголовках в UNIX-стиле» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «фрагментирование заголовка» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «перенос строки перед GET» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «табуляция в конце домена» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «дополнительный пробел после GET» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «необычный порядок заголовков» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «точка в конце домена» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «заголовок host вместо Host» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «фрагментирование заголовка, host и отсутствие пробела одновременно» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «заголовок host вместо Host» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на pbooru.com

[] Ошибка: timeout('timed out',)

       Пробуем способ «перенос строки в заголовках в UNIX-стиле» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «фрагментирование заголовка» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «перенос строки перед GET» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «табуляция в конце домена» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «дополнительный пробел после GET» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «необычный порядок заголовков» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «точка в конце домена» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «заголовок host вместо Host» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «фрагментирование заголовка, host и отсутствие пробела одновременно» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «заголовок host вместо Host» на rutracker.org

[] Ошибка: timeout('timed out',)

       Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на rutracker.org

[] Ошибка: timeout('timed out',)

 

[!] Результат:

[] Ваш провайдер подменяет DNS-записи, но не перенаправляет сторонние IPv4 DNS-серверы на свой.

Вам поможет смена DNS, например, на Яндекс.DNS 77.88.8.8 или Google DNS 8.8.8.8 и 8.8.4.4.

[] Ваш провайдер полностью блокирует доступ к HTTPS-сайтам из реестра.

[] Ваш провайдер блокирует по IP-адресу. Используйте любой способ обхода блокировок.

 

Share this post


Link to post
Share on other sites

Ваш провайдер не применяет DPI, а тупо блокирует по IP запрещенные сайты. Здесь помогут только tor, proxy или vpn. Ни antizapret ни goodbyedpi здесь работать не будут.

Share this post


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

Ваш провайдер не применяет DPI, а тупо блокирует по IP запрещенные сайты. Здесь помогут только tor, proxy или vpn. Ни antizapret ни goodbyedpi здесь работать не будут.

Понял. Спасибо.
vpn пробовал тормозит жутко.
proxy не пробовал

Share this post


Link to post
Share on other sites
Цитата

Через Google DNS: ['104.20.134.45', 404.20.135.45', 404.24.10.70', 404.24.11.70', 484.173.136.161', '195.8.215.136', 495.82.146.214', '5.178.68.100']

Однако забавно. Вы руками точно ничего не правили в выводе blockcheck?

Share this post


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

Однако забавно. Вы руками точно ничего не правили в выводе blockcheck?

Сейчас еще раз запущу

Share this post


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

Однако забавно. Вы руками точно ничего не правили в выводе blockcheck?

 

скан.jpg

Share this post


Link to post
Share on other sites

Подскажите, каким методом лучше сделать обход, если на клиентской машине получен такой результат blockcheck, там, конечно, написано по-русски про tor и vpn, но хотелось уточнить, т.к. сейчас использую dnscrypt-proxy с набором серверов opennic для резолва зоны .lib (при запуске blockcheck всё это отключал), но в ней не все нужные сайты имеются.

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

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

Проверка работоспособности IPv6: IPv6 недоступен.
[O] Тестируем IPv4 DNS
    Через системный DNS:     ['62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197']
    Через 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', '5.178.68.100']
    Через 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', '5.178.68.100']
    Несуществующий DNS не вернул адресов (это не ошибка)
[☠] DNS-записи подменяются
[✓] DNS не перенаправляется

[O] Тестируем HTTP (по настоящим IP-адресам сайтов)
    Открываем http://pbooru.com/index.php?page=post&s=view&id=303026
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем http://rutracker.org/forum/index.php
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем http://furry.booru.org/index.php?page=post&s=view&id=111173
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Считаем заблокированным.
    Проверяем доступность через isup.me
[☠] Сайт доступен, проблемы только у нас
    Открываем http://furry.booru.org/
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Считаем заблокированным.
    Проверяем доступность через isup.me
[☠] Сайт доступен, проблемы только у нас
    Открываем http://a.putinhuylo.com/
[✓] Сайт открывается
    Открываем http://pbooru.com/
[✓] Сайт открывается

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

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

[!] Результат:
[⚠] Ваш провайдер подменяет DNS-записи, но не перенаправляет сторонние IPv4 DNS-серверы на свой.
 Вам поможет смена DNS, например, на Яндекс.DNS 77.88.8.8 или Google DNS 8.8.8.8 и 8.8.4.4.
[⚠] Ваш провайдер полностью блокирует доступ к HTTPS-сайтам из реестра.
[⚠] У вашего провайдера "полный" DPI. Он отслеживает ссылки даже внутри прокси, поэтому вам следует использовать любое шифрованное соединение, например, VPN или Tor.

 

 

Share this post


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

Подскажите, каким методом лучше сделать обход, если на клиентской машине получен такой результат blockcheck, там, конечно, написано по-русски про tor и vpn, но хотелось уточнить, т.к. сейчас использую dnscrypt-proxy с набором серверов opennic для резолва зоны .lib (при запуске blockcheck всё это отключал), но в ней не все нужные сайты имеются.

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

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

Проверка работоспособности IPv6: IPv6 недоступен.
[O] Тестируем IPv4 DNS
    Через системный DNS:     ['62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.196', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197', '62.33.207.197']
    Через 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', '5.178.68.100']
    Через 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', '5.178.68.100']
    Несуществующий DNS не вернул адресов (это не ошибка)
[☠] DNS-записи подменяются
[✓] DNS не перенаправляется

[O] Тестируем HTTP (по настоящим IP-адресам сайтов)
    Открываем http://pbooru.com/index.php?page=post&s=view&id=303026
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем http://rutracker.org/forum/index.php
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем http://furry.booru.org/index.php?page=post&s=view&id=111173
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Считаем заблокированным.
    Проверяем доступность через isup.me
[☠] Сайт доступен, проблемы только у нас
    Открываем http://furry.booru.org/
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Считаем заблокированным.
    Проверяем доступность через isup.me
[☠] Сайт доступен, проблемы только у нас
    Открываем http://a.putinhuylo.com/
[✓] Сайт открывается
    Открываем http://pbooru.com/
[✓] Сайт открывается

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

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

[!] Результат:
[⚠] Ваш провайдер подменяет DNS-записи, но не перенаправляет сторонние IPv4 DNS-серверы на свой.
 Вам поможет смена DNS, например, на Яндекс.DNS 77.88.8.8 или Google DNS 8.8.8.8 и 8.8.4.4.
[⚠] Ваш провайдер полностью блокирует доступ к HTTPS-сайтам из реестра.
[⚠] У вашего провайдера "полный" DPI. Он отслеживает ссылки даже внутри прокси, поэтому вам следует использовать любое шифрованное соединение, например, VPN или Tor.

 

 

У вас должен заработать antizapret причем вместе с dnscrypt-proxy. Единственное что если нужны конкретные сайты и их немного то лучше их вписать в zapret-hosts-user.txt, а не тащить весь реестр целиком - РКН банит домены которые иногда ресолвятся в чудные вещи.

Share this post


Link to post
Share on other sites
В ‎10‎.‎11‎.‎2018 в 14:54, Михаил Лукьянов сказал:

У вас должен заработать antizapret причем вместе с dnscrypt-proxy. Единственное что если нужны конкретные сайты и их немного то лучше их вписать в zapret-hosts-user.txt, а не тащить весь реестр целиком - РКН банит домены которые иногда ресолвятся в чудные вещи.

Хорошо бы, но не взлетает.

Запускается нормально:

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

~ # /opt/etc/init.d/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.

~ # iptables -t raw -nvL
Chain PREROUTING (policy ACCEPT 97 packets, 10520 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 flags:0x12/0x12 match-set zapret src NFQUEUE num 200 bypass
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 STRING match  "|0d0a4c6f636174696f6e3a20687474703a2f2f667a3133392e74746b2e7275|" ALGO name bm FROM 40 TO 200
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:80 STRING match  "|0d0a4c6f636174696f6e3a20687474703a2f2f626c6f636b65642e6d74732e7275|" ALGO name bm FROM 40 TO 200

Chain OUTPUT (policy ACCEPT 56 packets, 16952 bytes)
 pkts bytes target     prot opt in     out     source               destination

 

Профиль выбран rt, в файл zapret-host-user.txt добавил пару сайтов, как тут написано, но при попытке на них зайти, сначала заглушка прилетала, указал её в конфиге, прилетать перестала, но сайты всё равно не открываются:

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

Не удается открыть эту страницу

Попробуйте следующее

The connection to the website was reset.

Error Code: INET_E_DOWNLOAD_FAILURE

 

Пробовал другие профили (в том числе те, которые используют tpws, сначала выходила ошибка, т.к. adduser из Entware не поддерживает такой синтаксис, заменил ключами, пишет что неизвестная группа nogroup. С группой конечно ерунда, добавил nobody, но при запуске с профилем domru, ругается на правила:
 

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

~ # /opt/etc/init.d/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
net.ipv4.conf.br0.route_localnet = 1
iptables: Bad rule (does a matching rule exist in that chain?).
iptables: Bad rule (does a matching rule exist in that chain?).
Starting anti-zapret: zapret.

В профиле rt пробовал менять размер пакета, хотя, судя по моим результатам blockcheck, это и не должно было помочь.

tcpdump по команде 

tcpdump -vi br0 host 195.82.146.214 | grep "HTTP, length" 

не ловит вообще ничего

tcpdump -vi br0 host 195.82.146.214

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

~ # tcpdump -vi br0 host 195.82.146.214
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:48:23.413901 IP (tos 0x0, ttl 128, id 26605, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.1.10.53183 > rutracker.org.http: Flags [ S ], cksum 0xaec8 (correct), seq 3302757248, win 65535, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
13:48:23.456357 IP (tos 0x0, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 48)
    rutracker.org.http > 192.168.1.10.53183: Flags [S.], cksum 0xa8d0 (correct), seq 1996596299, ack 3302757249, win 5, options [mss 1360,nop,wscale 8], length 0
13:48:23.457831 IP (tos 0x0, ttl 128, id 26606, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.10.53183 > rutracker.org.http: Flags [.], cksum 0xd03d (correct), ack 1, win 1024, length 0
13:48:23.458663 IP (tos 0x0, ttl 128, id 26607, offset 0, flags [DF], proto TCP (6), length 45)
    192.168.1.10.53183 > rutracker.org.http: Flags [.], cksum 0x05d3 (correct), seq 1:6, ack 1, win 1024, length 5: HTTP, length: 5
        GET /[!http]
13:48:23.500667 IP (tos 0x0, ttl 55, id 10350, offset 0, flags [DF], proto TCP (6), length 40)
    rutracker.org.http > 192.168.1.10.53183: Flags [.], cksum 0xd3fe (correct), ack 6, win 58, length 0
13:48:23.501903 IP (tos 0x0, ttl 128, id 26608, offset 0, flags [DF], proto TCP (6), length 426)
    192.168.1.10.53183 > rutracker.org.http: Flags [P.], cksum 0x02ac (correct), seq 6:392, ack 1, win 1024, length 386: HTTP
13:48:23.924592 IP (tos 0x0, ttl 128, id 26609, offset 0, flags [DF], proto TCP (6), length 426)
    192.168.1.10.53183 > rutracker.org.http: Flags [P.], cksum 0x02ac (correct), seq 6:392, ack 1, win 1024, length 386: HTTP
13:48:23.966615 IP (tos 0x0, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    rutracker.org.http > 192.168.1.10.53183: Flags [R], cksum 0xaca7 (correct), seq 1996596300, win 0, length 0

Вот на этом пока и остановился. Нужно будет подбирать правила под свои условия, раз готовые наборы не работают.

Edited by Albram

Share this post


Link to post
Share on other sites

Это потому-что работоспособность tpws никто не проверял. Я переписал скрипт, перекачайте с гитхаба. Вместо перечня провайдеров я оставил выбор из двух действий: fragmentation и modification. Вам нужно выбрать modification и корректно указать внутренний интерфейс SLAVE_ETH. Т.к. скрипт модифицирует таблицу nat вам нужно создать перехватчик для ndm в исполняемом файле /opt/etc/ndm/netfilter.d/tpws.sh следующего содержания:

#!/opt/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "nat" ] && exit 0 # check the table name
iptables -t nat -I PREROUTING -p tcp --dport 80 -i br0 -m set --match-set zapret dst -j DNAT --to 127.0.0.1:1188
iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner ! --uid-owner nobody -m set --match-set zapret dst -j DNAT --to 127.0.0.1:1188
/opt/bin/logger "tpws redirected http rule created for zapret via netfilter hook"

Содержание правил конечно должно совпадать с правилами из секции modification скрипта.

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

Share this post


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

Я переписал скрипт, перекачайте с гитхаба. Вместо перечня провайдеров я оставил выбор из двух действий: fragmentation и modification.

Спасибо!

Заработало. И без перехвата ndm.

Share this post


Link to post
Share on other sites
Только что, Albram сказал:

Спасибо!

Заработало. И без перехвата ndm.

ndm периодически сбрасывает таблицу nat, спустя некоторое время без перехватчика работать перестанет.

Share this post


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

ndm периодически сбрасывает таблицу nat, спустя некоторое время без перехватчика работать перестанет.

Ага, я в курсе этого, добавлю перехват.

Share this post


Link to post
Share on other sites

Скопировал в секцию modification скрипта правило для https из секции fragmentation.

Имеет смысл, наверное, добавить параметр https = yes | no по которому будет добавляться или не добавляться это правило.

 

P.S.: Кстати, в таком виде (с выбором действия, а не провайдера) скрипт выглядит значительно лучше.

Edited by Albram

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   0 members

    No registered users viewing this page.

×
×
  • Create New...