Ник Пост Дата
quester

Доброго времени суток.
Хотелось бы узнать какие впн устойчивы к dpi? Хотелось бы услышать мнение знающих людей

Из того, что удалось найти, которые можно замаскировать под https трафик
openvpn + stunnel на 443 порту
openconnet по tcp на 443 порту

2021-10-11T15:58:24.808Z
bolvan

Если вкратце, то есть 2 основых подхода

  1. Сделать трафик не похожим ни на что => вариант мусора
  2. Сделать трафик похожим на разрешенный => вариант мимикрии

вариант 2 как правило привязывает к TCP. что еще может быть разрешенного из не TCP ?
VPNы в принципе лучше работают без TCP, TCP для них как кость в горле
потому подход следует дифференцировать в зависимости от степени эскалации блокировок
пока есть только черносписочный сигнатурный анализатор - лучше искажать не TCP трафик любым доступным способом. хоть модификацией кода VPN, хоть udp2raw или ipobfs
когда начнут блочить все подозрительное - время переходить к варианту 2. очевидный кандидат - TLS, потому что без него фактически нет инета совсем. а в TLS можно завернуть любой TCP, значит и любой VPN, базирующийся на TCP
дальнейшая эскалация приводит к активному пробингу. openconnect отметается, потому что сразу возвращает по https XMLку, которую легко распознать. openvpn - возможно, прокатит tlscrypt + TCP. в зависимости от того, возвращает ли openvpn какой-то стандартный ответ на плохой ключ tlscrypt
если VPN частный, то спастись можно ограничением по IP клиента или использовать кнокер

2021-10-12T08:04:59.955Z
ValdikSS

Важно понимать, что DPI сам по себе ничего не делает. Всё зависит от его настроек, целей администраторов и других людей, участвующих в управлении им, особых условий/политической ситуации, и т.п.

Как сказал @bolvan, есть два принципиальных подхода к маскировке трафика: маскировка под самый распространённый зашифрованный протокол и маскировка под совершенно случайные данные, которые нельзя идентифицировать/классифицировать.
Если говорить про Россию, то ТСПУ — наиболее продвинутый DPI — способен определять характерные TLS-признаки конкретных программ или сетевых библиотек (см. Фильтр TLS на домены youtube), и маскировку TLS потенциально можно обнаружить у программ, которые не разрабатывались с расчётом на обход блокировок.

Из наиболее продвинутых, поддерживаемых, удобных в использовании и доступных под все платформы программ можно отметить Outline — прокси-сервер и клиент shadowsocks с дополнительными функциями (эмуляция сетевого интерфейса) и удобным конфигуратором от разработчиков из Google, и V2Ray/V2Fly — мультипротокольный прокси-комбайн, поддерживающий маскировку под TLS/Websocket/HTTP2/QUIC, среди прочих функций.

Если вам нужен именно VPN, то можно использовать OpenVPN с tls-crypt-v2, либо же «прокинуть» его через V2ray.
Также можно присмотреться к SoftEther — он поддерживает множество протоколов, в том числе передачу данных через ICMP и маскировку под DNS-запросы.

2021-10-12T08:46:58.625Z
yatolkosprosit

Если будут блокировать по протоколам, то SoftEther будет в числе первых, вместе с WireGuard и прочей экзотикой. Ибо кому они нужны? В корпоративной среде они не используются, если их заблокировать, никто ничего не заметит, кроме нескольких человек. То же самое относится к ICMP, DNS, SSH. Сколько данных по этим протоколам проходит в норме? Вот столько и отмерят.

А что там у китайцев? Я знаю, в Китае работает несколько VPN-сервисов совершенно легально. Но какие возможности есть кроме этого и есть ли вообще? Но чтобы скорость была нормальная, а не как у модемов из 90-х.

2021-10-12T14:00:13.708Z
cypherpunks(cypherpunks:writecodes)

