SoftEther VPN Server: полное руководство по установке, настройке и использованию

Узнайте, как установить и настроить SoftEther VPN Server на Linux и в Docker. Обзор протоколов, управление виртуальными хабами, советы по безопасности и ответы на частые вопросы.

Что такое SoftEther VPN и почему он популярен

SoftEther VPN — это бесплатное, мультипротокольное VPN-решение с открытым исходным кодом, разработанное в Университете Цукубы (Япония). Оно позиционируется как гибкая альтернатива OpenVPN, предлагая более широкий набор протоколов и лучшую производительность в некоторых сценариях. Основное преимущество SoftEther — поддержка практически всех распространённых туннельных протоколов: L2TP/IPsec, MS-SSTP, EtherIP, L2TPv3, OpenVPN и собственного протокола SoftEther VPN, который маскируется под HTTPS-трафик. Это делает его идеальным инструментом для обхода блокировок и обеспечения безопасного доступа к ресурсам.

В отличие от OpenVPN, SoftEther не требует наличия TUN/TAP-устройств в ядре операционной системы. Он работает на любых VPS/VDS, включая виртуальные машины с ограниченной поддержкой сетевых драйверов. Это существенно упрощает развёртывание на дешёвых хостингах и в облачных средах. Кроме того, SoftEther поддерживает передачу данных не только по TCP/UDP, но и через имитацию ICMP (ping) и DNS-запросов, что позволяет обходить фильтрацию трафика в сетях с жёсткими ограничениями.

Клиентское и серверное ПО доступно для всех популярных операционных систем: Windows, Linux, macOS, FreeBSD и Solaris. Установка из исходных кодов в UNIX-системах максимально упрощена и не требует глубоких знаний компиляции. Всё это делает SoftEther привлекательным выбором как для корпоративных сетей, так и для частных пользователей, заботящихся о конфиденциальности.

Компоненты SoftEther VPN: сервер, клиент, мост и инструменты управления

Программный пакет SoftEther состоит из нескольких компонентов, каждый из которых выполняет свою функцию:

  • VPN Server — основной серверный компонент, который включает в себя сам сервер, мост и (в Windows-версии) графический менеджер. Он обеспечивает создание виртуальных хабов, управление пользователями и протоколами.
  • VPN Bridge — компонент для соединения локальных сетей через VPN-туннели. Позволяет объединять несколько офисов или филиалов в единую сеть.
  • VPN Server Manager — графическая утилита для Windows, предназначенная для администрирования локальных и удалённых VPN-серверов. Это самый удобный способ управления, особенно для начинающих администраторов.
  • vpncmd — консольная утилита для управления сервером, мостом и клиентом. Доступна в UNIX-системах и Windows. Позволяет выполнять все операции через командную строку, что удобно для автоматизации.
  • VPN Client — клиентское ПО для подключения к VPN-серверу. Поддерживает все протоколы SoftEther, включая собственный, L2TP/IPsec, SSTP и OpenVPN.

В UNIX-системах vpncmd устанавливается вместе с сервером, а в Windows входит в состав VPN Server Manager. Для управления удалёнными серверами можно использовать любой из этих инструментов, подключаясь по протоколу SoftEther или через SSH-туннель.

Подготовка сервера: требования и установка на Linux

Перед установкой SoftEther VPN Server убедитесь, что ваш сервер соответствует минимальным требованиям: 1 ГБ оперативной памяти, 10 ГБ дискового пространства и статический IP-адрес. Для работы с Docker достаточно 512 МБ ОЗУ, но для активного использования лучше иметь больше.

Установка из исходных кодов на CentOS или Ubuntu/Debian включает несколько шагов. Сначала установите компилятор и инструменты сборки:

# CentOS
yum groupinstall -y "Development Tools"

# Ubuntu/Debian
apt-get install -y build-essential

Затем скачайте исходники с официального сайта SoftEther. Например, для версии v4.27-9666-beta:

cd /usr/local
wget http://www.softether-download.com/files/softether/v4.27-9666-beta-2018.04.21-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.27-9666-beta-2018.04.21-linux-x64-64bit.tar.gz
tar -zxvf softether-vpnserver-v4.27-9666-beta-2018.04.21-linux-x64-64bit.tar.gz
cd vpnserver
make

Во время компиляции вам будет предложено принять лицензионное соглашение — отвечайте утвердительно (выберите 1). После сборки установите права доступа:

chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd

Проверьте совместимость системы с помощью встроенного инструмента проверки:

./vpncmd
# Выберите пункт 3 (VPN Tools), затем выполните команду check

Если все проверки пройдены (All checks passed), можно переходить к настройке.

Быстрый старт с Docker: развёртывание за 5 минут

Для тех, кто предпочитает контейнеризацию, SoftEther можно развернуть в Docker за несколько минут. Это особенно удобно для тестирования или быстрого запуска на облачных VPS. Используйте готовый образ siomiz/softethervpn.

Создайте файл docker-compose.yaml со следующей конфигурацией (замените значения в угловых скобках на свои):

