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 9
  • Upvote 4

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

Добавил комбинированный режим работы tpws+nfqws. Рекомендую снести старую версию и поставить через git как написано в шапке, т.к. изменения вышли за пределы одного файла. Обновляться через git pull гораздо проще чем руками новые файлы перекачивать.

  • Thanks 1

Share this post


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

В скрипте после закачки нужно включать опцию с tpws (modification) повторно! И после этого нужно запустить /opt/zapret/ipset/get_user.sh чтобы сгенерировался ipset для IPv6. Вроде всё - нужно  проверять, а то у меня чистого эксперимента не получается.

После запуска get_user.sh
 

~ # /opt/zapret/ipset/get_user.sh
Adding to ipset zapret6 (hash:ip) : /opt/zapret/ipset/zapret-ip-user6.txt
ipset v7.1: Error in line 1: Syntax error: cannot parse This query has been locally blocked: resolving to IPv6 address failed
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip-user.txt
ipset v7.1: Error in line 1: Syntax error: cannot parse This query has been locally blocked: resolving to IPv4 address failed
Adding to ipset ipban (hash:ip) : /opt/zapret/ipset/zapret-ip-user-ipban.txt

 

Share this post


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

Если руками выполнить:


dig AAAA +short +time=8 +tries=2 rutracker.org

Тоже самое скажет?

Руками нормально:
 

~ # dig AAAA +short +time=8 +tries=2 st.kinozal.tv
2606:4700:30::681b:8d44
2606:4700:30::681b:8c44

Проблема начинается после "| sort -u …"

UPD: ошибку вызывала строка static2.rutracker.org в файле zapret-host-user.txt

 

Edited by Albram

Share this post


Link to post
Share on other sites

Можно все txt файлики в папке zapret/ipset обнулить? Оставить нетронутым только zapret-hosts-user.txt . Похоже парсеру там не нравится что-то.

Share this post


Link to post
Share on other sites
/opt/zapret # dig A +short +time=8 +tries=2 static2.rutracker.org
;; Warning: Client COOKIE mismatch
/opt/zapret # dig AAAA +short +time=8 +tries=2 static2.rutracker.org
;; Warning: Client COOKIE mismatch

Ну да, нет там ни IPv4  ни IPv6 - чёт я не понял.

UPD. Видимо временные проблемы - сейчас всё ушло.

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

Share this post


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

Ну да, нет там ни IPv4  ни IPv6 - чёт я не понял.

Разгадка у меня оказалась простая - этот хост был в blacklist-domains.txt в dnscrypt )

Share this post


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

Разгадка у меня оказалась простая - этот хост был в blacklist-domains.txt в dnscrypt )

Да в любом случае я там сначала лишнюю проверку убрал в выводе dig AAAA, теперь вернул обратно. 

Share this post


Link to post
Share on other sites

В скрипте для перехватчика ndm заменил действие I на A, иначе не работало, и добавил проверку на существующие правила и ключ -w по совету @Александр Рыжов

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

#!/opt/bin/sh
[ "$type" == "iptables" ] && exit 0
[ "$table" != "mangle" ] && exit 0

ip6tables -t mangle -C PREROUTING -w -p tcp --dport 80 -i br0 -m set --match-set zapret6 dst -j TPROXY --tproxy-mark 0x9/0x9 --on-port 1188 --on-ip ::1 2>/dev/null ||
ip6tables -t mangle -A PREROUTING -w -p tcp --dport 80 -i br0 -m set --match-set zapret6 dst -j TPROXY --tproxy-mark 0x9/0x9 --on-port 1188 --on-ip ::1
ip6tables -t mangle -N DIVERT
ip6tables -t mangle -C DIVERT -w -j MARK --set-mark 9 2>/dev/null || ip6tables -t mangle -A DIVERT -w -j MARK --set-mark 9
ip6tables -t mangle -C DIVERT -w -j ACCEPT 2>/dev/null || ip6tables -t mangle -A DIVERT -w -j ACCEPT
ip6tables -t mangle -C PREROUTING -w -p tcp -m socket  -j DIVERT 2>/dev/null || ip6tables -t mangle -A PREROUTING -w -p tcp -m socket  -j DIVERT

/opt/bin/logger "ipv6 http rule created for zapret via netfilter hook"

 

От "ругани" в логе об уже существующей цепочке избавился заменив в скрипте перехватчика

ip6tables -t mangle -N DIVERT

на

ip6tables -t mangle -C DIVERT -w -j ACCEPT 2>/dev/null || ip6tables -t mangle -N DIVERT -w

Костыль, конечно, но красивее пока не получилось.

Теперь в логе появляются такие строки, но реже чем были про уже существующую цепочку:

Скрытый текст
Апр 6 10:33:38
root
ipv6 http rule created for zapret via netfilter hook
Апр 6 10:33:38
root
ipv6 http rule created for zapret via netfilter hook
Апр 6 10:33:38
root
ipv6 http rule created for zapret via netfilter hook
Апр 6 10:40:07
root
Core::Syslog: last message repeated 169 times.
Апр 6 10:40:07
ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/ipv6rules: ip6tables: No chain/target/match by that name.
Апр 6 10:40:07
ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/ipv6rules: ip6tables: No chain/target/match by that name.
Апр 6 10:40:07
ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/ipv6rules: ip6tables v1.4.21: Couldn't load target `DIVERT':No such file or directory.
Апр 6 10:40:07
ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/ipv6rules: Try `ip6tables -h' or 'ip6tables --help' for more information.
Апр 6 10:40:07
root
ipv6 http rule created for zapret via netfilter hook
Апр 6 10:40:07
root
ipv6 http rule created for zapret via netfilter hook

Ещё осталось https ipv6 завернуть в тор.

Кстати, в основном скрипте в секции modification нет правила iptables для https ни для start, ни для stop. Добавил у себя:

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

start)

….

 iptables -t nat -C PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 8888 2>/dev/null ||
     iptables -t nat -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 8888
 

stop)

...

 ! iptables -t nat -D PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j REDIRECT --to-port 8888 2>/dev/null

 

Edited by Albram

Share this post


Link to post
Share on other sites
~ # /opt/etc/cron.daily/get_antizapret.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4024k  100 4024k    0     0  4797k      0 --:--:-- --:--:-- --:--:-- 4920k
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip.txt
ipset v7.1: Error in line 262145: Hash is full, cannot add more elements

 

Share this post


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

ipset v7.1: Error in line 262145: Hash is full, cannot add more elements

Вообще так быть не должно, но покажите на всякий случай 

ipset -L | wc -l

В норме он должен быть в районе 300 000. Если у вас больше 500 000 (а это не норма) то в файле /opt/zapret/ipset/create_ipset.sh нужно в строке

IPSET_OPT="hashsize 131072 maxelem 524288"

524288 поменять на большее значение.

Попробуйте ещё так:

echo > /opt/zapret/ipset/zapret-ip-user.txt 
echo > /opt/zapret/ipset/zapret-ip.txt 
/opt/zapret/ipset/get_antizapret.sh

 

В 06.04.2019 в 00:48, Albram сказал:

Кстати, в основном скрипте в секции modification нет правила iptables для https ни для start, ни для stop.

На внешние программы каждый перенаправляет уже сам как хочет. Кто-то на tor, кто-то на прокси или VPN.

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

Share this post


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

Вообще так быть не должно, но покажите на всякий случай 


ipset -L | wc -l

 

~ # ipset -L | wc -l
262261

 

~ # echo > /opt/zapret/ipset/zapret-ip-user.txt
~ # echo > /opt/zapret/ipset/zapret-ip.txt
~ # /opt/zapret/ipset/get_antizapret.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4034k  100 4034k    0     0  4702k      0 --:--:-- --:--:-- --:--:-- 4872k
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip.txt
ipset v7.1: Error in line 262145: Hash is full, cannot add more elements
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip-user.txt

Размер хэша увеличивал, все текстовые списки удалял. Не помогает :(
 

Edited by stakp

Share this post


Link to post
Share on other sites
В 09.04.2019 в 12:57, stakp сказал:

Размер хэша увеличивал, все текстовые списки удалял. Не помогает

hashsize 262144 вместо 131072 пробовали?

P.S. 

ipset v7.1: Error in line 262145: Hash is full, cannot add more elements

Вроде как намекает что hashsize нужен ещё больше - нужно опытным путём проверять.

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

Share this post


Link to post
Share on other sites

при запуске в combined или modification режиме выдает вот такое сообщение 

ip: RTNETLINK answers: Address family not supported by protocol

~ # /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
net.ipv4.conf.br0.route_localnet = 1
ip: RTNETLINK answers: Address family not supported by protocol
Starting anti-zapret: zapret.

Из за чего это? 

Ps. у провайдера нет ipv6. 
 

Share this post


Link to post
Share on other sites

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

cd /opt/zapret/ && git stash && git pull

 

Share this post


Link to post
Share on other sites

Обнаружилась проблема с открытием кинозала при включенных правилах для 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

 

 

Share this post


Link to post
Share on other sites
On 4/16/2019 at 1:43 AM, Михаил Лукьянов said:

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


cd /opt/zapret/ && git stash && git pull

 

В моем случае это не помогло. Такое же сообщение при запуске получаю.

Так и не получается добиться стабильной работы. Вчера после перезагрузки роутера так и не заработал tor. В системном логе tor пишет предупреждение о не совпадении времени. Может быть из за этого. Https открывает не все.

Ps. Подшаманил автозапуск для заполнения zapret. Как выяснилось при использовании redsocks необходимо чтобы множество zapret уже было создано/заполнено до его запуска. Подцепил tor, похоже на то, что с моим провайдером иначе не получится.

Edited by Dima Babanakov
Ps.

Share this post


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

hashsize 262144 вместо 131072 пробовали?

P.S. 


ipset v7.1: Error in line 262145: Hash is full, cannot add more elements

Вроде как намекает что hashsize нужен ещё больше - нужно опытным путём проверять.

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

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

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

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

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

 

Edited by stakp
добавил

Share this post


Link to post
Share on other sites
В 17.04.2019 в 06:10, Dima Babanakov сказал:

В моем случае это не помогло. Такое же сообщение при запуске получаю.

Так и не получается добиться стабильной работы. Вчера после перезагрузки роутера так и не заработал tor. В системном логе tor пишет предупреждение о не совпадении времени. Может быть из за этого. Https открывает не все.

Ps. Подшаманил автозапуск для заполнения zapret. Как выяснилось при использовании redsocks необходимо чтобы множество zapret уже было создано/заполнено до его запуска. Подцепил tor, похоже на то, что с моим провайдером иначе не получится.

Получится или нет для HTTP - можно сказать только после лога blockcheck. C HTTPS только пробовать. Сообщение "ip: RTNETLINK answers: Address family not supported by protocol" не останавливает и не влияет на работу скрипта без IPv6. На всякий случай покажите вывод:

ip a | grep inet6
cat /proc/net/if_inet6

Tor  да долго стартует, и только после того как время на роутере синхронизируется по ntp.

Share this post


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

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

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

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

  Скрыть содержимое

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

 

Сделайте так:

ipset flush zapret
ipset create zapretswap hash:ip family inet hashsize 262144 maxelem 524288
ipset swap zapretswap zapret
/opt/etc/cron.daily/get_antizapret.sh

 

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

Share this post


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

Сделайте так:

 

BusyBox v1.30.1 () built-in shell (ash)

~ # ipset create zapretswap hash:ip family inet hashsize 262144 maxelem 524288
~ # ipset swap zapretswap zapret
ipset v7.1: The sets cannot be swapped: their type does not match
~ # /opt/etc/cron.daily/get_antizapret.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4373k  100 4373k    0     0  3462k      0  0:00:01  0:00:01 --:--:-- 3747k
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip.txt
ipset v7.1: Error in line 262145: Hash is full, cannot add more elements
~ #

Уже пробовал переставить пакет ipset со всеми зависимостями.

Share this post


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

 


BusyBox v1.30.1 () built-in shell (ash)

~ # ipset create zapretswap hash:ip family inet hashsize 262144 maxelem 524288
~ # ipset swap zapretswap zapret
ipset v7.1: The sets cannot be swapped: their type does not match
~ # /opt/etc/cron.daily/get_antizapret.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4373k  100 4373k    0     0  3462k      0  0:00:01  0:00:01 --:--:-- 3747k
Adding to ipset zapret (hash:ip) : /opt/zapret/ipset/zapret-ip.txt
ipset v7.1: Error in line 262145: Hash is full, cannot add more elements
~ #

Уже пробовал переставить пакет ipset со всеми зависимостями.

Пардон забыл один момент:

ipset flush zapret
ipset swap zapretswap zapret
/opt/etc/cron.daily/get_antizapret.sh

 

Share this post


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

Получится или нет для HTTP - можно сказать только после лога blockcheck. C HTTPS только пробовать. Сообщение "ip: RTNETLINK answers: Address family not supported by protocol" не останавливает и не влияет на работу скрипта без IPv6. На всякий случай покажите вывод:


ip a | grep inet6
cat /proc/net/if_inet6

Tor  да долго стартует, и только после того как время на роутере синхронизируется по ntp.

Вчера настроил тунель SixtoFour, думал поможет, но вывод при запуске zapret не изменился . Вывод с включенным тунелем

Spoiler

~ # ip a | grep inet6
    inet6 ::1/128 scope host 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfc/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfd/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb/128 scope global 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 2002:6dab:11aa::6dab:11aa/128 scope global 
    inet6 fe80::a01:1e01/64 scope link 
    inet6 fe80::c0a8:101/64 scope link 
    inet6 fe80::4e2f:7db4/64 scope link 
~ # cat /proc/net/if_inet6
20026dab11aa000052ff20fffe116dfb 16 80 00 80      br0
fe80000000000000000000000a011e01 18 40 20 80 tun6to4_1
00000000000000000000000000000001 01 80 10 80       lo
fe8000000000000052ff20fffe116dfd 0b 40 20 80     rai0
fe8000000000000052ff20fffe116dfc 09 40 20 80     eth3
20026dab11aa0000000000006dab11aa 18 80 00 80 tun6to4_1
fe80000000000000000000004e2f7db4 18 40 20 80 tun6to4_1
fe8000000000000000000000c0a80101 18 40 20 80 tun6to4_1
fe8000000000000052ff20fffe116dfb 17 40 20 80      br1
fe8000000000000052ff20fffe116dfb 16 40 20 80      br0
fe8000000000000052ff20fffe116dfb 15 40 20 80   eth2.3
fe8000000000000052ff20fffe116dfb 14 40 20 80   eth2.1
fe8000000000000052ff20fffe116dfb 08 40 20 80     eth2
~ # 


 

Edited by Dima Babanakov

Share this post


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

Пардон забыл один момент:


ipset flush zapret
ipset swap zapretswap zapret
/opt/etc/cron.daily/get_antizapret.sh

 

То же самое :(

~ # ipset flush zapret
~ # ipset swap zapretswap zapret
ipset v7.1: The sets cannot be swapped: their type does not match


 

Share this post


Link to post
Share on other sites

Остановите zapret:

/opt/etc/init.d/S99zapret stop

Руками в файле /opt/zapret/ipset/zapret.ipset проставьте нужные значение и перезагрузите роутер. Ядро держит этот ipset, не даёт так просто поменять.

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

Share this post


Link to post
Share on other sites

 

50 минут назад, Dima Babanakov сказал:

Вчера настроил тунель SixtoFour, думал поможет, но вывод при запуске zapret не изменился . Вывод с включенным тунелем

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

~ # ip a | grep inet6
    inet6 ::1/128 scope host 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfc/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfd/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 2002:6dab:11aa:0:52ff:20ff:fe11:6dfb/128 scope global 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 fe80::52ff:20ff:fe11:6dfb/64 scope link 
    inet6 2002:6dab:11aa::6dab:11aa/128 scope global 
    inet6 fe80::a01:1e01/64 scope link 
    inet6 fe80::c0a8:101/64 scope link 
    inet6 fe80::4e2f:7db4/64 scope link 
~ # cat /proc/net/if_inet6
20026dab11aa000052ff20fffe116dfb 16 80 00 80      br0
fe80000000000000000000000a011e01 18 40 20 80 tun6to4_1
00000000000000000000000000000001 01 80 10 80       lo
fe8000000000000052ff20fffe116dfd 0b 40 20 80     rai0
fe8000000000000052ff20fffe116dfc 09 40 20 80     eth3
20026dab11aa0000000000006dab11aa 18 80 00 80 tun6to4_1
fe80000000000000000000004e2f7db4 18 40 20 80 tun6to4_1
fe8000000000000000000000c0a80101 18 40 20 80 tun6to4_1
fe8000000000000052ff20fffe116dfb 17 40 20 80      br1
fe8000000000000052ff20fffe116dfb 16 40 20 80      br0
fe8000000000000052ff20fffe116dfb 15 40 20 80   eth2.3
fe8000000000000052ff20fffe116dfb 14 40 20 80   eth2.1
fe8000000000000052ff20fffe116dfb 08 40 20 80     eth2
~ # 


 

Давайте пошагово смотреть (тунель пусть работает):

/opt/etc/init.d/S99zapret stop
ip -6 route add local default dev lo table 99
ip -6 rule add from all fwmark 0x9 lookup 99
ip -6 ru
ip -6 ro sh ta al | grep 99
/opt/etc/init.d/S99zapret stop

На каком шаге спотыкается?

Share this post


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

 

Давайте пошагово смотреть (тунель пусть работает):


/opt/etc/init.d/S99zapret stop
ip -6 route add local default dev lo table 99
ip -6 rule add from all fwmark 0x9 lookup 99
ip -6 ru
ip -6 ro sh ta al | grep 99
/opt/etc/init.d/S99zapret stop

На каком шаге спотыкается?

~ # /opt/etc/init.d/S99zapret stop
Saving ipset
Deleting iptables rule
net.ipv4.conf.br0.route_localnet = 0
Stopping anti-zapret: zapret.
~ # ip -6 route add local default dev lo table 99
ip: RTNETLINK answers: File exists
~ # ip -6 rule add from all fwmark 0x9 lookup 99
ip: RTNETLINK answers: Address family not supported by protocol
~ # ip -6 ru
~ # ip -6 ro sh ta al | grep 99


Ps Мне кажется что не совпадают ключи из за разницы в версиях ip.

Может надо пакет дополнительно установить ip-full?

Не помогла установка пакета.

Edited by Dima Babanakov

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...