SSH — в том числе распространённый файлообменный протокол.

2021-10-12T15:15:39.719Z
ValdikSS

Когда около года назад в Туркменистане «отключали интернет» во время наводнения, Softether’у удалось пробиться в мир через маскировку под DNS-запросы.
Отключение продождения DNS — самое последнее, что может предпринять провайдер для блокировки сетевого доступа.

2021-10-13T06:54:36.717Z
bolvan

Так то оно так, только провайдеры склонны блокировать доступ к не своим DNS или заворачивать такие запросы на свои, а значит напрямую к VPN серверу будет не пробиться , только лишь заворачиваясь в UDP DNS.
Придется использовать обычную DNS систему, запросы к DNS провайдера к какому-то своему домену, и на NS сервере поднимать серверную часть тоннеля.
Провайдер может легко сделать rate limit на DNS запросы к своим серверам
Это все будет медленно до жути

2021-10-14T11:29:11.118Z
ValdikSS

Таких провайдеров совсем немного в абсолютном исчислении.

Если DNS работает, а обычные UDP/TCP — нет, то выбирать не приходится. Либо есть хоть какой-то интернет, либо его нет вовсе.

2021-10-16T10:55:25.115Z
ValdikSS

Китайцы пользуются преимущественно протоколами Shadowsocks и VMESS (v2ray), поддержка которых есть в большом количестве ПО для обхода блокировок.

2021-10-16T10:56:38.973Z
bolvan

В RU - да, но в TM провайдеров совсем немного, и помнится они любят подставлять 127.0.0.1 на неугодные запросы. Причем даже от @8.8.8.8
Может быть, конечно, это пассивный инжект, не разбирался. Но судя по градусу творящегося с интернетом в TM, там заворот всех DNS - это цветочки. Там вообще налево направо как косой банят IP. Очень не любят UDP

Верно. но это уже последняя стадия, пожалуй

2021-10-16T13:16:01.187Z
tango

Here are some technical details about DNS injection in TM. It’s bidirectional, so easy to test. Their injector even has a bug.
https://github.com/net4people/bbs/issues/80#issue-975957747

  • It is easy to demonstrate the injection by sending queries to an IP address in Turkmenistan, using dig or netcat. The Turkmenistan IP address does not have to be a DNS resolver.
  • The way the injector constructs responses is naive: it copies the triggering query, overwrites the FLAGS and QDCOUNT/ADCOUNT/NSCOUNT/ARCOUNT fields, then appends a fixed suffix of c00c000100010000012c00047f000001.
    • The suffix is intended to be a resource record that maps the name in the query to the IPv4 address 127.0.0.1.
    • The technique of appending a fixed suffix results in a syntactically invalid DNS message whenever the query does not have exactly one entry in the Question section, and empty Answer, Authority, and Additional sections.
    • The TYPE of the response is A (IPv4 address), regardless of the TYPE in the query.
  • The injection occurs on any UDP port, not just port 53.
  • The injector’s DNS parser does not follow compression pointers in names. You can obfuscate a name in a query by writing it using compression pointers, and it will not get an injection.

They also poison DNS for the names of almost all DoH providers listed at https://github.com/curl/curl/wiki/DNS-over-HTTPS#publicly-available-servers:
https://github.com/net4people/bbs/issues/80#issuecomment-903200549

2021-10-21T16:16:59.627Z
Kisliy(Андрей)

Скажите пожалуйста, в случае подобного шатдауна, когда трафик побежит по протоколам ICMP или DNS разве это не вызовет подозрения, ну и соответствующий бан сервера? Что показывает практика? :face_with_monocle:

И ещё, если домашний комп постоянно держит соединение или обращается к какому-то серверу (со всего рунета 1 пользователь) даже не важно по какому протоколу, разве это не вызывает подозрения, ну и соответствующий бан сервера? :face_in_clouds:

2024-04-22T19:42:51.609Z