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

Подробное руководство по установке SoftEther VPN Server на Ubuntu: подготовка, компиляция, настройка через vpncmd и VPN Server Manager, создание пользователей, включение Secure NAT, а также рекомендации по безопасности.

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

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

SoftEther работает на различных платформах: Windows, Linux, macOS и BSD. На Ubuntu он не входит в стандартные репозитории, поэтому установка требует компиляции из исходников. Однако этот процесс хорошо документирован и не вызывает сложностей даже у начинающих администраторов.

Ключевые преимущества SoftEther перед другими VPN-решениями:

  • Высокая производительность благодаря оптимизированному сетевому стеку.
  • Возможность одновременной работы нескольких протоколов на одном сервере.
  • Встроенный механизм Secure NAT для раздачи адресов клиентам.
  • Гибкая система управления пользователями и политиками доступа.
  • Поддержка кластеризации и балансировки нагрузки (в более сложных конфигурациях).

SoftEther часто выбирают для создания корпоративных VPN, так как он позволяет подключаться с любых устройств — от Windows-компьютеров до смартфонов на Android и iOS.

Подготовка сервера Ubuntu к установке

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

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

sudo apt update
sudo apt upgrade -y

Затем установите инструменты сборки, необходимые для компиляции исходного кода:

sudo apt install build-essential -y

Пакет build-essential включает компилятор GCC, утилиты make и другие компоненты, без которых сборка SoftEther невозможна.

Также убедитесь, что на сервере есть свободное место (не менее 100 МБ) и достаточно оперативной памяти. Для небольших конфигураций достаточно 512 МБ ОЗУ, но для активного использования рекомендуется 1 ГБ и более.

Если вы используете облачный VPS, убедитесь, что в панели управления открыты необходимые порты: 443, 992, 1194, 5555 и 500/4500 для IPsec. Точный список портов зависит от выбранных протоколов, но для базовой настройки L2TP/IPsec нужны порты 500, 4500 и 1701.

Скачивание и компиляция SoftEther VPN Server

SoftEther VPN Server не входит в официальные репозитории Ubuntu, поэтому его необходимо скачать с официального сайта или с GitHub. Актуальные версии доступны на странице релизов проекта SoftEtherVPN/SoftEtherVPN_Stable.

Пример загрузки стабильной версии с помощью wget:

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.38-9731-rtm/softether-vpnserver-v4.38-9731-rtm-2023.01.30-linux-x64-64bit.tar.gz

Обратите внимание, что номер версии может отличаться — всегда проверяйте актуальную на официальной странице.

После загрузки распакуйте архив:

tar -xzf softether-vpnserver-*.tar.gz
cd vpnserver

Запустите компиляцию:

make

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

После успешной компиляции переместите папку vpnserver в системный каталог, например /opt или /usr/local:

sudo mv vpnserver /opt

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

