Comments (13)
ebkjiud, можно попробовать комбинацию методов через tpws. Они почти все могут быть применены одновременно. Если не работает ничего, то тогда действительно придется проксировать.
Глянь https.txt.
У меня протестированы и работают 2 метода : через соксификатор и через vpn с policy routing.
Главное чтобы на openwrt было как минимум 8 мб flash или extroot. Если 4 мб и нет USB, то можно даже не думать. Ничего не влезет. А на 32 мб памяти вполне успешно у меня работают и tpws, и соксификатор, и openssh. Если все сделать аккуратно - будет норм
from zapret.
В ридмях же все написано.
Вручную запустить nfqws. Он выдает сообщения по факту произведенной замены.
Может быть ipset zapret пустой.
from zapret.
root@OpenWrt:~# /etc/init.d/zapret start
Creating ipset
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip.txt
Adding to ipset zapret : /opt/zapret/ipset/zapret-ip-user.txt
Adding to ipset ipban : /opt/zapret/ipset/zapret-ip-user-ipban.txt
Starting /opt/zapret/nfq/nfqws
дальше вижу такое
opening library handle
unbinding existing nf_queue handler for AF_INET (if any)
binding nfnetlink_queue as nf_queue handler for AF_INET
binding this socket to queue '200'
setting copy_packet mode
Пытаюсь открыть rutracker.org
и вижу страницу заглушку
http://blackhole.beeline.ru
В логе ничего нет.
from zapret.
UPD
Получилось.
почему-то правила файрволла юзеркие не применились при старте.
packet: id=1 len=60
packet: id=2 len=60
packet: id=3 len=60
packet: id=4 len=40
packet: id=5 len=40
packet: id=6 len=40
packet: id=7 len=435
modifying Host: => HOST:
packet: id=8 len=40
packet: id=9 len=706
modifying Host: => HOST:
packet: id=10 len=40
from zapret.
Init скрипт не занимается применением iptables.
Это делает фаервол fw3.
Init скрипт меняет только настройку в /etc/config/firewall чтобы /etc/firewall.user запускалось не
только при fw3 restart, но и при fw3 reload.
Если в firewall.user рекомендованное содержимое из firewall.user.beeline, то должно срабатывать. Там нет ничего, что могло бы вызвать ошибку. Разве что очень старая версия iptables, где нет ключа "-C".
from zapret.
А нет, может быть один момент с ошибкой.
Он случается если фаервол применяется до старта /etc/init.d/zapret, который создает ipset.
Если ipset-а еще нет , то будет ошибка.
Поэтому я сделал в zapret START=18, когда как у firewall START=19.
Но кто знает, может они выполняются асинхронно ? Вроде не должны, иначе зачем START sequence number. Да и у себя таких проблем никогда не встречал ни на 1 роутере.
/etc/init.d/zapret enable
было сделано ?
это включает автостарт. если автостарта нет, то при загрузке фаервол не приментся из-за ошибки ipset
from zapret.
Решил попробовать все возможные способы на себе. Провайдер westcall СПБ (север города). Ряд ip полностью блокируются. DPI обход с точкой в конце оказался единственным рабочим для меня описанным трюком (найденный мною). При этом ряд заблокированных ресурсов возвращают 403 ошибку (в частности pornhub - протестирован). Еще не мало удивительное наблюдение: обнаружился ресурс, который блокировался - моим провайдером, трюк с точкой позволяет обойти, но далее трафик улетал на прозрачный squid ТТК. Который я честно уже не знаю как обойти (drop первого пакета по строке совпадения, drop RST пакетов приводят к долгому SYN и RST с моей стороны, не более). Как результат всех испытаний, имеется ряд сайтов которые обходить возможно через точку, остальное необходимо пропускать через VPN и PROXY. Буду благодарен, если кто подскажет, как автоматизировать - чтобы заблокированные ресурсы по ip шли через VPN/PROXY и сайты приводящие к squid ТТК, так же шли по VPN/PROXY. (Железка не мощная openwrt 15 400Mhz 32mb Hynix).
from zapret.
bol-van, да я совмещал все возможные твики для обхода DPI (только "точка" мой провайдер позволяет обходит, а второй тот что после в squid прозрачный кидает - никак обойти не удалось) - то есть часть трафика к некоторым ресурсам мой провайдер пропускает через прозрачный squid другого провайдера. OpenWRT TP-Link TL-WR1043N/ND v1, swap на флэшке и extroot (USB2.0). Хотелось бы бесплатное решение позволяющее автоматически определить блокировку по IP и блокировку вторым провайдером (squid). Пока особо не могу придумать в голове другие мысли. (Самое простое приходит на ум сделать скриптик из доменов собирать список ip адресов, ручками пополнять их ряды и пропускать их правилом iptables выше вашего решения [с обходом через точку]).
from zapret.
squid это значит, что соединения из списка заблокированных IP заворачиваются на прокси. Совершенно логично, что от этого не помогают никакие методы, связанные с фрагментацией, да и трюки скуид наверняка распознает надежно в отличие от на коленке составленых regexp для DPI.
Поэтому раз используется там список IP, то и мы должны его использовать.
В моем решении применяется ipset. Вот по нему и надо прозрачно заворачивать соединения куда-нибудь. ipset подтягивается по крону, можно своими ручными правилами дополнить. Все же написано.
from zapret.
bol-van, да за ваши методы спасибо, я ими пользуюсь. Получается у моего провайдера, срабатывает солянка, часть ресурсов обхожу через "точку" имея к ним полноценный вход, а часть заворачивается на сквид или блокируется весь ip. Я подумываю через curl прогонять весь список скриптом раз в неделю, ночью. То что по таймауту будет и то что отдает заглушку второго провайдера запихивать в отдельную ipset группу и пропускать через прокси. Но боюсь будет проблема со скриптом в плане оперативы. Плюс пока не знаю curl ли использовать. И еще есть сайты, которые возможно плохо понимают запросы с "точкой" (в частности я уже писал про pornhub.com - 403 ошибка) такое я готов и руками добавлять, т.к. непредсказуемо, что ответит другая сторона и как ее фильтровать...
from zapret.
С оперативой от курла проблема вряд ли будет. Раз есть USB, то можно сделать swap на всякий случай, чтобы внезапно не случился OOM.
Курлить десятки тысяч адресов - это очень плохая идея. займет вечность
Но можно и не заморачиваться так. Можно сделать фиксированный список адресов, на которых squid, и зачислять их в ipset для проксирования. Ведь реально не нужен доступ ко всяким там курилкам и игралкам, нужен только к определенным сайтам, а если понадобится к чему-то еще - всегда можно добавить ручками. Все примеры как ресолвить домены из списка и заносить в ipset есть
from zapret.
@bol-van swap имеется, место свободного 6,5gb. Фиксированный не хотелось бы, буду придумывать скрипт, потом если что опишу результат. Конечно без ручного списка никуда, но большую часть хотелось бы автоматом. Спасибо еще раз за проект, за ваше мнение и подсказки.
from zapret.
Можно, конечно, дописать код на C в tpws, который будет анализировать ответ от веб сервера, и при обнаружении заглушки что-то делать. Например, заносить такие хосты в файл. Но это потребует программирования под частный сценарий.
from zapret.
Related Issues (20)
- Как указать свой фейковый хост для nfqws? HOT 7
- blockcheck.sh on openwrt 23.05 HOT 2
- Trojan found HOT 3
- Не работает запрет на сайтах вообще и не находит стратегий обхода. HOT 4
- nfqws QUIC ipfrag2 HOT 8
- TLS ClientHello identification issue HOT 3
- nfqws support for desync dns over tcp HOT 1
- `tpws` gets terminated unexpectedly with SIGSYS HOT 4
- tpws начинает потреблять 100% cpu HOT 3
- TLS inspection bypass HOT 5
- [Question] adding another port than 80/443 HOT 10
- nfq_unbind_pf(): Invalid argument HOT 4
- tpws request_sock_TCP: Possible SYN flooding on port 65530 HOT 3
- Обход замедления твиттера/Twitter HOT 3
- Обход не работает в зависимости от платформы клиента HOT 35
- изи установка на android HOT 13
- Offtopic: а можно ли подобными техниками починить другие протоколы? HOT 1
- zapret along with jool HOT 17
- ya-browser HOT 51
- tpws randomly crashes HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zapret.