Настройка OpenVPN через Cloak и связка с VLESS на FreeBSD

Itnull

Admin
Регистрация
22.05.13
Стаж
13 г. 5 мес.
Сообщения
29.301
Реакции
13.536
ID пользователя
1

🛡️ [Guide] Настройка OpenVPN через Cloak и связка с VLESS на FreeBSD 14.5​


Всем привет! В этой статье мы разберем развертывание классического OpenVPN на современной системе FreeBSD 14.5, а также рассмотрим методы его маскировки и обхода систем глубокого анализа трафика (DPI) с помощью модуля Cloak и современной инфраструктуры VLESS (Xray).

FreeBSD традиционно славится своим стабильным сетевым стеком и гибким пакетным фильтром (pf), что делает ее отличным выбором для создания отказоустойчивых VPN-шлюзов.

---

1. Подготовка системы FreeBSD 14.5​


Для начала работы обновите репозитории пакетов и установите необходимые базовые утилиты:

Bash:
pkg update
pkg upgrade -y
pkg install openvpn easy-rsa bash curl

Внесите параметры автозапуска в файл /etc/rc.conf с помощью утилиты sysrc:

Bash:
sysrc openvpn_enable="YES"
sysrc openvpn_if="tun"

---

2. Установка и базовая настройка OpenVPN​


Создайте рабочую директорию для управления сертификатами на базе easy-rsa:

Bash:
mkdir -p /usr/local/etc/openvpn/easy-rsa
cp -R /usr/local/share/easy-rsa/ /usr/local/etc/openvpn/easy-rsa/
cd /usr/local/etc/openvpn/easy-rsa/

Инициализируйте PKI (Public Key Infrastructure) и сгенерируйте ключи сервера и клиентов:

Bash:
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass

Скопируйте полученные файлы конфигурации и сертификаты в корневой каталог OpenVPN:

Bash:
cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /usr/local/etc/openvpn/

Создайте конфигурационный файл сервера /usr/local/etc/openvpn/server.conf:

Код:
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-GCM
auth SHA256

user nobody
group nobody
persist-key
persist-tun

status openvpn-status.log
verb 3

Запустите службу OpenVPN:

Bash:
service openvpn server start

---

3. Маскировка OpenVPN с помощью Cloak​


Cloak — это мощный плагин маскировки транспорта (Pluggable Transport), который заворачивает TCP-поток (включая трафик OpenVPN TCP) в легитимные HTTPS-запросы, защищая соединение от активного зондирования DPI.

  1. Скачайте актуальный бинарник ck-server для FreeBSD (архитектура amd64) с официального репозитория GitHub и сделайте его исполняемым:
    Bash:
    fetch https://github.com/c-fs/cloak/releases/download/v2.5.1/ck-server-freebsd-amd64 -o /usr/local/bin/ck-server
    chmod +x /usr/local/bin/ck-server
  2. Создайте конфигурационный файл Cloak /usr/local/etc/cloak/ck-server.json:
    JSON:
    {
      "LogFile": "stdout",
      "LogLevel": "info",
      "BindAddr": ["0.0.0.0:443"],
      "RedirAddr": "127.0.0.1:1194",
      "PrivateKey": "ВАШ_СЕКРЕТНЫЙ_ПРИВАТНЫЙ_КЛЮЧ_CLOAK",
      "AdminUID": "ВАШ_ADMIN_UID_UUID",
      "DatabasePath": "/usr/local/etc/cloak/userdb.json",
      "StreamTimeout": 300
    }
    (Приватный ключ и UID можно сгенерировать с помощью утилиты ck-server -key).
  3. Настройте перенаправление трафика: клиент подключается к Cloak на порт 443, Cloak расшифровывает легитимный трафик/маскировку, а «чистый» OpenVPN-поток отправляет локально на порт 1194.

---

4. Интеграция OpenVPN с VLESS (Xray)​


В современных сетевых реализациях протокол VLESS (работающий внутри ядра Xray-core) является одним из самых производительных стандартов. Напрямую OpenVPN «внутри» VLESS протокола не работает как встроенный модуль, однако их можно связывать архитектурно:

  • Параллельное использование: На FreeBSD 14.5 поднимается Xray для работы с VLESS (обычно с маскировкой XTLS-Reality на порт 443), в то время как OpenVPN переносится на другой нестандартный порт или работает локально через tun2socks.
  • Пример конфигурации Xray (/usr/local/etc/xray/config.json):

JSON:
{
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "b831381d-6324-4d53-ad4f-8cda48b30811",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "dest": "dl.google.com:443",
          "serverNames": ["dl.google.com"],
          "privateKey": "ПРИВАТНЫЙ_КЛЮЧ_REALITY"
        }
      }
    }
  ],
  "
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу