Руководство по настройке XOR-обфускации для протокола OpenVPN на сервере SoftEther VPN

SoftEther — это универсальное VPN-решение, поддерживающее несколько протоколов, включая OpenVPN, WireGuard, L2TP/IPsec, SSTP и другие. В данном руководстве мы расскажем, как настроить OpenVPN с XOR-обфускацией на сервере SoftEther VPN, используя утилиту vpncmd. На сегодняшний день это единственный способ управлять настройками, специфичными для XOR.

Примечание: предполагается, что на вашем сервере SoftEther VPN уже всё работает исправно в “standalone” режиме (с как минимум одним виртуальным хабом и пользователем), и что вы обладаете базовыми навыками работы в командной строке Linux.

Внимание: XOR-обфускация не заменяет шифрование, которое предоставляет OpenVPN. Вместо этого она маскирует трафик OpenVPN, делая его менее заметным для систем глубокого анализа пакетов (DPI) или других механизмов фильтрации.

Что такое XOR-обфускация?

XOR-обфускация использует побитовую операцию XOR для обработки сетевых пакетов с заранее заданной маской (или ключом). Хотя это не повышает безопасность так же, как полноценное шифрование, она помогает скрывать характерные шаблоны трафика OpenVPN от систем DPI. Если ваш провайдер или локальная сеть блокируют или ограничивают стандартные VPN-подключения, XOR-обфускация может помочь обойти эти ограничения.

Иными словами, XOR-обфускация выступает в роли простого «камуфляжа» для ваших данных. Аналогично простому коду, который меняет порядок фрагментов сообщения, она меняет данные обратимым способом с помощью фиксированного ключа. Такой метод не обеспечивает защиту на уровне надёжного шифрования, но он маскирует характерные сигнатуры, по которым DPI обычно распознаёт VPN-трафик, и таким образом делает ваш VPN-трафик менее заметным.

Для использования XOR-обфускации и сервер, и клиент OpenVPN должны быть соответствующим образом сконфигурированы (а иногда и пропатчены), чтобы поддерживать эту функцию. На macOS, например, можно использовать Tunnelblick, так как он имеет встроенную поддержку XOR-обфускации.

Шаг 1: Создание маски обфускации

Маска XOR-обфускации (иногда её называют ключом или паролем) — это строка, которая используется для побитовой операции XOR над VPN-пакетами. Она может быть случайной или даже комбинацией нескольких слов, но для лучшего сокрытия советуем использовать длинную и сложную строку. Вы можете воспользоваться любым генератором токенов, чтобы сгенерировать длинный и случайный ключ.

  • Пример: 1e8aee72s63f...y2ehdkfa04cb1
  • Храните этот ключ в секрете и старайтесь не использовать его повторно в других контекстах, если важны безопасность и конфиденциальность.

Важно: Маска для XOR-обфускации должна совпадать как на сервере SoftEther VPN, так и на любом клиенте OpenVPN, который будет подключаться с использованием XOR.

Шаг 2: Включение и настройка параметров XOR для OpenVPN в SoftEther

Прежде чем настраивать обфускацию XOR для OpenVPN, убедитесь, что у вас есть права администратора на VPN-сервере SoftEther. Сначала запустите утилиту vpncmd, выберите опцию №1 и войдите как Администратор:

./vpncmd

После входа используйте команду ProtoOptionsSet для настройки параметров протокола OpenVPN. Ниже приведён набор команд, позволяющих включить XOR-обфускацию, задать маску обфускации и настроить базовые параметры OpenVPN. Выполните их по очереди:


ProtoOptionsSet openvpn /NAME=Enabled /VALUE=true
ProtoOptionsSet openvpn /NAME=Obfuscation /VALUE=true

# Замените 'YourObfuscationMask' на сгенерированную вами случайную строку
ProtoOptionsSet openvpn /NAME=ObfuscationMask /VALUE="YourObfuscationMask"

# Проверьте, есть ли на сервере активные TCP-порты
ListenerList# Если список пуст, создайте TCP-порт (например, 443)
ListenerCreate 443
# Или, если он уже существует, убедитесь, что он включён и имеет статус "Listening":
ListenerEnable 443

Шаг 3: Создание конфигурации OpenVPN-клиента с XOR-обфускацией

Далее необходимо подготовить файл конфигурации OpenVPN для вашего клиента. Ниже приведён пример такого файла. Скопируйте его в окружение клиента (например, назвав client.ovpn) и при необходимости отредактируйте.

