Search
Write a publication
Pull to refresh
39
25.1
Vadim Smirnov @SerpentFly

Software Engineer

Send message

Посмотрим, чем завершится эта история. На мой взгляд, это тянет на баг в I/O Manager: если поток заблокирован на синхронной операции ввода-вывода, то любой ранее инициированный им асинхронный I/O фактически лишается шансов на завершение или отмену.

RIPE Atlas полезный инструмент. А probe я завел на роутере в гостевую сеть без доступа к домашней.

Спасибо за отзыв! Рад, что софт помог. С GUI согласен — подумаю, что тут можно сделать.

Если бы драйвер что-то такое и делал, поверьте, вы бы этого не заметили. К тому же реверснуть драйвер несложно, он очень небольшой.

Само приложение никуда не ходит, исходники доступны, можете пересобрать если чего опасаетесь. Да, оно просит разрешения открыть порт для прокси, так как соединения редиректятся на локальный прозрачный прокси и только потом на удаленный. Соединения про которые вы пишете скорее всего связаны с проверкой цифровой подписи приложения.

Спасибо большое за добрые слова! Рад, что программа помогает. В новой версии немного поработал над сетевой частью — если будет возможность, посмотрите, пожалуйста, как сейчас обстоят дела с пингом. Я сам немного потестировал, но очень хотелось бы услышать новости с полей :)

Да, смысл именно в этом. Если бы реализация обфускации была внешней по отношению к протоколу Wireguard все было бы несколько проще. В частности, мне не пришлось бы впиливать дополнительные параметры непосредственно в BoringTun. Если в подходе Amnezia и есть смысл, то только маркетинговый.

Идея заключается в том, чтобы применять обфускацию поверх уже зашифрованных пакетов, а не внедрять её напрямую в реализацию протокола. В таком подходе обфускатор можно было бы вынести в отдельный компонент — например, в UDP-прокси. В случае с Amnezia это, к сожалению, невозможно.

Напомнило о стародавних временах, когда система антиплагиата благополучно сдавалась после замены одной кириллической буквы «л» на другую. Визуально — ни малейшей разницы, а в Unicode это разные символы: обычная «л» и заковыристая из расширенного диапазона. Алгоритм был не в курсе, зато диплом — уникальный.

Да, есть подозрение, что сработал абзац про Ростелеком и WireGuard. Всё-таки обидно, когда на систему блокировки уходит столько ресурсов, а её можно обойти парой псевдослучайных пакетов. ☺️

Думаю под Линуксом можно использовать PreUp-скрипт в конфигурации wg-quick

1. Скрипт send-noise.sh

Создайте файл /usr/local/bin/send-noise.sh со следующим содержимым:

#!/bin/bash

# Адрес и порт WireGuard-сервера
ENDPOINT_IP="1.2.3.4"
ENDPOINT_PORT="51820"

# Отправить 5 случайных пакетов по UDP
for i in {1..5}; do
    head -c 100 /dev/urandom | nc -u -w1 "$ENDPOINT_IP" "$ENDPOINT_PORT"
    sleep 0.2
done

exit 0

Сделайте скрипт исполняемым:

chmod +x /usr/local/bin/send-noise.sh

2. Настройка wg0.conf

Откройте /etc/wireguard/wg0.conf и добавьте строчку PreUp:

[Interface]
PrivateKey = ...
Address = ...
PreUp = /usr/local/bin/send-noise.sh

[Peer]
PublicKey = ...
Endpoint = 1.2.3.4:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Важно: ENDPOINT_IP и ENDPOINT_PORT в скрипте должны соответствовать Endpoint из [Peer].

3. Подключение

sudo wg-quick up wg0

Перед началом хендшейка WireGuard отправит 5 псевдослучайных UDP-пакетов на сервер, что может помочь обойти фильтрацию или имитировать предварительный трафик.

Не тестировал, но выглядит правдоподобно.

Сочувствую. Конечно, при наличии неограниченных ресурсов со стороны DPI можно реализовать практически любой уровень контроля над трафиком — вплоть до полноценного DLP на уровне всей страны. Всё упирается исключительно в объём доступных технических и человеческих ресурсов.

Лыжи под мышку — и в сторону заката ☺️

Судя по личным наблюдениям и отчетам пользователей, в подавляющем большинстве случаев этого пока оказывается достаточно.

https:://www.wiresock.net

Дополню, пожалуй... Подход использованный в ProxiFyre (с редиректом трафика на прозрачный локальный прокси и дальнейшей передачей через SOCKS5) довольно старый, но достаточно практичный. Ровно так же и на том же драйвере уже много лет работает сетевая фильтрация ZScaler, разве что вместо SOCKS5 трафик перенаправляется через HTTP-proxy.
Есть еще вариант завернуть TCP соединение на redirect layer WFP (задержка на таком редиректе меньше, чем спуститься до NDIS и вернуться обратно), но, к сожалению, для UDP этот уровень работает не так как хотелось бы.
Если кому-то интересно сделать полноценное коммерческое решение на основе ProxiFyre и завернуть все в инсталлятор, я не возражаю. Если нет возможности лицензировать драйвер, то за "долю малую" сделаю специализоварованную сборку и помогу чем смогу, в оригинальном ProxiFyre есть что соптимизировать. Заниматься этим направлением самостоятельно у меня, к сожалению, сейчас нет времени.

В виде DevDrive ReFS уже какое-то время доступна.

1
23 ...

Information

Rating
176-th
Location
Белград, Белград, Сербия
Date of birth
Registered
Activity