Что такое SSTP и почему он полезен
SSTP (Secure Socket Tunneling Protocol) — это протокол VPN, который инкапсулирует PPP-кадры внутри HTTPS-соединения. Благодаря использованию стандартного порта 443 и TLS-шифрования, SSTP-трафик практически неотличим от обычного защищённого веб-трафика. Это делает его идеальным для сетей со строгими межсетевыми экранами, где разрешён только HTTPS.
Главное преимущество SSTP — способность проходить через NAT, брандмауэры и даже прокси-серверы. В публичных Wi-Fi сетях, гостиницах или корпоративных сетях, где блокируются другие VPN-протоколы (например, L2TP или PPTP), SSTP часто остаётся единственным рабочим вариантом.
Однако у SSTP есть и недостатки. Поскольку он работает поверх TCP, накладные расходы выше, чем у UDP-протоколов (например, WireGuard или IPsec). Это может снижать производительность, особенно на каналах с высокой задержкой или потерями пакетов. Кроме того, на недорогих роутерах без аппаратного ускорения шифрования скорость SSTP может быть ограничена 20-25 Мбит/с.
Сравнение SSTP с другими VPN-протоколами
Чтобы понять, когда стоит выбирать SSTP, полезно сравнить его с популярными альтернативами.
- OpenVPN — также работает поверх TLS (обычно порт 443) и обеспечивает высокую гибкость настройки. Однако OpenVPN требует установки отдельного клиентского ПО, в то время как SSTP имеет встроенную поддержку в Windows.
- L2TP/IPsec — использует UDP 500 и 4500, часто блокируется в строгих сетях. Требует настройки IPsec, что усложняет конфигурацию.
- PPTP — устаревший и небезопасный протокол, его использование не рекомендуется.
- WireGuard — современный протокол на базе UDP, отличается высокой скоростью и простотой, но может быть заблокирован в сетях, где разрешён только TCP/443.
SSTP выделяется тем, что встроен в Windows (начиная с Vista) и не требует установки дополнительного ПО на большинстве клиентских систем. Это упрощает развёртывание для корпоративных пользователей.
Подготовка: требования и планирование
Перед настройкой SSTP-сервера необходимо учесть несколько ключевых моментов.
Оборудование и ОС. SSTP-сервер можно развернуть на роутерах MikroTik (RouterOS), на маршрутизаторах VyOS, а также на серверах под управлением Linux или Windows Server. В этой статье мы рассмотрим MikroTik и VyOS как наиболее распространённые варианты для малого и среднего бизнеса.
Сертификаты. SSTP требует сертификат сервера, подписанный доверенным центром сертификации (CA). Можно использовать публичный CA (например, Let's Encrypt) или создать собственный корневой CA. Для внутреннего использования часто создают собственный CA, чтобы не платить за сертификаты.
Схема адресации. Нужно решить, как клиенты будут получать IP-адреса. Вариант с Proxy ARP позволяет выдавать адреса из диапазона основной сети, что упрощает доступ без настройки маршрутов. Альтернатива — выделить отдельную подсеть для VPN-клиентов и настроить маршрутизацию.
Производительность. На недорогих моделях MikroTik (например, hEX, hAP) скорость SSTP ограничена из-за отсутствия аппаратного ускорения AES. Если требуется высокая пропускная способность, стоит рассмотреть более мощное оборудование или другие протоколы.
Создание центра сертификации и сертификатов на MikroTik
Для работы SSTP-сервера на MikroTik необходимо создать корневой сертификат CA и сертификат сервера. Это можно сделать через графический интерфейс WinBox или через командную строку.
Сначала убедитесь, что на роутере настроено правильное время и включена синхронизация NTP. Затем создайте корневой сертификат:
/certificate add name=CA country="RU" state="Moscow" locality="Moscow" organization="MyCompany" common-name="MyCA" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign CA ca-crl-host=127.0.0.1После этого создайте сертификат сервера. В поле Common Name укажите FQDN или IP-адрес, по которому клиенты будут подключаться. Для FQDN также нужно указать Subject Alt Name:
/certificate add name=sstp.example.com country="RU" state="Moscow" locality="Moscow" organization="MyCompany" common-name="sstp.example.com" subject-alt-name=DNS:"sstp.example.com" key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign sstp.example.com ca="CA"Важно: закрытый ключ CA никогда не должен покидать роутер. Для экспорта корневого сертификата (без ключа) используйте команду:
/certificate export-certificate CAЭкспортированный файл (в формате PEM) нужно будет установить на клиентские устройства.
Настройка SSTP-сервера на MikroTik
После создания сертификатов можно приступить к настройке самого сервера.
- Создайте пул IP-адресов для VPN-клиентов:
/ip pool add name=sstp_pool ranges=10.20.0.100-10.20.0.199- Создайте профиль PPP:
/ppp profile add local-address=10.20.0.1 name=SSTP-profile remote-address=sstp_pool- Создайте учётные записи пользователей:
/ppp secret add name=user1 password=strongpass profile=SSTP-profile service=sstp- Включите SSTP-сервер:
/interface sstp-server server set authentication=mschap2 certificate=sstp.example.com default-profile=SSTP-profile enabled=yes force-aes=yes pfs=yes tls-version=only-1.2Рекомендуется использовать только протокол аутентификации MSCHAPv2, принудительное шифрование AES256 (force-aes) и TLS версии 1.2 или выше. Включение PFS (Perfect Forward Secrecy) повышает безопасность, генерируя уникальные сессионные ключи.
Настройка SSTP-сервера на VyOS
VyOS — это сетевая ОС на базе Debian, которая также поддерживает SSTP-сервер. Настройка выполняется через CLI.
Сначала необходимо создать сертификаты. Можно использовать утилиту openssl или импортировать существующие. Пример создания самоподписанного сертификата:
openssl req -x509 -newkey rsa:2048 -keyout /config/auth/sstp.key -out /config/auth/sstp.crt -days 3650 -nodes -subj "/CN=sstp.example.com"Затем настройте SSTP-сервер:
set vpn sstp authentication local-users username user1 password 'strongpass'
set vpn sstp authentication mode local
set vpn sstp client-ip-pool subnet 10.20.0.0/24
set vpn sstp ssl certificate /config/auth/sstp.crt
set vpn sstp ssl key /config/auth/sstp.key
set vpn sstp default-pool sstp_pool
commit
saveВ VyOS также можно настроить firewall-правила для разрешения входящих подключений на порт 443.
Подключение клиентов Windows
Windows имеет встроенную поддержку SSTP, что упрощает настройку клиента.
- Установите корневой сертификат CA на клиентском компьютере. Дважды щёлкните файл сертификата, выберите «Установить сертификат», затем «Локальный компьютер» и поместите его в хранилище «Доверенные корневые центры сертификации».
- Создайте новое VPN-подключение:
- Откройте «Параметры» → «Сеть и Интернет» → «VPN» → «Добавление VPN-подключения».
- В поле «Поставщик VPN» выберите «Windows (встроенный)».
- В поле «Тип VPN» выберите «Протокол SSTP».
- Укажите адрес сервера (FQDN или IP) и учётные данные.
- Настройте свойства подключения: в разделе «Безопасность» убедитесь, что выбран только протокол MS-CHAP v2.
После этого можно подключаться. Windows автоматически проверит сертификат сервера, и если он доверенный, соединение будет установлено.
Подключение клиентов Linux и macOS
В Linux нет встроенного SSTP-клиента, но можно использовать сторонние решения, например, network-manager-sstp для Ubuntu/Debian.
Установка на Ubuntu:
apt update
apt install network-manager-sstpПосле установки в Network Manager появится возможность создать SSTP-соединение. Понадобится указать адрес сервера, учётные данные и файл корневого сертификата CA (в формате PEM).
Для macOS также нет встроенной поддержки SSTP, но можно использовать сторонние клиенты, например, SSTP Client от сторонних разработчиков. В целом, если у вас есть выбор, для Linux и macOS часто проще использовать OpenVPN или WireGuard, которые имеют более зрелую поддержку.
Безопасность и производительность SSTP
SSTP обеспечивает хороший уровень безопасности, особенно при правильной настройке. Рекомендуется:
- Использовать TLS 1.2 или выше, отключить старые версии.
- Принудительно использовать AES-256 шифрование.
- Включить Perfect Forward Secrecy (PFS).
- Использовать только MSCHAPv2 или более современные методы аутентификации (например, EAP-TLS).
Однако SSTP уязвим к атакам на уровне TCP, таким как TCP-ресет. В некоторых странах (например, в Китае) SSTP может блокироваться глубокой инспекцией пакетов (DPI).
Производительность SSTP ограничена из-за двойной инкапсуляции (PPP внутри TLS внутри TCP). На практике скорость редко превышает 100 Мбит/с даже на мощном оборудовании. Для высокоскоростных каналов лучше использовать WireGuard или IPsec.
Устранение неполадок и частые ошибки
При настройке SSTP могут возникнуть типичные проблемы.
Не удаётся установить соединение. Проверьте, что порт 443 открыт на межсетевом экране и проброшен на сервер. Убедитесь, что сертификат сервера действителен и не истёк.
Ошибка проверки сертификата. Клиент должен доверять корневому сертификату CA. Убедитесь, что он установлен в правильное хранилище.
Низкая скорость. Проверьте загрузку процессора на сервере. Если он загружен на 100%, возможно, требуется аппаратное ускорение шифрования.
Проблемы с аутентификацией. Убедитесь, что на сервере разрешён протокол MSCHAPv2, а учётные данные пользователя указаны верно.
Для диагностики на MikroTik используйте команды /log print и /interface sstp-server server monitor.
Вопросы и ответы
Чем SSTP отличается от OpenVPN?
SSTP и OpenVPN оба используют TLS для шифрования, но SSTP встроен в Windows, что упрощает настройку клиентов. OpenVPN более гибкий и кроссплатформенный, но требует установки клиентского ПО. SSTP работает только поверх TCP, что может снижать производительность, в то время как OpenVPN может использовать UDP.
Можно ли использовать SSTP для обхода блокировок?
SSTP может помочь обойти блокировки, так как его трафик выглядит как обычный HTTPS. Однако в некоторых странах применяется DPI, который может распознавать SSTP по характерным признакам. В таких случаях более эффективными могут быть другие протоколы, например, ShadowVPN или OpenVPN с obfuscation.
Какой сертификат нужен для SSTP-сервера?
Нужен сертификат X.509, подписанный доверенным CA. Можно использовать публичный CA (Let's Encrypt) или создать собственный корневой CA. Для внутреннего использования часто создают собственный CA, чтобы не платить за сертификаты. Важно, чтобы Common Name сертификата совпадал с адресом, по которому клиенты подключаются.
Почему SSTP медленнее, чем WireGuard?
SSTP работает поверх TCP, что добавляет накладные расходы и чувствительность к потерям пакетов. WireGuard использует UDP, что обеспечивает более высокую скорость и стабильность. Кроме того, SSTP использует двойную инкапсуляцию (PPP внутри TLS), что увеличивает накладные расходы.
Какие модели MikroTik поддерживают SSTP-сервер?
SSTP-сервер поддерживается в RouterOS на большинстве моделей MikroTik. Однако производительность зависит от аппаратного обеспечения. Младшие модели (hEX, hAP) могут обеспечить скорость до 20-25 Мбит/с, в то время как более мощные модели (RB4011, CCR) могут работать быстрее. Рекомендуется проверить спецификации конкретной модели.
Как настроить SSTP-клиент на Linux?
Для Linux используйте network-manager-sstp (Ubuntu/Debian) или sstp-client (Arch, Fedora). Установите пакет, затем создайте соединение в Network Manager, указав адрес сервера, учётные данные и путь к корневому сертификату CA. Для других дистрибутивов可能需要 собрать клиент из исходников.