Важно: проверьте, что ваш клиент OpenVPN (например, Tunnelblick) поддерживает директиву scramble obfuscate и, в целом, XOR-обфускацию. Ниже перечислены некоторые клиенты OpenVPN с поддержкой XOR:

Ниже — пример конфигурационного файла OpenVPN-клиента, который использует XOR-обфускацию для подключения к вашему серверу SoftEther:


dev tun
proto tcpremote 111.112.113.114 443
cipher AES-256-GCM
auth SHA384
nobind
client
verb 3
auth-user-pass

# Строка, которая включает XOR-обфускацию на стороне клиента.
# Маска должна совпадать с той, которую вы указали в настройках сервера SoftEther через команду ProtoOptionsSet.
scramble obfuscate 1e8aee72s63f49fjf910skj14d3d0defd40f91y2ehdkfa04cb1

<ca>
-----BEGIN CERTIFICATE-----
EludGVybmV0IFNlY3VyaXR5IFJlc2Vh...........
CgdNbOhdjsnvzqvHu7Ur/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
</ca>

Объяснение ключевых строк:

  • dev tun, proto tcp, remote: Обычные директивы OpenVPN. «remote 111.112.113.114 443» означает, что клиент будет подключаться к IP-адресу 111.112.113.114 на TCP-порту 443 (пример). Замените IP на адрес вашего сервера.
  • cipher AES-256-GCM, auth SHA384: Гарантируют надёжное шифрование и аутентификацию. Эти параметры должны совпадать с настройками на сервере SoftEther.
  • scramble obfuscate YourObfuscationMask: Важная строка, которая включает XOR-обфускацию на клиенте. Маска должна быть идентична маске, настроенной на сервере SoftEther.
  • <ca> … </ca>: CA-сертификат сервера, чтобы проверить его подлинность.

Важно: убедитесь, что ваша конфигурация VPN полностью совпадает с параметрами сервера. Если сомневаетесь, выполните следующую команду, чтобы сгенерировать стандартный файл конфигурации OpenVPN (который затем можно доработать, добавив строку scramble obfuscate):

OpenVpnMakeConfig

В сгенерированный файл необходимо добавить строку scramble obfuscate, чтобы активировать XOR-обфускацию.

Всё готово!

Активировав XOR-обфускацию на сервере SoftEther VPN и настроив директиву scramble obfuscate на клиенте OpenVPN, вы сможете замаскировать свой трафик OpenVPN. Это может помочь обойти блокировку или замедление, основанные на DPI. Учтите, что XOR-обфускация не заменяет полноценное шифрование; она лишь скрывает характерные сигнатуры пакетов OpenVPN.

Если у вас возникли проблемы с подключением, проверьте следующее:

  • Сервер SoftEther запущен в режиме standalone (автономном).
  • Вы используете клиент OpenVPN, поддерживающий или пропатченный для XOR-обфускации (например, Tunnelblick с патчами Scramble).
  • Указанная на клиенте маска обфускации полностью совпадает с ObfuscationMask на сервере.
  • Настройки брандмауэра (файерволла) позволяют передавать трафик на выбранных портах (например, TCP 443 или другом, который вы настроили).

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

FAQ

XOR-обфускация использует операцию XOR для маскирования трафика VPN, скрывая характерные шаблоны OpenVPN от систем DPI.
Нет. Она лишь маскирует трафик для обхода DPI, но не заменяет криптозащиту, которую обеспечивает OpenVPN.
Дa. Клиент должен поддерживать опцию scramble obfuscate. Например, Tunnelblick на macOS, openvpn-xor на Linux и похожие сборки.
Используйте генератор токенов или любой инструмент для создания случайных строк, чтобы получить длинную уникальную маску. Она должна совпадать на сервере и клиенте!
Да, XOR-обфускация работает только в том случае, если ObfuscationMask совпадает с обеих сторон.
Авторизуйтесь в vpncmd и выполните ListenerCreate . Если он уже создан, используйте ListenerEnable для включения.
Часто используется AES-256-GCM с аутентификацией SHA384. Убедитесь, что настройки cipher и auth совпадают на сервере и клиенте.
Да, XOR маскирует типичные сигнатуры OpenVPN, усложняя их обнаружение или блокировку при помощи DPI.
Среди клиентов, поддерживающих XOR: Tunnelblick (macOS), openvpn-windows-xor (Windows), openvpn-xor (Linux), VPN Client Pro (Android) и Passepartout (iOS).