Zapret: обсуждение

Проверил. Отлично работает.
Спс.

Почему в вашем конфиге для NFQWS_OPT_DESYNC= нет tls_client_www_google_com, а для NFQWS_OPT_DESYNC_HTTP6 и NFQWS_OPT_DESYNC_HTTPS6 есть? И почему к HTTP вообще применяется TLS?

Потому что на моем провайдере и так работает по ipv4, но не работает по ipv6.

Оно не применяется. Сделано, чтобы сократить количество инстансов из-за разных параметров

NFQWS_OPT_DESYNC="--hostlist=/opt/zapret-misc/list-youtube.txt --dpi-desync=fake,split2 --dpi-desync-fooling=datanoack --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --new --dpi-desync=fake,split2 --dpi-desync-fooling=datanoack"

Так тоже все работает. Без спец инстансов. Так даже лучше

Хочу уточнить по настройкам роутера (в моем случае это ноутбук с дебиан, установленный между интернетом и домашним роутером).

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j NFQUEUE --queue-num 0
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j NFQUEUE --queue-num 0

/opt/zapret/nfqws --qnum=0 --user=zapret --debug --hostlist=/opt/zapret/list-youtube.txt --dpi-desync=дальше_что_то_там

googlevideo.com
youtubei.googleapis.com
i.ytimg.com

Второй день уже пытаюсь запустить ютуб но не работает ничего. (Точнее работает все прекрасно, кроме собственно видео, которое просто не стартует.)

До этого жил с byedpi, но 3 дня назад оный перестал помогать.

nfqws обычно вешается на POSTROUTING
а найти за вас стратегию - никто не найдет

Еще вопрос, это нормально что такие надписи в консоли?:
Hostlist check for rr7---sn-axq7sn7z.googlevideo.com : negative
Hostlist check for googlevideo.com : positive

Почему адрес кэша гугла negative ?

У меня zapret пока работает. Я скопипастил пример у ValdikSS и правила для nftables у вас. Но это ПОКА работает. И GDPI и byedpi периодически отваливаются у людей и им приходится искать новые пути. Поэтому я просто стараюсь понять локику работы zapret. Чтобы не быть похожим на мартышку, которая случайно лупит по клавишам печатной машинке в попытке написать “Войну и мир”.

Скинь свои правила для nftables. Ну и строчку для nfqws тоже

Это не GDPI и byeDPI отваливаются, а правила меняются, запрет точно так же перестает работать и точно так же приходится искать новые пути.
Чтобы не мудохаться с nftables оставь как есть что там тебе скрипт установки сделал. Вместо этого поставь squid (благо это делается в несколько строчек) и с клиентов тыкайся в прокси сервер.

Потому что в листе нет домена 3 уровня, но есть 2-го.
Поиск идет с максимального уровня до минимального

Здесь только понимание как оно работает решает. Иначе только методом тыка с обычно хреновым результатом

Я думал о том, чтобы сделать прокси сервер, потому что это делает пакеты как бы исходящими от компьютера с nqws. В комментариях прочитал, что это полезно для опции --dpi-desync-fooling=datanoack.

Но вот на правила бы посмотрел, потому что скрипт установки я не запускал - просто скачал бинарник и положил в папку /opt/zapret.

Прокси это только для неумех совсем.
Нет особой разницы настроить для проходящего или исходящего трафика.
Правила чуть могут отличаться , и все. И сам роутер надо уметь настроить.
прокси - это нежелательное явление. не все проги его понимают, надо везде прописывать
zapret создавался для работы на шлюзе

Как это пофиксить?

Это не надо фиксить. Это нормальное поведение.

i.like.beer.com будет проверяться по

i.like.beer.com
like.beer.com
beer.com
com

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

всякие фишки типа *.beer.com или *eer.com не работают

согласен. В будущем разберемся с этой datanoack если потребуется

Зачем гонять весь трафик через запрет, если по сути нужен только ютуб. С таким же успехом можно весь трафик в впн заворачивать. И для работы на шлюзе не подходит т.к. шлюз должен быть уровня “настроил и забыл”, а тут через день нужно лезть что-то править.

Не совсем. Через nfqws прогоняется лишь мизерная доля трафика при правильной настройке tables.

Через день надо править обычно если стратегия неустойчива.
Надо собирать все, что работало каждый день, и искать общий знаменатель.
Или гонять блокчек с несколькими попытками. Но это только поможет, если балансировка идет оперативно. Если все меняется с интервалом день - придется собирать варианты и понимать что происходит, искать общий рабочий вариант.

Я крайне редко на своих провайдерах менял стратегии. За годы ну может раза 3.
Неустойчивость с большим интервалом тоже была. То простой сплит работает, то лишь более сложный крокодил. Скорее всего это связано с включением или выключением из пути отдельных DPI, которых стоит несколько. В итоге оставлялся крокодил, который работал долго.

Если нужен только ютуб - нет проблем. Выбираем режим ipset, загоняем туда все подсети гугла.
Или вешаем ipset hook script, запрашивающий эту информацию по whois и сохраняющий копию на случай ошибки запроса. Тогда nfqws даже не притронется к остальному

В прошлой жизни (с byedpi), когда встал вопрос, что же заворачивать в прокси (redsocks), а что пропускать, первая пришедшая мысль была - выцеплять информацию об ip адресах из dns ответов. Объяснил это чату гпт, и тот написал на питоне парсер вывода tcpdump.
dns_monitor.py (3,0 КБ)
Он извлекал адреса ютуба, добавлял их в ipset и сохранял в файл, который при перезагрузке тоже добавлялся в ipset.
Но оказалось, что список строится, но зачастую лиса и хром клиента успевают так быстро получить ответ от днс и начать устанавливать соединение, что ipset не успевал сработать и приходилось два раза открывать страничку в браузере.
По этому я попросил чатгпт написать днс сервер, который сначала точно добавит ip адрес в ipset и только потом отправит dns ответ клиенту.
dns_server.py (5,3 КБ)
Это оказалось гораздо лучше, но как все в целом работает мне не нравилось - иногда почему то не прогружались все привьюшки видео. По этому оказалось лучше прописать socks5 прокси в настройки лисы и так ходить через byedpi на все сайты.

Это метод топора. Есть куда более элегантное решение с dnsmasq.
При ресолвинге он добавляет в ipset.
Давным давно на хабре это описывали.

byedpi, кстати, теперь умеет transparent mode. redsocks ему не нужен