Развертывание SSTP VPN на Windows Server и MikroTik: обход строгих фаерволов
- Все стандартные VPN-протоколы (WireGuard, OpenVPN UDP, IPsec) блокируются в отельных, мобильных или корпоративных сетях через жесткий DPI.
- Ошибка подключения в Windows:
Error 0x80092013: The revocation function was unable to check revocation because the revocation server was offline. - Ошибка
Error 868: The remote connection was not made because the name of the remote access server did not resolve. - Разрыв SSTP соединения каждые несколько минут из-за медленной работы TLS/TCP в условиях высоких сетевых потерь.
1. Архитектура и преимущества SSTP
SSTP передает PPP-трафик внутри стандартной сессии TLS 1.2/1.3 по TCP-порту 443. Для промежуточных DPI-фильтров и корпоративных прокси-серверов этот трафик выглядит как обычный защищенный веб-серфинг (HTTPS), что обеспечивает максимальную проходимость через любые межсетевые экраны.
2. Настройка Сервера SSTP на MikroTik RouterOS
# 1. Импорт или выпуск SSL сертификата с корректным DNS именем
/certificate
add name=sstp-ca common-name=vpn.company.ru days-valid=3650 key-usage=key-cert-sign,crl-sign
sign sstp-ca
add name=sstp-server common-name=vpn.company.ru days-valid=1095
sign sstp-server ca=sstp-ca
# 2. Создание пула адресов и профиля PPP
/ip pool
add name=sstp-pool ranges=10.150.0.10-10.150.0.200
/ppp profile
add change-tcp-mss=yes dns-server=1.1.1.1 local-address=10.150.0.1 \
name=sstp-profile remote-address=sstp-pool use-encryption=yes
# 3. Включение SSTP сервера
/interface sstp-server server
set authentication=mschap2 certificate=sstp-server default-profile=sstp-profile \
enabled=yes port=443 tls-version=only-1.2
# 4. Создание учетной записи пользователя
/ppp secret
add name=vpnuser password="SuperStrongPass2026!" profile=sstp-profile service=sstp3. Разрешение порта 443 в Firewall MikroTik
/ip firewall filter
add action=accept chain=input comment="Allow SSTP 443" dst-port=443 protocol=tcp4. Решение проблемы с проверкой сертификата в Windows
Если сертификат выпущен самоподписным CA, Windows заблокирует подключение из-за невозможности проверить статус отзыва (CRL).
Способ исправления через реестр на клиентах (PowerShell):
# Отключение проверки отзыва CRL для SSTP на клиенте Windows
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SstpSvc\Parameters" \
-Name "NoCertRevocationCheck" -Value 1 -PropertyType DWORD -Force5. Подключение через нативный клиент Windows
# Создание VPN-соединения через PowerShell
Add-VpnConnection -Name "Corp-SSTP" -ServerAddress "vpn.company.ru" \
-TunnelType "Sstp" -AuthenticationMethod "MSChapv2" -EncryptionLevel "Highest" Частые вопросы (FAQ)
Почему имя сервера при подключении должно строго совпадать с сертификатом?
Клиент SSTP проверяет соответствие имени хоста (Server Address) полю Subject CN или SAN в SSL-сертификате. Если подключение идет по IP-адресу, а в сертификате указан домен, Windows вернет ошибку проверки подлинности.
Можно ли повесить SSTP и корпоративный веб-сайт Nginx на один IP-адрес?
Да, используя SNI-проксирование (например, модуль ssl_preread в Nginx или HAProxy), можно распределять входящие запросы: веб-трафик отправлять веб-серверу, а VPN-подключения — на SSTP демон.
Почему скорость SSTP ниже, чем у WireGuard?
SSTP работает поверх протокола TCP, что вносит двойные накладные расходы на подтверждение доставки и управление окном передачи (TCP-over-TCP). На нестабильных каналах это приводит к просадке скорости.
Поддерживается ли SSTP на устройствах с Android и iOS?
Нативно нет. Для подключения требуются сторонние платные клиенты (например, OpenSSTP). Для мобильных устройств предпочтительнее использовать IKEv2/IPsec.