Что такое SoftEther VPN и почему он вам нужен
SoftEther VPN — это бесплатное программное обеспечение с открытым исходным кодом, разработанное как академический проект Университета Цукубы. Оно распространяется под лицензией Apache 2.0 и поддерживает Windows, Linux, macOS, FreeBSD и Solaris. Главная особенность SoftEther — мультипротокольность: он умеет работать одновременно как SSL-VPN, OpenVPN-сервер, L2TP/IPsec, MS-SSTP, EtherIP и L2TPv3. Это делает его универсальным инструментом для создания VPN-соединений любого типа.
В отличие от традиционных VPN-протоколов, которые легко блокируются межсетевыми экранами, SoftEther использует технологию VPN over HTTPS. Трафик маскируется под обычный HTTPS-запрос на порту 443, поэтому его практически невозможно отличить от стандартного веб-серфинга. Это позволяет обходить даже самые строгие фильтры, включая глубокую проверку пакетов (DPI).
SoftEther также поддерживает VPN over ICMP и VPN over DNS — экзотические методы, которые используют протоколы ICMP и DNS для передачи данных. Это может пригодиться в сетях, где разрешён только служебный трафик. Кроме того, встроенные функции NAT Traversal и Dynamic DNS позволяют подключаться к серверу, даже если он находится за NAT или имеет динамический IP-адрес.
Для пользователей, которые ценят скорость, SoftEther предлагает производительность на уровне 1 Гбит/с при низком потреблении CPU и памяти. Это достигается за счёт оптимизированного SSL-протокола и эффективной реализации виртуальных сетевых устройств.
Архитектура SoftEther: виртуальные адаптеры, хабы и сессии
Понимание архитектуры SoftEther помогает правильно настроить VPN под свои задачи. В основе лежит виртуализация Ethernet-устройств. На стороне клиента создаётся виртуальный сетевой адаптер — программная эмуляция физической сетевой карты. На стороне сервера работает Virtual Hub — виртуальный Ethernet-коммутатор, который соединяет все подключённые клиенты.
Соединение между адаптером и хабом называется VPN-сессией. Она устанавливается поверх TCP/IP и шифруется с помощью SSL. Это означает, что данные передаются так, будто клиент подключён к серверу обычным сетевым кабелем, но через интернет.
Virtual Hub может быть несколько на одном сервере. Каждый хаб работает как отдельный коммутатор, что позволяет сегментировать сеть. Например, один хаб для сотрудников, другой — для гостей. Также можно настроить Local Bridge — мост между Virtual Hub и физическим сетевым интерфейсом. Это позволяет клиентам VPN получать доступ к локальной сети офиса, как если бы они находились в ней физически.
Для объединения нескольких офисов используется каскадное соединение (cascading) между Virtual Hub. Оно создаёт мост между удалёнными хабами, объединяя их в единую L2-сеть. Это основа для site-to-site VPN.
SoftEther поддерживает как L2-мосты, так и L3-маршрутизацию. Вы можете выбрать, какой уровень использовать в зависимости от потребностей: L2 удобен для работы с сетевыми протоколами, L3 — для традиционной IP-маршрутизации.
Установка SoftEther VPN Server на Windows и Linux
Установка сервера SoftEther на Windows проста: скачайте установщик с официального сайта, запустите и следуйте инструкциям. В процессе установки выберите компонент SoftEther VPN Server. После завершения откроется мастер настройки, который предложит создать Virtual Hub и настроить первичные параметры.
На Linux процесс более ручной. Для Debian/Ubuntu сначала обновите репозитории и установите зависимости:
apt-get update -y
apt-get install build-essential gnupg2 gcc make -yЗатем скачайте архив с сервером с официального сайта (например, через браузер или wget). Извлеките его и перейдите в каталог:
tar -xvzf softether-vpnserver-*.tar.gz
cd vpnserverВыполните make, чтобы скомпилировать программу. После компиляции запустите сервер командой ./vpnserver start. Для управления используйте утилиту vpncmd:
./vpncmdВыберите опцию 1 (Management of VPN Server) и укажите localhost. Затем создайте Virtual Hub:
HubCreate MyHubНастройте пользователя:
UserCreate MyUser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet MyUser /PASSWORD:YourPasswordПосле этого сервер готов принимать подключения. Для доступа из интернета убедитесь, что порт 443 (или другой выбранный) открыт в файрволе и проброшен на роутере, если сервер за NAT.
Настройка клиента SoftEther VPN на Windows
Клиент SoftEther для Windows устанавливается аналогично серверу. После установки запустите VPN Client Manager. Первым делом создайте виртуальный сетевой адаптер: выберите пункт Виртуальный адаптер → Новый виртуальный сетевой адаптер, задайте имя (например, VPN1).
Затем создайте новое подключение: нажмите Подключить → Новая настройка VPN-соединения. Заполните поля:
- Название настройки — произвольное имя.
- Имя хоста — IP-адрес или доменное имя вашего сервера SoftEther.
- Номер порта — 443 (или порт, который вы настроили на сервере).
- Тип прокси — обычно Прямое соединение TCP/IP, но если вы за прокси, выберите соответствующий вариант.
- Виртуальный адаптер — выберите созданный ранее.
- Аутентификация — стандартная с паролем, укажите имя пользователя и пароль.
После сохранения щёлкните правой кнопкой мыши по соединению и выберите Подключиться. Если всё настроено верно, соединение установится. Проверьте IP-адрес на сайте WhatIsMyIP — он должен совпадать с IP вашего VPN-сервера.
Для смены DNS-серверов откройте свойства виртуального адаптера в Windows (Центр управления сетями → Изменение параметров адаптера), выберите Протокол интернета версии 4 и укажите предпочитаемые DNS.
Настройка клиента SoftEther VPN на Linux
Установка клиента на Linux требует больше шагов, но не сложнее. После установки зависимостей и компиляции (аналогично серверу, но с файлом vpnclient) запустите клиент:
./vpnclient startЗатем запустите ./vpncmd и выберите опцию 2 (Management of VPN Client). Создайте виртуальный адаптер:
NicCreate vpn0Создайте учётную запись для подключения:
AccountCreate MyAccount /SERVER:your-server-ip:443 /HUB:MyHub /USERNAME:MyUser /NICNAME:vpn0Установите пароль:
AccountPasswordSet MyAccount /PASSWORD:YourPassword /TYPE:standardПроверьте список учётных записей:
AccountListПеред подключением убедитесь, что включена IP-пересылка. Проверьте:
cat /proc/sys/net/ipv4/ip_forwardЕсли выводится 0, отредактируйте /etc/sysctl.conf, раскомментируйте строку net.ipv4.ip_forward=1 и примените изменения (sysctl -p).
Теперь подключитесь:
AccountConnect MyAccountЗапросите IP-адрес у VPN-сервера через DHCP:
dhclient vpn_vpn0Проверьте интерфейс командой ifconfig vpn_vpn0 — вы увидите назначенный IP.
Настройка маршрутизации для всего трафика через VPN
После подключения к VPN на Linux необходимо настроить маршрутизацию, чтобы весь трафик шёл через туннель. Сначала посмотрите текущую таблицу маршрутов:
netstat -rnНайдите IP вашего VPN-сервера (это адрес, который вы указали при создании аккаунта, а не выданный DHCP) и ваш локальный шлюз по умолчанию. Добавьте маршрут к VPN-серверу через локальный шлюз:
ip route add <VPN_SERVER_IP>/32 via <LOCAL_GATEWAY>Затем удалите старый маршрут по умолчанию:
ip route del default via <LOCAL_GATEWAY>Теперь добавьте новый маршрут по умолчанию через VPN-интерфейс. IP-адрес шлюза можно узнать из DHCP (обычно это IP самого VPN-сервера или первый адрес подсети):
ip route add default via <VPN_GATEWAY_IP> dev vpn_vpn0Проверьте связь, пингуя внешний ресурс:
ping -c4 8.8.8.8Затем проверьте ваш публичный IP:
wget -qO- http://ipecho.net/plain; echoЕсли он совпадает с IP VPN-сервера, всё работает. Для отключения VPN выполните обратные операции: удалите маршрут по умолчанию, добавьте старый, отключите аккаунт и остановите клиент.
Использование HTTPS-порта для обхода блокировок
Одной из главных причин популярности SoftEther является возможность работы через HTTPS-порт 443. Это позволяет маскировать VPN-трафик под обычные HTTPS-запросы, что делает его невидимым для большинства систем фильтрации.
При настройке клиента на Windows или Linux вы указываете порт 443. Сервер SoftEther по умолчанию слушает этот порт для SSL-VPN. Если порт 443 уже занят другим сервисом (например, веб-сервером), вы можете изменить порт в настройках сервера или использовать другой порт, например 8443.
Важно: только клиенты SoftEther поддерживают VPN over HTTPS. Если вы используете сторонние клиенты (например, OpenVPN), они не смогут подключиться через этот метод. Для них нужно использовать соответствующие протоколы (OpenVPN, L2TP/IPsec).
Для повышения скрытности можно настроить сервер так, чтобы он отвечал на обычные HTTPS-запросы, перенаправляя их на веб-страницу, а VPN-трафик обрабатывал отдельно. Это реализуется через настройку Virtual Host в SoftEther Server Manager.
Также SoftEther поддерживает VPN over ICMP и VPN over DNS. Эти методы могут быть полезны в сетях, где разрешён только ICMP или DNS-трафик. Однако они медленнее и менее надёжны, чем HTTPS.
Безопасность и шифрование в SoftEther VPN
SoftEther использует современные алгоритмы шифрования: AES-256 для шифрования данных и RSA-4096 для обмена ключами. Это обеспечивает высокий уровень защиты от перехвата и расшифровки трафика.
В 2023 году была добавлена защита от уязвимости TunnelCrack, которая затрагивает многие VPN-клиенты. TunnelCrack позволяет злоумышленнику перехватывать трафик, если VPN-клиент неправильно обрабатывает маршрутизацию. SoftEther реализовал меры против этой атаки.
В 2023 году также были исправлены шесть уязвимостей, включая CVE-2023-27395, обнаруженные в ходе аудита кода совместно с Cisco Systems. Разработчики рекомендуют всегда обновлять SoftEther до последней версии.
Для аутентификации пользователей SoftEther поддерживает стандартные пароли, RSA-сертификаты, а также интеграцию с RADIUS и NT Domain. Это позволяет использовать корпоративные системы учётных записей.
Дополнительные функции безопасности включают:
- Source IP Control List — ограничение доступа по IP-адресам.
- Packet Logging — детальное логирование трафика.
- Syslog Transfer — отправка логов на внешний сервер.
- Firewall внутри VPN-туннеля — возможность фильтрации трафика между клиентами.
При настройке сервера рекомендуется отключить неиспользуемые протоколы и порты, чтобы уменьшить поверхность атаки.
Сравнение SoftEther с OpenVPN и WireGuard
SoftEther часто сравнивают с OpenVPN и WireGuard. Вот основные отличия:
- Мультипротокольность: SoftEther поддерживает несколько протоколов одновременно, тогда как OpenVPN и WireGuard используют один. Это позволяет подключаться с любых устройств, включая встроенные клиенты iOS/Android (через L2TP/IPsec).
- Скорость: SoftEther утверждает, что быстрее OpenVPN благодаря оптимизированному SSL-протоколу. WireGuard обычно быстрее, но SoftEther не сильно отстаёт.
- Обход блокировок: SoftEther имеет встроенные механизмы обхода (HTTPS, ICMP, DNS), в то время как OpenVPN и WireGuard легко блокируются DPI. WireGuard особенно уязвим, так как его трафик легко идентифицировать.
- Сложность настройки: SoftEther имеет графический интерфейс для Windows и удобный CLI для Linux, но из-за множества опций может показаться сложным. OpenVPN также требует настройки, но имеет больше готовых решений. WireGuard настраивается проще всего.
- Лицензия: SoftEther — Apache 2.0, OpenVPN — GPL, WireGuard — GPL. Все бесплатны.
Если вам нужна максимальная совместимость и обход блокировок, SoftEther — отличный выбор. Если приоритет — простота и скорость, рассмотрите WireGuard. OpenVPN остаётся хорошим компромиссом.
Типичные проблемы и их решение
При настройке SoftEther могут возникнуть следующие проблемы:
Не удаётся подключиться к серверу. Проверьте, что сервер запущен, порт 443 открыт в файрволе и проброшен на роутере. Убедитесь, что имя хоста и порт указаны правильно. Попробуйте использовать IP-адрес вместо домена.
Соединение устанавливается, но нет доступа в интернет. Проверьте маршрутизацию. На Linux убедитесь, что IP-пересылка включена и маршрут по умолчанию указывает на VPN-интерфейс. На Windows проверьте, что виртуальный адаптер получил IP и DNS.
Низкая скорость. Попробуйте изменить протокол (например, использовать UDP вместо TCP). Убедитесь, что сервер имеет достаточную пропускную способность. Также проверьте, не блокирует ли провайдер VPN-трафик.
Ошибка аутентификации. Проверьте имя пользователя и пароль. Убедитесь, что учётная запись создана на правильном Virtual Hub.
Проблемы с DNS. Если DNS не работает, укажите DNS-серверы вручную в настройках виртуального адаптера. Например, 8.8.8.8 и 1.1.1.1.
Конфликт порта 443. Если порт занят, измените порт SoftEther на другой (например, 8443) и укажите его в клиенте.
Не работает VPN over HTTPS. Убедитесь, что используется клиент SoftEther, а не сторонний. Также проверьте, что сервер настроен на приём HTTPS-соединений.
Вопросы и ответы
Можно ли использовать SoftEther VPN бесплатно для коммерческих целей?
Да, SoftEther VPN распространяется под лицензией Apache 2.0, которая разрешает бесплатное использование как в личных, так и в коммерческих проектах. Вы можете устанавливать его на неограниченное количество серверов и клиентов без каких-либо платежей.
Какой порт лучше использовать для SoftEther VPN, чтобы обойти блокировки?
Лучше всего использовать порт 443, так как он зарезервирован для HTTPS-трафика и обычно не блокируется. SoftEther маскирует VPN-трафик под HTTPS, поэтому соединение выглядит как обычный защищённый веб-запрос. Если порт 443 занят, можно выбрать другой, например 8443, но это может снизить скрытность.
Поддерживает ли SoftEther VPN подключение с iPhone или Android?
Да, SoftEther VPN Server поддерживает протокол L2TP/IPsec, который встроен в iOS и Android. Вы можете настроить подключение на мобильном устройстве, указав IP-адрес сервера, имя пользователя и пароль. Также можно использовать сторонние клиенты, поддерживающие OpenVPN или SoftEther.
Чем SoftEther VPN отличается от OpenVPN?
SoftEther поддерживает несколько протоколов (SSL-VPN, OpenVPN, L2TP/IPsec, SSTP и другие), в то время как OpenVPN использует только свой протокол. SoftEther имеет встроенные механизмы обхода блокировок (HTTPS, ICMP, DNS) и часто показывает более высокую скорость. OpenVPN более распространён и имеет больше готовых конфигураций, но SoftEther является более гибким.
Как проверить, что VPN-соединение действительно работает?
После подключения проверьте ваш публичный IP-адрес на любом сервисе (например, 2ip.ru или WhatIsMyIP). Если он совпадает с IP-адресом вашего VPN-сервера, значит, трафик идёт через туннель. Также можно выполнить команду traceroute или ping до внешнего ресурса и убедиться, что маршрут проходит через VPN.
Что делать, если SoftEther VPN не может подключиться из-за блокировки провайдером?
Попробуйте использовать VPN over HTTPS (порт 443), так как этот трафик сложно отличить от обычного веб-серфинга. Также можно включить VPN over ICMP или DNS, если они поддерживаются. Если проблема сохраняется, попробуйте сменить порт или использовать протокол OpenVPN вместо SSL-VPN.