version: '3'
services:
  softethervpn:
    container_name: 'softethervpn'
    image: siomiz/softethervpn
    cap_add:
      - NET_ADMIN
    environment:
      - PSK=          # pre-shared key для IPsec
      - "USERS=:"  # пользователи через точку с запятой
      - SPW=    # пароль администратора сервера
      - HPW=    # пароль администратора хаба
    ports:
      - "500:500/udp"
      - "4500:4500/udp"
      - "1701:1701/tcp"
      - "443:443/tcp"
      - "1194:1194/udp"
      - "5555:5555/tcp"
      - "992:992/tcp"

Запустите контейнер:

docker-compose up -d

После первого запуска скопируйте конфигурационный файл из контейнера в локальную папку, чтобы сохранить настройки при перезапусках:

docker cp softethervpn:/usr/vpnserver/vpn_server.config ./

Затем раскомментируйте строки с volumes в docker-compose.yaml и перезапустите контейнер. Теперь вы можете подключаться к серверу через VPN Server Manager для Windows или использовать встроенные протоколы.

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

После установки SoftEther необходимо выполнить начальную настройку. Запустите сервер:

./vpnserver start

Затем войдите в консоль управления:

./vpncmd
# Выберите пункт 1 (Management of VPN Server or VPN Bridge)
# Укажите localhost (или localhost:порт, если 443 занят)

Первым делом установите пароль администратора сервера:

VPN Server>ServerPasswordSet

Введите и подтвердите пароль. Далее создайте виртуальный хаб — это изолированная среда со своими пользователями, протоколами и политиками безопасности. На одном сервере может быть до 4096 хабов. Удалите стандартный хаб DEFAULT и создайте свой:

VPN Server>HubDelete
Name of Virtual Hub to delete: DEFAULT
VPN Server>HubCreate
Name of Virtual Hub to be created: VPN_1

После создания хаб появится в списке (команда HubList). Переключитесь на управление хабом:

VPN Server>Hub VPN_1

Теперь создайте пользователя и задайте ему пароль:

VPN Server/VPN_1>UserCreate
User Name: denni
VPN Server/VPN_1>UserPasswordSet
User Name: denni

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

Настройка протоколов: L2TP/IPsec, OpenVPN, SSTP и SoftEther VPN

SoftEther поддерживает множество протоколов, что позволяет подключаться с любых устройств. Рассмотрим настройку каждого из них.

L2TP/IPsec — стандартный протокол для Windows, macOS, iOS и Android. Для его активации достаточно включить IPsec в настройках сервера и указать pre-shared key (PSK). В Docker-образе PSK задаётся через переменную окружения. Клиенты подключаются по адресу сервера с указанием имени пользователя и пароля.

OpenVPN — популярный протокол, который SoftEther поддерживает из коробки. В VPN Server Manager выберите «Enable OpenVPN Clone Server» и нажмите «Generate a Sample Configuration File for OpenVPN Clients». Полученный файл можно использовать в любом OpenVPN-клиенте. Это удобно для пользователей, привыкших к OpenVPN.

SSTP (Secure Socket Tunneling Protocol) — протокол от Microsoft, работающий поверх HTTPS (порт 443). Он отлично маскируется под обычный веб-трафик. Для настройки SSTP необходимо сгенерировать самоподписанный сертификат на сервере, экспортировать его в формате .cer и импортировать в доверенные корневые центры сертификации на клиентской машине. После этого создаётся VPN-подключение SSTP.

SoftEther VPN — собственный протокол, который также работает через 443 порт и имитирует HTTPS. Он обеспечивает наилучшую производительность и устойчивость к блокировкам. Для подключения используйте официальный клиент SoftEther VPN Client.

Все протоколы можно использовать одновременно, что даёт гибкость при выборе способа подключения.

Управление виртуальными хабами и пользователями

Виртуальные хабы — это ключевая концепция SoftEther. Каждый хаб работает как отдельный VPN-сервер со своими настройками, пользователями и политиками безопасности. Хабы изолированы друг от друга, но могут быть объединены через мосты или каскадные соединения.

Для создания хаба используйте команду HubCreate, для удаления — HubDelete. Просмотр списка хабов и их статистики — HubList. Управление пользователями внутри хаба осуществляется командами UserCreate, UserDelete, UserPasswordSet, UserList. Каждому пользователю можно назначить группу, полное имя и описание.

Группы позволяют применять одинаковые политики безопасности к нескольким пользователям. Например, можно ограничить пропускную способность, разрешить доступ только к определённым ресурсам или установить срок действия пароля. Политики задаются через команду SecurityPolicySet или через графический интерфейс.

Для организации доступа к локальной сети за сервером используйте Local Bridge или SecureNAT. Local Bridge работает через TAP-устройство и требует поддержки TUN/TAP в ядре. Если она отсутствует, используйте SecureNAT — встроенный NAT и DHCP-сервер, который не требует дополнительных драйверов. SecureNAT настраивается командой SecureNatEnable и позволяет клиентам получать IP-адреса из заданного диапазона.

Обеспечение безопасности: шифрование, сертификаты и скрытие сервера

Безопасность — критически важный аспект при развёртывании VPN-сервера. SoftEther предоставляет несколько уровней защиты.

