Это очень смешно, и правда. Я упустил этот момент в вычитке. В лекции речь шла о борьбе нанайских мальчиков. Ютуб странскриптил это в `ананайских мальчиков`, и после это все превратилось в борьбу `ананасных мальчиков`.
вообще дискавери - это чисто пробить какие-нибудь простенькие сайты (скжаем условное забаненное СМИ), ютуб все-таки несколько сложнее устроен. Просто вбить youtube.com он то непосредственно к домену может и пробьется, но дальше у гугла много цдн источников (типа googlevideo.com и тп)
По этому нужно еще мониторить раздел соединений и смотреть, что там куда ломится.
привет, я чуть попозже гляну детальнее, но на первый взгляд скорее всего ему не хватает каких-то сетевых модулей ядра, которые отключены видимо в этой сборке OWRT. Некоторые минимальные сборки OpenWRT могут не содержать необходимых модулей.
# Обычный Linux
modprobe xt_connbytes
modprobe xt_NFQUEUE
# OpenWRT (если modprobe не работает)
insmod xt_connbytes
insmod xt_NFQUEUE
привет! спасибо. Комментарий по делу, попробую объяснить.
1. я тоже не супер иксперт сетевой, в свое время начал копаться в кишках xray-core, и очень запал на тему с тамашней библиотекой geosite/geoip данных. В какой-то момент подумал, а чего бы не запилить что-то похожее на запрет с возможностью на лету подгружать большие базы сообщества доменов и CIDRов, нежели, чем в ручную постоянно вводить эти списки. Ну и попутно захотелось подразобраться, как это все работает. Это по сути результат собственного ковыряния с какой-то небольшой целью. Ну голанг был очень удобен для этого. К тому же я не умею в си от слова совсем ).
2. Свой веб интерфейс - потому что он не только для опенврт, а вообще для линкуса в целом. Я в свое время сделал удобный плагин для xray для роутеров Асуса, так там обратные теперь запросы - "сделай общий веб-интерфейс, че только для Асуса-то" ).
3. Да надо бы теперь по хорошему, что-то я не думал, что такой большой интерес будет. Сам проект не сильно новый, как-то жил со скриптом отдельно и норм было ). Но, опять же, это надо мейнтейнить разные репы (типа opkg или apk) будет.
Туннели Плюсы: - более гарантированная и стабильная работа подключений (ну по сути трафик гонится на какой-то сервер а от туда уже вылетает в эти ваши свободные интернеты) - более простая настройка и меньше возни с ползунками и прочими танцами с бубном вокруг провайдера - более защищенный трафик, при нормальной настройке большой дядя не увидит куда вы там ходите Минусы туннелей: - закон скорее всего запрещает не то, что говорить о них, но уже как буд-то и пользоваться (если не уже, то думаю вопрос времени). - скорость работы. По сути вы не к сайту подключаетесь, а к какому-то серверу, а уже от него подключаетесь к нужному сервису. Скорость ну прям-таки сильно режется в моменте, в сравненни если бы работало все напрямую.
Ну и ДПИ-Шаталки Плюсы: - не нужно иметь ни подписок ни серверов, принцип работы шаталок этого не требует - трафик никуда не идет, только до нужного сервиса нарямую - законодательно ничего не нарушается, даже больше. Это уже проблемы ТСПУ, что "нишмагла" и пропустила (но все еще не забывайте, что само посещение некоторых определенных сайтов может быть незаконно, но это другая история - тут все взрослые, под свою ответственность, как говорится).
Минусы дпи-шаталок же: - ненадежность и небезопасность. По сути шаталки не про безопасность а про доступ. Вы как ходили на свой любимый запрещенный сайт, так и ходите, шаталка просто пилит пакеты и добавляет мусор, чтобы сконфузить дорогую железку на стороне провайдера. - сложность - очень высокий технический порог входа. Нельзя сделать большую красную кнопочку "почини мне интернет", потому что тспу сильно разнится от региона к региону и от провайдера к провайдеру, (да что говорить, от сайта к сайту даже) и нужно в конкретном случае подбирать ту или иную стратегию обхода. - более легкий отлет. Если туннель банится, то банится полностью, сразу понятно становится. С дпи несколько все сложнее, подкрутили один сайт, все работает, а конкретно этот - нет, и не понятно в чем проблема. Как по мне это тоже в минусы.
да, упустил этот момент, все же проекты на голанге в отличие от сишных творчеств весьма требовательны к ресурсам. На минималке вроде как жрет 35-40 метров.
Плюс сильно зависит какой геосайт-источник выбран, так как в моменте данные выгружаются из него и утилита читает файл. Тот же рунетфридом весит на сегодня 50 мегабайт, например.
просто весь проект основан на базе линуксового nfqueue, по этому фундаметально винда мимо тут идет:( ну и в целом задача интересна была сделать сетевое серверное приложение (базово для роутеров), а не для частных клиентов.
но! я могу что-то и не знать! проект опенсурсный, и если кто-то присоеденится к разработке, я буду более чем рад. Честно говоря это все те еще дебри всратые:).
В группе много людей ставили на кинетики, без особых проблем. Ставится везде одинаково, чеез базовый скрипт установки. Кинетик это линух, а значит должно работать из коробки, дальше вопрос в ресурсах железки. Голанг бинагники на память более затратные, нежели сишные проекты типа запретов.
в любом случае у меня есть небольшие гайды на гитхабе, может помогут?
о да, конечно! как азусник азуснику (обнимемся :)). Не вижу никаких проблем в заводе.
Просто имейте ввиду, что это все требует тюнинга параметров для конкретного провайдера, это история про дпи, а не про ВПН. к сожалению. Одной базовой кнопкой "сделать краиво" тут не обойтись. Но пишите обязательно или здесь или в личку или в тг-группе, если будут проблемы или пожелания, мне это все интересно развивать.
А еще, что б "имеповаднобыло" выложил кумулятивный транскрипт (как результат больших 24 главы) тех самых ютублекций лекций по ТСПУ на github https://github.com/DanielLavrushin/tspu-docs если вдруг кому интересно теорию почитать. Она сильно устаревшая (по разным источникам лецкии делались в 2021 году), но фундаментально базовая.
Очень хотелось бы верить, но достаточно вспомнить, скольким закрыли доступ и скольких постигла профессиональная люстрация после развала совка. Где все эти списки тех, кто работал на машину пропаганды и запретов в той системе? Более того, все эти нынешние деды сегодня, пройдя свободные 90ые и 00вые оказались чудесным образом в лучших креслах сегодня, увы.
Та фронт сделан на обычном React, ну MUI, по этому и выглядит неплохо ).
Ну в целом принцип работы тот же, что и у youtubeUnblock (кстати, забыл сказать, что если он используется, то стоит отключить на время работы b4, ибо они как раз конфликтуют, борясь за место под солнцем в nfqueue). B4 работает на уровне netfilter/nfqueue, перехватывая TCP пакеты до их отправки.
Основные мешалки у меня (но я многое подглядел у youtubeUnblock и byeDpi): - TCP frag - разбивка TCP payload на несколько сегментов с корректировкой sequence numbers. Можно split в начале SNI, в середине SNI, или в обоих местах сразу. Каждый сегмент - валидный TCP пакет с правильными чексуммами.
- IP frag - разбивка на IP уровне с манипуляцией fragment offset. DPI не всегда корректно реассемблирует фрагменты, особенно если отправить в обратном порядке.
- TLS record splitting - разбивка TLS ClientHello на несколько TLS records. Если DPI ожидает увидеть весь handshake в одном record.
- ПоQUIC - UDP пакеты с QUIC Initial фрагментируются на IP уровне. Перед отправкой реального пакета отправляется серия fake UDP пакетов с неправильной чек суммой.
- Desync - отправка фейковых пакетов с неверной TCP checksum, чтобы они дошли до DPI, но были отброшены конечным сервером. DPI думает, что соединение идёт в одном направлении, а реальный сервер видит другое.
- ClientHello frag - разбивка TLS handshake на мелкие TCP сегменты или TLS записи, чтобы DPI не мог собрать полную картину SNI в одном пакете.
- TCP window manipulation - заигрывания с размером TCP окна, чтобы контролить, какие данные DPI успевает обработать.
- Out-of-Band (ну oob) данные и SACK dropping - использование TCP флагов и selective acknowledgments для дезориентации DPI. TCP urgent pointer для маркировки данных как "срочных". Многие DPI могут некорректно обрабатывать OOB данные.
- Пытаюсь в мутации ClientHello - изменение порядка extensions, добавление padding, split на уровне TLS records. Главное отличие от SOCKS proxy - мы работаем после маршрутизации, перед самой отправкой в сеть, поэтому можем манипулировать реальными пакетами, а не создавать отдельный туннель.
Как-то так.
Ну ваще работает, но с переменным успехом. Вот ковыряю, тоже изучаю. Кто-то пишет, что все разблокировалось, кто-то говорит, что не все. От региона и провайдера зависит.
Вчитался, вы имели ввиду наоборот все, кроме ру диапозона. Ну, в общем, можно использовать то, что в geoip. Можно руками прописать подсети. Если подключить в настройках ipinfo - то в логах появится возможность добавлять ASN.
Да, в настройках нужно подключить геодаты от xray и в Bypass IPs указать желаемые подсети из базы
Но вообще я за точечность, это прям стрельба по мухам из пушки :). Так можно себе весь интернет поломать. Вообще в геодате от RUNET Freedom вот такая на сегодняший день статистика по подсетям получается
Вы имеете ввиду примеры типа openai? Да, модуль нормально работает совместно с впнами, они не должны никак конфликтовать, принцип работы несколько разный.
Ну сам процесс да, ибо nfqueue. Но он экспозит веб морду. В целом хотелка была сделать что-то подобное youtubeunblock и аналогичным шаталкам, только с веб мордой, чтобы не заниматься сексом с сотней параметров в командной строке.
Это очень смешно, и правда. Я упустил этот момент в вычитке. В лекции речь шла о борьбе нанайских мальчиков. Ютуб странскриптил это в `ананайских мальчиков`, и после это все превратилось в борьбу `ананасных мальчиков`.
да это косяк wget, нужно доставить `wget-ssl`.
А попробуйте снова установить, кстати? я подкрутил кое-что в скрипте, может получится теперь?
вообще дискавери - это чисто пробить какие-нибудь простенькие сайты (скжаем условное забаненное СМИ), ютуб все-таки несколько сложнее устроен. Просто вбить youtube.com он то непосредственно к домену может и пробьется, но дальше у гугла много цдн источников (типа googlevideo.com и тп)
По этому нужно еще мониторить раздел соединений и смотреть, что там куда ломится.
Завелось? Если да, то обновлю тогда доки по вашим комментам.
С опенврт все время так, нужно что-то довключать то тут то там.
привет, я чуть попозже гляну детальнее, но на первый взгляд скорее всего ему не хватает каких-то сетевых модулей ядра, которые отключены видимо в этой сборке OWRT.
Некоторые минимальные сборки OpenWRT могут не содержать необходимых модулей.
привет! спасибо. Комментарий по делу, попробую объяснить.
1. я тоже не супер иксперт сетевой, в свое время начал копаться в кишках xray-core, и очень запал на тему с тамашней библиотекой geosite/geoip данных. В какой-то момент подумал, а чего бы не запилить что-то похожее на запрет с возможностью на лету подгружать большие базы сообщества доменов и CIDRов, нежели, чем в ручную постоянно вводить эти списки. Ну и попутно захотелось подразобраться, как это все работает. Это по сути результат собственного ковыряния с какой-то небольшой целью. Ну голанг был очень удобен для этого. К тому же я не умею в си от слова совсем ).
2. Свой веб интерфейс - потому что он не только для опенврт, а вообще для линкуса в целом. Я в свое время сделал удобный плагин для xray для роутеров Асуса, так там обратные теперь запросы - "сделай общий веб-интерфейс, че только для Асуса-то" ).
3. Да надо бы теперь по хорошему, что-то я не думал, что такой большой интерес будет. Сам проект не сильно новый, как-то жил со скриптом отдельно и норм было ). Но, опять же, это надо мейнтейнить разные репы (типа opkg или apk) будет.
Попробую
Туннели
Плюсы:
- более гарантированная и стабильная работа подключений (ну по сути трафик гонится на какой-то сервер а от туда уже вылетает в эти ваши свободные интернеты)
- более простая настройка и меньше возни с ползунками и прочими танцами с бубном вокруг провайдера
- более защищенный трафик, при нормальной настройке большой дядя не увидит куда вы там ходите
Минусы туннелей:
- закон скорее всего запрещает не то, что говорить о них, но уже как буд-то и пользоваться (если не уже, то думаю вопрос времени).
- скорость работы. По сути вы не к сайту подключаетесь, а к какому-то серверу, а уже от него подключаетесь к нужному сервису. Скорость ну прям-таки сильно режется в моменте, в сравненни если бы работало все напрямую.
Ну и ДПИ-Шаталки
Плюсы:
- не нужно иметь ни подписок ни серверов, принцип работы шаталок этого не требует
- трафик никуда не идет, только до нужного сервиса нарямую
- законодательно ничего не нарушается, даже больше. Это уже проблемы ТСПУ, что "нишмагла" и пропустила (но все еще не забывайте, что само посещение некоторых определенных сайтов может быть незаконно, но это другая история - тут все взрослые, под свою ответственность, как говорится).
Минусы дпи-шаталок же:
- ненадежность и небезопасность. По сути шаталки не про безопасность а про доступ. Вы как ходили на свой любимый запрещенный сайт, так и ходите, шаталка просто пилит пакеты и добавляет мусор, чтобы сконфузить дорогую железку на стороне провайдера.
- сложность - очень высокий технический порог входа. Нельзя сделать большую красную кнопочку "почини мне интернет", потому что тспу сильно разнится от региона к региону и от провайдера к провайдеру, (да что говорить, от сайта к сайту даже) и нужно в конкретном случае подбирать ту или иную стратегию обхода.
- более легкий отлет. Если туннель банится, то банится полностью, сразу понятно становится. С дпи несколько все сложнее, подкрутили один сайт, все работает, а конкретно этот - нет, и не понятно в чем проблема. Как по мне это тоже в минусы.
Как-то так.
да, упустил этот момент, все же проекты на голанге в отличие от сишных творчеств весьма требовательны к ресурсам. На минималке вроде как жрет 35-40 метров.
Плюс сильно зависит какой геосайт-источник выбран, так как в моменте данные выгружаются из него и утилита читает файл. Тот же рунетфридом весит на сегодня 50 мегабайт, например.
много чего добавить можно и нужно, но конкретно это все уже есть.
флаг `--remove` к скрипту удалит все установленное.
А насчет правил - они добавляются только при работе приложения. При выходе все очищается и возвращается в былой вид.
просто весь проект основан на базе линуксового nfqueue, по этому фундаметально винда мимо тут идет:( ну и в целом задача интересна была сделать сетевое серверное приложение (базово для роутеров), а не для частных клиентов.
но! я могу что-то и не знать! проект опенсурсный, и если кто-то присоеденится к разработке, я буду более чем рад. Честно говоря это все те еще дебри всратые:).
В группе много людей ставили на кинетики, без особых проблем. Ставится везде одинаково, чеез базовый скрипт установки. Кинетик это линух, а значит должно работать из коробки, дальше вопрос в ресурсах железки. Голанг бинагники на память более затратные, нежели сишные проекты типа запретов.
в любом случае у меня есть небольшие гайды на гитхабе, может помогут?
https://daniellavrushin.github.io/b4/
угу, к сожалению да, это серверное linux-по:(, под вин точно нет, но под андроид как буд-то можно буде попробовать
о да, конечно! как азусник азуснику (обнимемся :)). Не вижу никаких проблем в заводе.
Просто имейте ввиду, что это все требует тюнинга параметров для конкретного провайдера, это история про дпи, а не про ВПН. к сожалению. Одной базовой кнопкой "сделать краиво" тут не обойтись. Но пишите обязательно или здесь или в личку или в тг-группе, если будут проблемы или пожелания, мне это все интересно развивать.
А еще, что б "имеповаднобыло" выложил кумулятивный транскрипт (как результат больших 24 главы) тех самых ютублекций лекций по ТСПУ на github
https://github.com/DanielLavrushin/tspu-docs
если вдруг кому интересно теорию почитать. Она сильно устаревшая (по разным источникам лецкии делались в 2021 году), но фундаментально базовая.
Очень хотелось бы верить, но достаточно вспомнить, скольким закрыли доступ и скольких постигла профессиональная люстрация после развала совка. Где все эти списки тех, кто работал на машину пропаганды и запретов в той системе? Более того, все эти нынешние деды сегодня, пройдя свободные 90ые и 00вые оказались чудесным образом в лучших креслах сегодня, увы.
Та фронт сделан на обычном React, ну MUI, по этому и выглядит неплохо ).
Ну в целом принцип работы тот же, что и у youtubeUnblock (кстати, забыл сказать, что если он используется, то стоит отключить на время работы b4, ибо они как раз конфликтуют, борясь за место под солнцем в nfqueue). B4 работает на уровне netfilter/nfqueue, перехватывая TCP пакеты до их отправки.
Основные мешалки у меня (но я многое подглядел у youtubeUnblock и byeDpi):
- TCP frag - разбивка TCP payload на несколько сегментов с корректировкой sequence numbers. Можно split в начале SNI, в середине SNI, или в обоих местах сразу. Каждый сегмент - валидный TCP пакет с правильными чексуммами.
- IP frag - разбивка на IP уровне с манипуляцией fragment offset. DPI не всегда корректно реассемблирует фрагменты, особенно если отправить в обратном порядке.
- TLS record splitting - разбивка TLS ClientHello на несколько TLS records. Если DPI ожидает увидеть весь handshake в одном record.
- По QUIC - UDP пакеты с QUIC Initial фрагментируются на IP уровне. Перед отправкой реального пакета отправляется серия fake UDP пакетов с неправильной чек суммой.
- Desync - отправка фейковых пакетов с неверной TCP checksum, чтобы они дошли до DPI, но были отброшены конечным сервером. DPI думает, что соединение идёт в одном направлении, а реальный сервер видит другое.
- ClientHello frag - разбивка TLS handshake на мелкие TCP сегменты или TLS записи, чтобы DPI не мог собрать полную картину SNI в одном пакете.
- TCP window manipulation - заигрывания с размером TCP окна, чтобы контролить, какие данные DPI успевает обработать.
- Out-of-Band (ну oob) данные и SACK dropping - использование TCP флагов и selective acknowledgments для дезориентации DPI. TCP urgent pointer для маркировки данных как "срочных". Многие DPI могут некорректно обрабатывать OOB данные.
- Пытаюсь в мутации ClientHello - изменение порядка extensions, добавление padding, split на уровне TLS records. Главное отличие от SOCKS proxy - мы работаем после маршрутизации, перед самой отправкой в сеть, поэтому можем манипулировать реальными пакетами, а не создавать отдельный туннель.
Как-то так.
Ну ваще работает, но с переменным успехом. Вот ковыряю, тоже изучаю.
Кто-то пишет, что все разблокировалось, кто-то говорит, что не все. От региона и провайдера зависит.
Вчитался, вы имели ввиду наоборот все, кроме ру диапозона. Ну, в общем, можно использовать то, что в geoip. Можно руками прописать подсети. Если подключить в настройках ipinfo - то в логах появится возможность добавлять ASN.
Да, в настройках нужно подключить геодаты от xray и в Bypass IPs указать желаемые подсети из базы
Но вообще я за точечность, это прям стрельба по мухам из пушки :). Так можно себе весь интернет поломать. Вообще в геодате от RUNET Freedom вот такая на сегодняший день статистика по подсетям получается
Вы имеете ввиду примеры типа openai? Да, модуль нормально работает совместно с впнами, они не должны никак конфликтовать, принцип работы несколько разный.
Ну сам процесс да, ибо nfqueue. Но он экспозит веб морду. В целом хотелка была сделать что-то подобное youtubeunblock и аналогичным шаталкам, только с веб мордой, чтобы не заниматься сексом с сотней параметров в командной строке.