sudo chmod 600 /opt/vpnserver/*
sudo chmod 700 /opt/vpnserver/vpncmd
sudo chmod 700 /opt/vpnserver/vpnserver

Эти права защищают конфигурационные файлы от чтения другими пользователями.

Создание systemd-сервиса для автозапуска

Чтобы SoftEther VPN Server запускался автоматически при загрузке системы, создайте systemd-сервис. Это обеспечит надёжный контроль над процессом и автоматический перезапуск при сбоях.

Создайте файл сервиса:

sudo nano /etc/systemd/system/vpnserver.service

Вставьте следующее содержимое:

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

[Service]
Type=forking
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
Restart=always

[Install]
WantedBy=multi-user.target

Если вы разместили SoftEther в другом каталоге, укажите соответствующий путь в ExecStart и ExecStop.

После сохранения файла выполните:

sudo systemctl daemon-reload
sudo systemctl enable vpnserver
sudo systemctl start vpnserver

Проверьте статус сервиса:

sudo systemctl status vpnserver

В выводе вы должны увидеть статус active (running). Если сервис не запустился, проверьте журнал ошибок:

journalctl -u vpnserver -n 50

Использование systemd вместо init.d предпочтительно, так как это современный стандарт управления службами в Ubuntu.

Первичная настройка через vpncmd

После запуска сервера необходимо выполнить первичную настройку. Для этого используется командная утилита vpncmd, которая позволяет управлять сервером из терминала.

Запустите vpncmd:

sudo /opt/vpnserver/vpncmd

В появившемся меню выберите пункт 1 (Management of VPN Server or VPN Bridge), затем дважды нажмите Enter, чтобы использовать локальный хост и стандартный порт.

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

ServerPasswordSet

Введите и подтвердите пароль. Этот пароль будет использоваться для подключения к серверу через VPN Server Manager.

Теперь вы можете создавать виртуальные хабы, пользователей и настраивать параметры. Основные команды vpncmd:

  • HubCreate <имя> — создать виртуальный хаб.
  • Hub <имя> — переключиться на хаб.
  • UserCreate <имя> — создать пользователя.
  • UserPasswordSet <имя> — задать пароль пользователя.
  • SecureNatEnable — включить Secure NAT.

Например, чтобы создать хаб MY_VPN и пользователя user1:

HubCreate MY_VPN
Hub MY_VPN
UserCreate user1
UserPasswordSet user1

После ввода пароля пользователь будет создан. Эти команды позволяют выполнить базовую настройку без графического интерфейса.

Настройка через графический VPN Server Manager

Для более удобного управления SoftEther VPN Server рекомендуется использовать графический клиент VPN Server Manager, который доступен для Windows. Он позволяет настраивать сервер визуально, что особенно удобно для новичков.

Скачайте VPN Server Manager с официального сайта SoftEther, выбрав соответствующую платформу и разрядность. Установите его, выбрав компонент SoftEther VPN Server Manager (Admin Tools Only).

После запуска создайте новое подключение:

  • Нажмите New Setting.
  • Укажите имя соединения (например, MyServer).
  • Введите IP-адрес или доменное имя вашего сервера.
  • Укажите пароль администратора, который вы установили ранее.

Нажмите OK и затем Connect. Откроется мастер первоначальной настройки. Для типичного сценария удалённого доступа выберите Remote Access VPN Server.

Мастер предложит:

  1. Создать виртуальный хаб — задайте имя, например MY_VPN.
  2. Настроить Dynamic DNS — можно пропустить, если у вас статический IP.
  3. Включить L2TP/IPsec — установите флажок и задайте Pre-Shared Key (общий ключ).
  4. Настроить Azure — отключите, если не нужен доступ через облако.
  5. Создать пользователей — добавьте учётные записи для клиентов.

После завершения мастера вы попадёте в главное окно управления, где можно детально настроить каждый виртуальный хаб, политики безопасности и параметры NAT.

Включение Secure NAT и настройка DHCP

Secure NAT — это встроенная функция SoftEther, которая позволяет раздавать IP-адреса VPN-клиентам и обеспечивать доступ в интернет через сервер. Это необходимо, если у вас нет отдельного DHCP-сервера в локальной сети.

В VPN Server Manager откройте виртуальный хаб (двойной клик по нему) и перейдите в раздел Virtual NAT and Virtual DHCP Server (Secure NAT). Включите Secure NAT, нажав соответствующую кнопку.

После включения SoftEther автоматически настроит виртуальный DHCP-сервер, который будет выдавать адреса клиентам в диапазоне 192.168.30.0/24 (по умолчанию). Вы можете изменить диапазон и другие параметры, отредактировав конфигурацию Secure NAT.

Secure NAT также выполняет трансляцию адресов (NAT), позволяя клиентам получать доступ к интернету через VPN-сервер. Это удобно, когда нужно скрыть реальный IP клиента или обойти географические ограничения.

Важно отметить, что Secure NAT потребляет некоторые ресурсы сервера, но в большинстве случаев это не критично. На слабых VPS с 512 МБ ОЗУ Secure NAT работает стабильно, как показывает практика.

Если у вас уже есть локальная сеть с собственным DHCP, вы можете отключить Secure NAT и настроить локальный мост (Local Bridge) для связи с физической сетью. Однако для простых сценариев Secure NAT — самое простое решение.

Подключение клиентов: L2TP/IPsec и другие протоколы

После настройки сервера клиенты могут подключаться через различные протоколы. Самый простой способ для Windows — использовать встроенный клиент L2TP/IPsec.

Настройка клиента Windows:

  1. Откройте ПараметрыСеть и ИнтернетVPN.
  2. Нажмите Добавить VPN-подключение.
  3. В качестве поставщика выберите Windows (встроенный).
  4. В поле Имя подключения укажите любое имя.
  5. В поле Имя или адрес сервера введите IP-адрес или домен вашего VPN-сервера.
  6. В качестве типа VPN выберите L2TP/IPsec с сертификатом (или L2TP/IPsec с предварительным ключом).
  7. Введите имя пользователя и пароль, созданные на сервере.
  8. В дополнительных параметрах укажите Pre-Shared Key, который вы задали при настройке IPsec.

После сохранения подключения нажмите Подключить. Если всё настроено правильно, соединение установится.

Для мобильных устройств (Android, iOS) также есть встроенная поддержка L2TP/IPsec. Настройка аналогична: укажите адрес сервера, имя пользователя, пароль и общий ключ.

SoftEther также поддерживает OpenVPN и собственный протокол SoftEther. Для последнего требуется установить клиент SoftEther VPN Client, который доступен для Windows, macOS и Linux. Этот клиент обеспечивает максимальную производительность и дополнительные функции, такие как сжатие трафика.

Безопасность и ограничение доступа

При настройке VPN-сервера важно уделить внимание безопасности, особенно если сервер доступен из интернета. Вот несколько рекомендаций:

  1. Используйте надёжные пароли для администратора и пользователей. Избегайте простых комбинаций.
  2. Ограничьте количество одновременных сессий для каждого пользователя. Это можно сделать в политиках учётной записи в VPN Server Manager.
  3. Настройте брандмауэр SoftEther (Access List) для ограничения доступа к определённым портам и ресурсам. Например, если клиентам нужен только доступ к терминальному серверу, закройте порты SMB (445) и другие ненужные.
  4. Отключите использование основного шлюза на клиентах Windows, если VPN используется только для доступа к локальной сети, а не для выхода в интернет. Это предотвратит маршрутизацию всего трафика через VPN.
  5. Регулярно обновляйте SoftEther до последней стабильной версии, чтобы получать исправления уязвимостей.
  6. Используйте файрвол на уровне ОС (ufw или iptables) для ограничения доступа к портам SoftEther только с нужных IP-адресов, если это возможно.

Также рекомендуется создавать группы пользователей и назначать политики на уровне групп, чтобы упростить управление правами. Например, можно создать группу remote_workers с ограниченным доступом и добавлять в неё новых сотрудников.

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

Типичные проблемы и их решение

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

Проблема: Сервер не запускается после установки. Проверьте, что вы правильно скомпилировали и переместили файлы. Убедитесь, что права доступа установлены корректно (chmod 700 на исполняемые файлы). Также проверьте журнал systemd: journalctl -u vpnserver -n 50.

Проблема: Клиенты не могут подключиться. Проверьте, открыты ли необходимые порты в файрволе сервера и у хостинг-провайдера. Для L2TP/IPsec нужны порты 500, 4500 и 1701. Также убедитесь, что в настройках IPsec включён L2TP и указан правильный Pre-Shared Key.

Проблема: Secure NAT не работает. Убедитесь, что Secure NAT включён в настройках виртуального хаба. Проверьте, не конфликтует ли подсеть Secure NAT с другими сетями. Если у вас уже есть DHCP-сервер, возможно, нужно отключить Secure NAT и настроить локальный мост.

Проблема: Низкая скорость соединения. Скорость может снижаться из-за шифрования, особенно на слабых серверах. Попробуйте использовать протокол SoftEther с включённым сжатием. Также проверьте загрузку процессора и сетевого интерфейса.

Проблема: Не удаётся подключиться через VPN Server Manager. Убедитесь, что вы используете правильный IP-адрес и порт (по умолчанию 443). Проверьте, что пароль администратора установлен. Если сервер находится за NAT, может потребоваться настройка проброса портов.

Если проблема не решается, обратитесь к официальной документации SoftEther или на форумы сообщества.

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

Какие системные требования для SoftEther VPN Server на Ubuntu?

Для базовой установки достаточно 512 МБ оперативной памяти и 100 МБ свободного места на диске. Процессор может быть любым современным x86_64. Для активного использования с большим количеством клиентов рекомендуется 1 ГБ ОЗУ и более. Также необходимо наличие компилятора (build-essential) для сборки из исходников.

Как открыть порты для SoftEther VPN в файрволе?

Для работы L2TP/IPsec необходимо открыть порты 500 (IKE), 4500 (IPsec NAT-T) и 1701 (L2TP). Для OpenVPN используется порт 1194, для SoftEther собственный протокол — порт 5555, а для администрирования — порт 443. Если вы используете ufw, выполните команды: sudo ufw allow 500/udp, sudo ufw allow 4500/udp, sudo ufw allow 1701/udp и т.д.

Можно ли использовать SoftEther VPN Server на Ubuntu без графического интерфейса?

Да, полная настройка возможна через командную строку с помощью утилиты vpncmd. Вы можете создавать хабы, пользователей, включать Secure NAT и настраивать политики. Однако для более удобного управления рекомендуется использовать VPN Server Manager на Windows, который подключается к серверу удалённо.

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

Создайте systemd-сервис, как описано в статье. Файл /etc/systemd/system/vpnserver.service должен содержать корректные пути к исполняемым файлам. Затем выполните sudo systemctl enable vpnserver и sudo systemctl start vpnserver. Сервер будет запускаться автоматически при загрузке системы.

Что делать, если клиенты не могут подключиться через L2TP/IPsec?

Проверьте, что на сервере включён L2TP/IPsec и задан Pre-Shared Key. Убедитесь, что порты 500, 4500 и 1701 открыты в файрволе и у хостинг-провайдера. Также проверьте, что у пользователя есть право на подключение (не заблокирован) и что пароль введён верно. Попробуйте подключиться с другого устройства, чтобы исключить проблемы клиента.

Как ограничить доступ VPN-клиентов только к определённым ресурсам?

Используйте встроенный брандмауэр SoftEther (Access List) в настройках виртуального хаба. Создайте правила, разрешающие доступ только к нужным IP-адресам и портам, а остальные запретите. Также можно ограничить количество одновременных сессий для пользователя в политиках учётной записи.