Шифрование — все протоколы используют современные алгоритмы (AES-256, RSA-4096 и другие). Для собственного протокола SoftEther и SSTP используется TLS, что обеспечивает защиту от прослушивания.

Аутентификация — помимо паролей, можно использовать сертификаты. SoftEther поддерживает создание и импорт сертификатов для пользователей и групп. Это повышает безопасность, так как сертификаты сложнее подделать.

Скрытие сервера — чтобы не привлекать внимание, отключите веб-интерфейс приветствия. В файле vpn_server.config найдите параметр bool DisableJsonRpcWebApi и установите его в true. Также рекомендуется закрыть все неиспользуемые порты, оставив только 443 (для SSTP и SoftEther VPN). Это снижает поверхность атаки и делает сервер менее заметным.

Брандмауэр — настройте файрвол на сервере, разрешив только необходимые порты. Для Docker используйте проброс портов только тех сервисов, которые реально нужны.

Мониторинг — регулярно просматривайте логи сервера (команда LogFileList) и статистику подключений (SessionList). Это поможет выявить подозрительную активность.

Автозапуск и обслуживание сервера

Чтобы VPN-сервер запускался автоматически после перезагрузки системы, создайте systemd-юнит или скрипт автозапуска. Для CentOS/Ubuntu можно использовать следующий подход:

Создайте файл /etc/systemd/system/softether.service:

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
PIDFile=/usr/local/vpnserver/vpnserver.pid
Restart=on-failure

[Install]
WantedBy=multi-user.target

Затем выполните:

systemctl daemon-reload
systemctl enable softether
systemctl start softether

Для Docker-контейнера автозапуск настраивается через restart: always в docker-compose.yaml.

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

Также полезно настроить резервное копирование конфигурационного файла vpn_server.config. В Docker это делается через volume, как описано выше. В обычной установке можно добавить задачу cron для копирования файла в безопасное место.

Решение типичных проблем и рекомендации по выбору

При работе с SoftEther могут возникать типичные проблемы. Рассмотрим их и способы решения.

Ошибка подключения к консоли (Error code: 2) — возникает, если порт 443 занят другим приложением. Используйте альтернативный порт (992, 1194, 5555) при подключении: localhost:992.

Не работает TUN/TAP — если ваш VPS не поддерживает TUN/TAP, используйте SecureNAT вместо Local Bridge. Это не требует дополнительных драйверов.

Проблемы с SSTP — убедитесь, что сертификат импортирован в доверенные корневые центры на клиенте. Также проверьте, что порт 443 открыт и не блокируется файрволом.

Медленное соединение — проверьте настройки шифрования и выберите протокол с меньшими накладными расходами. SoftEther VPN обычно быстрее, чем OpenVPN.

При выборе между SoftEther и OpenVPN учитывайте следующие факторы:

  • Простота установки — SoftEther проще в установке на VPS без TUN/TAP.
  • Мультипротокольность — SoftEther поддерживает больше протоколов из коробки.
  • Производительность — SoftEther часто показывает более высокую скорость благодаря оптимизации.
  • Сообщество — OpenVPN имеет более широкое сообщество и документацию, но SoftEther активно развивается.

Если вам нужен универсальный VPN-сервер с возможностью обхода блокировок, SoftEther — отличный выбор.

Вопросы и ответы

Какие протоколы поддерживает SoftEther VPN Server?

SoftEther поддерживает L2TP/IPsec, MS-SSTP, EtherIP, L2TPv3, OpenVPN и собственный протокол SoftEther VPN. Это позволяет подключаться с любых устройств и обходить блокировки, так как трафик может маскироваться под HTTPS.

Можно ли использовать SoftEther на VPS без TUN/TAP?

Да, SoftEther работает на любых VPS, даже без поддержки TUN/TAP. Для этого используется режим SecureNAT, который не требует дополнительных драйверов. Это одно из главных преимуществ перед OpenVPN.

Как настроить автозапуск SoftEther VPN Server?

Для обычной установки создайте systemd-юнит, как показано в статье. Для Docker добавьте restart: always в docker-compose.yaml. Это обеспечит автоматический запуск после перезагрузки.

Как скрыть факт использования VPN-сервера?

Отключите веб-интерфейс приветствия, установив DisableJsonRpcWebApi true в конфигурации. Также закройте неиспользуемые порты, оставив только 443. Используйте протоколы SSTP или SoftEther VPN, которые маскируются под HTTPS.

Какие порты нужно открыть для работы SoftEther?

Основные порты: 443 (SSTP, SoftEther VPN), 992 (SoftEther VPN), 1194 (OpenVPN), 5555 (SoftEther VPN), 500/4500/1701 (L2TP/IPsec). Для минимальной конфигурации достаточно 443.

Можно ли создать несколько виртуальных хабов на одном сервере?

Да, SoftEther позволяет создавать до 4096 виртуальных хабов. Каждый хаб изолирован и имеет своих пользователей, настройки и политики безопасности. Это удобно для разделения клиентов или отделов.

Как обновить SoftEther VPN Server?

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