Настройка OpenVPN поверх Stunnel на VPS с Ubuntu 22.04
Введение
Руководство пошагово описывает OpenVPN поверх Stunnel на Ubuntu 22.04. Инкапсуляция трафика OpenVPN в SSL-туннель Stunnel добавляет защиту и потенциально помогает обходить сетевые ограничения или межсетевые экраны, блокирующие либо замедляющие VPN.Предварительные требования
- VPS: EDIS Global VPS с Ubuntu 22.04 и доступом root или sudo.
- Клиентский компьютер: Ubuntu или другой дистрибутив Linux, совместимый с OpenVPN и Stunnel; доступ root или sudo.
Обзор
Основные этапы:- На VPS: установка и настройка Stunnel, затем OpenVPN.
- На клиенте: установка и настройка Stunnel, затем подключение OpenVPN через него.
Действия на VPS
- Обновите системные пакеты
Убедитесь, что пакеты актуальны:
- Установите Stunnel
Stunnel создаст SSL-туннель для трафика OpenVPN:
- Создайте SSL-сертификат для Stunnel
Перейдите в каталог настроек Stunnel и создайте самоподписанный сертификат:
openssl req -new -x509 -days 365 -nodesсоздаёт сертификат X.509 на 365 дней без парольной фразы (-nodes).-out stunnel.pem -keyout stunnel.pemсохраняет сертификат и закрытый ключ вstunnel.pem.
- Создайте журнал Stunnel
Создайте файл для записи журнала:
- Настройте Stunnel
Откройте файл конфигурации:
output— путь к журналу.[openvpn]— служба с именем openvpn.client = no— серверный режим Stunnel.accept = 443— прослушивание порта 443, обычно используемого HTTPS и часто разрешённого межсетевыми экранами.connect = 127.0.0.1:1194— пересылка входящих соединений локальному OpenVPN.cert— файл SSL-сертификата.
- Включите и запустите службу Stunnel
Включите автозапуск и запустите службу:
enable включает запуск при загрузке, restart запускает или перезапускает службу, status проверяет её работу.
- Установите OpenVPN
Скачайте и запустите установочный скрипт:
- Измените конфигурацию сервера OpenVPN
Настройте прослушивание всех интерфейсов:
local:
local 0.0.0.0 включает прослушивание всех сетевых интерфейсов.
- Перезапустите OpenVPN
Примените изменения:
Действия на клиентском компьютере
- Установите Stunnel
Установите Stunnel на клиенте:
- Настройте Stunnel
Перейдите в каталог настроек и создайте конфигурационный файл:
client = yes— клиентский режим.accept = 127.0.0.1:1194— локальное прослушивание порта 1194.connect = VPS_IP_ADDRESS:443— соединение со Stunnel на VPS.
VPS_IP_ADDRESS фактическим IP VPS.
- Включите и запустите службу Stunnel
Включите автозапуск и запустите службу:
- Скопируйте клиентскую конфигурацию OpenVPN
Безопасно перенесите файл конфигурации с VPS на клиент:
client.ovpn копируется в домашний каталог.
Примечание: замените VPS_IP_ADDRESS IP-адресом VPS.
- Измените клиентскую конфигурацию OpenVPN
Переименуйте и откройте файл:
- Направьте директиву
remoteна локальный конец Stunnel. - Добавьте или измените следующие директивы.
- При необходимости укажите файл журнала.
remote 127.0.0.1 1194подключает OpenVPN к локальному Stunnel.route-nopullзапрещает автоматическое изменение маршрутов.script-security 2разрешает выполнение скриптов.route-upзапускает скрипт после установления соединения.
- Создайте скрипт маршрутизации
Создайте скрипт для изменения маршрутов после подключения:
SERVER_IP— IP VPS.GATEWAYопределяет шлюз по умолчанию, чтобы трафик к самому VPS шёл вне VPN-туннеля.- Команды
ip route addменяют таблицу маршрутизации.
VPS_IP_ADDRESS IP-адресом VPS.
Разрешите выполнение скрипта:
- Запустите клиент OpenVPN
Запустите клиентскую службу:
Проверка
- Проверьте IP-адрес
До и после запуска VPN проверьте публичный IP, чтобы убедиться, что трафик идёт через VPN:
- Проверьте службы
Убедитесь, что Stunnel и OpenVPN работают:
- Проверьте соединение
Убедитесь, что интернет-ресурсы доступны, а трафик проходит через VPN:
Устранение неполадок
- Соединение Stunnel отклонено: разрешите входящий порт 443 в межсетевом экране VPS и проверьте службу командой
sudo systemctl status stunnel4. - Ошибка аутентификации OpenVPN: проверьте соответствие сертификатов клиента и сервера и журналы OpenVPN на обеих сторонах.
- Проблемы маршрутизации: проверьте IP сервера в
routing.sh, право выполнения скрипта и правильность пути в конфигурации OpenVPN. - Служба не запускается: изучите
journalctl -xeили журнал службы, проверьте опечатки и синтаксис конфигурационных файлов.
Заключение
OpenVPN поверх Stunnel на Ubuntu 22.04 настроен. Эта конфигурация добавляет слой шифрования и может помочь обойти сетевые ограничения, помещая VPN-трафик внутрь стандартных протоколов SSL/TLS.Источники
Примечание: убедитесь, что использование VPN и шифрования соответствует местным законам и правилам.