SSTP Client - Secure Socket Tunneling Protocol
SSTP (Secure Socket Tunneling Protocol) - это VPN протокол, который транспортирует PPP трафик через SSL/TLS канал. SSTP использует TCP порт 443 по умолчанию, что позволяет ему проходить через большинство файрволов и прокси-серверов, которые обычно блокируют другие VPN протоколы.
Введение в SSTP
Что такое SSTP?
SSTP - это проприетарный протокол Microsoft, который:
- Инкапсулирует PPP трафик внутри SSL/TLS соединения
- Использует TCP порт 443 (стандартный HTTPS порт)
- Обеспечивает transport-level безопасность
- Поддерживает key negotiation и шифрование
- Проверяет целостность трафика
- Легко проходит через файрволы и NAT
Архитектура SSTP
Компоненты:
- SSTP Client - инициирует соединение (VyOS router)
- SSTP Server - принимает соединение (Windows Server, VyOS, другие)
- SSL/TLS layer - обеспечивает шифрование
- PPP layer - транспортный протокол
- HTTP/HTTPS - базовый транспорт
Этапы установки соединения:
- TCP handshake на порт 443
- TLS handshake - установка SSL сессии
- HTTP negotiation - SSTP protocol negotiation
- PPP session - установка PPP соединения
- Authentication - PAP/CHAP/MS-CHAP
- IP configuration - получение IP адреса
Преимущества SSTP
Обход ограничений:
- Использует порт 443 (HTTPS) - не блокируется файрволами
- Проходит через HTTP прокси
- Работает через NAT без дополнительной настройки
- Выглядит как обычный HTTPS трафик
Безопасность:
- SSL/TLS шифрование (AES-256)
- Certificate-based authentication
- Защита от MITM атак
- Проверка целостности данных
Применение:
- Удаленный доступ через ограничивающие файрволы
- Корпоративные сети с жесткими политиками
- Публичные Wi-Fi сети с блокировкой VPN
- Backup VPN канал (всегда доступный)
Когда использовать SSTP?
Рекомендуется для:
- Подключение из сетей с ограничивающими файрволами
- Публичные Wi-Fi с блокировкой VPN портов
- Корпоративные сети с белым списком портов
- Backup канал когда IPsec/OpenVPN/WireGuard заблокированы
- Совместимость с Windows Server SSTP
Применение:
- Remote access VPN для сотрудников
- Site-to-Site VPN через ограничивающие ISP
- Bypass censorship и DPI (Deep Packet Inspection)
- Резервный VPN канал
Конфигурация SSTP Client
Базовая настройка
configure
# Создать SSTP интерфейс
set interfaces sstpc sstpc0 server 'vpn.example.com'
set interfaces sstpc sstpc0 authentication username 'myuser'
set interfaces sstpc sstpc0 authentication password 'SecretPassword123'
# SSL certificate verification (если self-signed - отключить)
set interfaces sstpc sstpc0 ssl ca-certificate 'VPN-CA'
# Автоматический default route
set interfaces sstpc sstpc0 default-route auto
commit
saveРезультат:
- SSTP соединение к vpn.example.com:443
- Автоматическое получение IP адреса от сервера
- Default route через SSTP туннель
- SSL/TLS шифрование
Параметры конфигурации
Server
# FQDN сервера
set interfaces sstpc sstpc0 server 'vpn.company.com'
# IP адрес сервера
set interfaces sstpc sstpc0 server '203.0.113.10'
# Сервер с нестандартным портом (если не 443)
# SSTP всегда использует порт 443, изменение не поддерживаетсяВажно: Сервер должен быть доступен по FQDN или IP на порту 443/TCP.
Authentication
# Username и password
set interfaces sstpc sstpc0 authentication username 'user@domain.com'
set interfaces sstpc sstpc0 authentication password 'MyPassword'Типы аутентификации:
- PAP (Password Authentication Protocol) - не рекомендуется
- CHAP (Challenge Handshake Authentication Protocol)
- MS-CHAP v2 (Microsoft CHAP) - рекомендуется для Windows Server
VyOS автоматически согласует метод с сервером.
SSL Certificate
# CA certificate для проверки сервера
set interfaces sstpc sstpc0 ssl ca-certificate 'VPN-CA'
# Если self-signed сертификат - можно пропустить проверку
# (не рекомендуется в production)
# Просто не указывать ca-certificateИмпорт CA certificate:
# Загрузить CA cert на VyOS
configure
set pki ca VPN-CA certificate 'MIIDXTCCAkWgAwIBAgIJ...'
commitИли загрузить файл:
# Скопировать файл на VyOS
scp ca.crt vyos@router:/tmp/
# Импортировать
vyos@router# configure
vyos@router# load /config/auth/ca.crtDefault Route
# Автоматически добавить default route через SSTP
set interfaces sstpc sstpc0 default-route auto
# Явно указать default route
set interfaces sstpc sstpc0 default-route force
# Не добавлять default route (split-tunnel)
set interfaces sstpc sstpc0 no-default-route
# Default route с метрикой
set interfaces sstpc sstpc0 default-route-distance 10Опции:
auto- добавить route если SSTP единственное подключениеforce- всегда добавлять routeno-default-route- не добавлять route (split-tunnel)
MTU
# MTU (Maximum Transmission Unit)
set interfaces sstpc sstpc0 mtu 1452Рекомендации MTU:
- Ethernet MTU: 1500 bytes
- SSTP overhead: ~48 bytes (PPP + SSL/TLS + TCP + IP headers)
- Рекомендуемый MTU: 1452 bytes
- Для низкоскоростных каналов: 1400 bytes
TCP MSS clamping:
# Установить TCP MSS для предотвращения фрагментации
set interfaces sstpc sstpc0 ip adjust-mss 1412
set interfaces sstpc sstpc0 ipv6 adjust-mss 1392DNS Configuration
# Получать DNS от SSTP сервера (default)
# (автоматически через PPP negotiation)
# Не использовать DNS от сервера
set interfaces sstpc sstpc0 no-peer-dnsVRF Support
# Поместить SSTP интерфейс в VRF
set interfaces sstpc sstpc0 vrf MANAGEMENTUse case: Изоляция management трафика через отдельный VPN.
Interface Description
# Добавить описание
set interfaces sstpc sstpc0 description 'Corporate VPN - Main Link'IP Configuration
# Автоматическое получение IP от сервера (default)
# (через PPP negotiation)
# Статический IP (если сервер требует)
# SSTP обычно использует dynamic IP assignmentDisable Interface
# Временно отключить интерфейс
set interfaces sstpc sstpc0 disable
# Включить обратно
delete interfaces sstpc sstpc0 disable
commitSource Validation
# Настроить source validation
set interfaces sstpc sstpc0 ip disable-forwarding
set interfaces sstpc sstpc0 ip source-validation strict
set interfaces sstpc sstpc0 ip source-validation loose
set interfaces sstpc sstpc0 ip source-validation disableПрактические сценарии
Сценарий 1: Remote Access VPN через ограничивающий файрвол
Топология:
[User Laptop] ---- [Restrictive Firewall] ---- [Internet] ---- [SSTP Server]
(only port 443 allowed)Задача: Подключиться к корпоративной сети из публичного Wi-Fi, который блокирует все порты кроме 80/443.
Конфигурация VyOS:
configure
# SSTP интерфейс
set interfaces sstpc sstpc0 server 'vpn.company.com'
set interfaces sstpc sstpc0 authentication username 'employee@company.com'
set interfaces sstpc sstpc0 authentication password 'StrongPassword!23'
set interfaces sstpc sstpc0 ssl ca-certificate 'COMPANY-CA'
set interfaces sstpc sstpc0 default-route auto
set interfaces sstpc sstpc0 mtu 1452
set interfaces sstpc sstpc0 description 'Corporate VPN'
# LAN интерфейс (для клиентов за VyOS)
set interfaces ethernet eth1 address 192.168.1.1/24
# NAT для LAN через SSTP
set nat source rule 100 outbound-interface name sstpc0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
# DHCP для LAN клиентов
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start 192.168.1.100
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop 192.168.1.200
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option default-router 192.168.1.1
commit
saveПроверка:
# Статус SSTP интерфейса
show interfaces sstpc sstpc0
# Полученный IP адрес
show interfaces sstpc sstpc0 brief
# Default route
show ip route
# Тест connectivity
ping 8.8.8.8 interface sstpc0Сценарий 2: Site-to-Site VPN через SSTP
Топология:
[Branch Office VyOS] ---- SSTP ---- [HQ SSTP Server]
192.168.2.0/24 192.168.1.0/24Задача: Соединить филиал с головным офисом через SSTP (ISP блокирует IPsec).
Конфигурация Branch Office:
configure
# WAN интерфейс
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'WAN - ISP'
# SSTP к головному офису
set interfaces sstpc sstpc0 server 'hq-vpn.company.com'
set interfaces sstpc sstpc0 authentication username 'branch-office-1'
set interfaces sstpc sstpc0 authentication password 'BranchPass123!'
set interfaces sstpc sstpc0 ssl ca-certificate 'HQ-VPN-CA'
set interfaces sstpc sstpc0 no-default-route
set interfaces sstpc sstpc0 mtu 1452
set interfaces sstpc sstpc0 description 'VPN to HQ'
# LAN интерфейс
set interfaces ethernet eth1 address 192.168.2.1/24
set interfaces ethernet eth1 description 'Branch LAN'
# Статический маршрут к HQ сети через SSTP
# (предполагая что SSTP server выдает 10.10.0.x адреса)
set protocols static route 192.168.1.0/24 interface sstpc0
# NAT для интернета через WAN
set nat source rule 100 outbound-interface name eth0
set nat source rule 100 source address 192.168.2.0/24
set nat source rule 100 translation address masquerade
# DHCP для LAN
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 range 0 start 192.168.2.100
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 range 0 stop 192.168.2.200
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 option default-router 192.168.2.1
# DNS forwarding
set service dns forwarding listen-address 192.168.2.1
set service dns forwarding allow-from 192.168.2.0/24
commit
saveПроверка:
# SSTP соединение
show interfaces sstpc sstpc0
# Routing table
show ip route
# Ping HQ сети
ping 192.168.1.1 source-address 192.168.2.1Сценарий 3: Dual VPN (SSTP + WireGuard Failover)
Топология:
┌─ WireGuard (Primary, fast)
[VyOS Router] ───┤
└─ SSTP (Backup, always works)Задача: Основной канал через WireGuard для производительности, SSTP как резервный на случай блокировки.
Конфигурация:
configure
# Primary VPN: WireGuard
set interfaces wireguard wg0 address 10.10.0.1/30
set interfaces wireguard wg0 port 51820
set interfaces wireguard wg0 private-key 'WIREGUARD_PRIVATE_KEY'
set interfaces wireguard wg0 peer hq public-key 'HQ_PUBLIC_KEY'
set interfaces wireguard wg0 peer hq allowed-ips '10.10.0.2/32'
set interfaces wireguard wg0 peer hq allowed-ips '192.168.1.0/24'
set interfaces wireguard wg0 peer hq address 'vpn.company.com'
set interfaces wireguard wg0 peer hq port 51820
set interfaces wireguard wg0 description 'Primary VPN - WireGuard'
# Backup VPN: SSTP
set interfaces sstpc sstpc0 server 'vpn.company.com'
set interfaces sstpc sstpc0 authentication username 'backup-vpn@company.com'
set interfaces sstpc sstpc0 authentication password 'BackupVPN!Pass'
set interfaces sstpc sstpc0 ssl ca-certificate 'COMPANY-CA'
set interfaces sstpc sstpc0 no-default-route
set interfaces sstpc sstpc0 mtu 1452
set interfaces sstpc sstpc0 description 'Backup VPN - SSTP'
# Статические маршруты с метриками
# WireGuard - lower distance (preferred)
set protocols static route 192.168.1.0/24 interface wg0
set protocols static route 192.168.1.0/24 interface wg0 distance 10
# SSTP - higher distance (backup)
set protocols static route 192.168.1.0/24 interface sstpc0
set protocols static route 192.168.1.0/24 interface sstpc0 distance 20
commit
saveЛогика failover:
- WireGuard используется по умолчанию (distance 10)
- При падении WireGuard трафик автоматически переключается на SSTP (distance 20)
- SSTP всегда работает т.к. использует порт 443
Проверка:
# Routing table - должно быть два route
show ip route 192.168.1.0/24
# Проверить активный маршрут
show ip route
# Симуляция failover
disconnect interface wg0
# Проверить переключение на SSTP
show ip route 192.168.1.0/24Сценарий 4: SSTP через HTTP Proxy
Задача: Подключиться к VPN через корпоративный HTTP прокси.
Конфигурация:
configure
# SSTP поддерживает HTTP CONNECT proxy
# Конфигурация proxy в VyOS 1.4/1.5 может потребовать дополнительных настроек
# Базовый SSTP
set interfaces sstpc sstpc0 server 'vpn.company.com'
set interfaces sstpc sstpc0 authentication username 'user@company.com'
set interfaces sstpc sstpc0 authentication password 'Password123'
set interfaces sstpc sstpc0 ssl ca-certificate 'COMPANY-CA'
commit
saveПримечание: VyOS SSTP client может не поддерживать HTTP proxy напрямую. В этом случае используйте:
- Прямое подключение (если доступно)
- SSH tunnel через прокси + SSTP поверх
- Другой VPN протокол (OpenVPN с http-proxy)
Сценарий 5: SSTP в Yandex Cloud
Задача: Подключить VyOS в Yandex Cloud к корпоративному SSTP серверу.
Топология:
[VyOS in Yandex Cloud] ---- [Internet] ---- [Corporate SSTP Server]
10.128.0.5/24 vpn.company.ruКонфигурация:
configure
# WAN интерфейс (Yandex Cloud external IP)
set interfaces ethernet eth0 address 10.128.0.5/24
set interfaces ethernet eth0 description 'Yandex Cloud Network'
# SSTP к корпоративному серверу
set interfaces sstpc sstpc0 server 'vpn.company.ru'
set interfaces sstpc sstpc0 authentication username 'cloud-vyos@company.ru'
set interfaces sstpc sstpc0 authentication password 'CloudVPN!2024'
set interfaces sstpc sstpc0 ssl ca-certificate 'CORP-CA'
set interfaces sstpc sstpc0 no-default-route
set interfaces sstpc sstpc0 mtu 1420
set interfaces sstpc sstpc0 description 'VPN to Corporate Network'
# Маршруты к корпоративным сетям через SSTP
set protocols static route 192.168.0.0/16 interface sstpc0
set protocols static route 10.0.0.0/8 interface sstpc0
# Default route через Yandex Cloud gateway
set protocols static route 0.0.0.0/0 next-hop 10.128.0.1
# Firewall для исходящего SSTP
set firewall ipv4 name YANDEX-OUT default-action accept
set firewall ipv4 name YANDEX-OUT rule 100 action accept
set firewall ipv4 name YANDEX-OUT rule 100 destination port 443
set firewall ipv4 name YANDEX-OUT rule 100 protocol tcp
commit
saveОсобенности Yandex Cloud:
- MTU в Yandex Cloud: 1500, используйте SSTP MTU 1420-1452
- SSTP работает через Yandex Cloud NAT gateway
- Не требуется дополнительных security group rules для исходящего порта 443
Проверка:
# SSTP статус
show interfaces sstpc sstpc0
# Ping корпоративной сети
ping 192.168.1.1 interface sstpc0
# Traceroute
traceroute 192.168.1.1Сценарий 6: SSTP в VK Cloud
Задача: Подключить VyOS в VK Cloud к VPN серверу.
Конфигурация:
configure
# WAN интерфейс (VK Cloud private network)
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'VK Cloud Network'
# SSTP к VPN серверу
set interfaces sstpc sstpc0 server 'vpn.example.ru'
set interfaces sstpc sstpc0 authentication username 'vkcloud-client'
set interfaces sstpc sstpc0 authentication password 'VKCloudVPN!123'
set interfaces sstpc sstpc0 ssl ca-certificate 'VPN-CA'
set interfaces sstpc sstpc0 default-route auto
set interfaces sstpc sstpc0 mtu 1450
set interfaces sstpc sstpc0 description 'VPN Connection'
# NAT для внутренних сетей через SSTP
set interfaces ethernet eth1 address 192.168.100.1/24
set nat source rule 100 outbound-interface name sstpc0
set nat source rule 100 source address 192.168.100.0/24
set nat source rule 100 translation address masquerade
commit
saveОсобенности VK Cloud:
- MTU в VK Cloud: 1500, используйте SSTP MTU 1450
- SSTP работает через VK Cloud NAT
- Проверьте security groups для порта 443
Сценарий 7: Split-Tunnel SSTP
Задача: Только корпоративный трафик через VPN, интернет напрямую.
Конфигурация:
configure
# SSTP без default route
set interfaces sstpc sstpc0 server 'vpn.company.com'
set interfaces sstpc sstpc0 authentication username 'user@company.com'
set interfaces sstpc sstpc0 authentication password 'Password123'
set interfaces sstpc sstpc0 ssl ca-certificate 'COMPANY-CA'
set interfaces sstpc sstpc0 no-default-route
set interfaces sstpc sstpc0 mtu 1452
set interfaces sstpc sstpc0 description 'Split-Tunnel VPN'
# Только корпоративные сети через SSTP
set protocols static route 192.168.0.0/16 interface sstpc0
set protocols static route 10.0.0.0/8 interface sstpc0
# Интернет через WAN
set interfaces ethernet eth0 address dhcp
# Default route через WAN
set protocols static route 0.0.0.0/0 dhcp-interface eth0
# NAT для интернета через WAN
set nat source rule 100 outbound-interface name eth0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
commit
saveПреимущества split-tunnel:
- Интернет трафик не загружает VPN
- Быстрее для пользователей
- Меньше нагрузка на VPN сервер
Мониторинг и отладка
Проверка статуса SSTP
# Общая информация
show interfaces sstpc
# Детальная информация конкретного интерфейса
show interfaces sstpc sstpc0
# Brief вывод
show interfaces sstpc sstpc0 brief
# Статистика
show interfaces sstpc sstpc0 statisticsПример вывода:
sstpc0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1452
inet 10.10.0.2 peer 10.10.0.1/32
RX: bytes packets errors dropped overrun mcast
5242880 4096 0 0 0 0
TX: bytes packets errors dropped carrier collisions
2621440 2048 0 0 0 0Operational Commands
# Connect SSTP соединение
connect interface sstpc0
# Disconnect SSTP соединение
disconnect interface sstpc0
# Проверить log сообщения SSTP
show log | match sstpc
# Проверить authentication log
show log auth | match sstpcDebugging SSTP
# Логи SSTP в реальном времени
monitor log | match sstpc
# Системные логи
show log tail
# dmesg для kernel-level проблем
show log kernel tailDebug информация включает:
- TCP connection establishment
- TLS handshake
- HTTP negotiation
- PPP LCP negotiation
- Authentication attempts
- IP address assignment
Packet Capture
# Захват SSTP трафика (TCP port 443)
monitor traffic interface eth0 filter "tcp port 443 and host vpn.company.com"
# Захват трафика на SSTP интерфейсе
monitor traffic interface sstpc0
# Сохранить capture в файл
monitor traffic interface eth0 filter "tcp port 443" save /tmp/sstp-capture.pcapАнализ в Wireshark:
- TCP SYN/ACK (3-way handshake)
- TLS Client/Server Hello
- TLS Certificate Exchange
- HTTP SSTP negotiation (после TLS)
- Encrypted PPP frames (после установки SSTP)
Проверка DNS
# DNS resolution для сервера
nslookup vpn.company.com
# Ping сервера
ping vpn.company.com
# Проверить порт 443
telnet vpn.company.com 443Мониторинг производительности
# Bandwidth monitoring
monitor bandwidth interface sstpc0
# Real-time traffic statistics
show interfaces sstpc sstpc0 statistics
# Connection uptime
show interfaces sstpc sstpc0 | grep "uptime"Troubleshooting
Проблема: SSTP не устанавливает соединение
Симптомы:
- Интерфейс в состоянии DOWN
- Нет IP адреса
- Connection timeout
Диагностика:
# 1. Проверить DNS resolution
nslookup vpn.company.com
# 2. Проверить connectivity к серверу
ping vpn.company.com
# 3. Проверить порт 443
telnet vpn.company.com 443
# 4. Проверить SSTP logs
show log | match sstpc
# 5. Попытка connect
connect interface sstpc0
# 6. Проверить вывод
show log tailТипичные причины:
- Сервер недоступен:
# В логах: "Connection refused" или "Timeout"
# Решение: проверить DNS, firewall, routing
ping vpn.company.com
traceroute vpn.company.com- Неверные credentials:
# В логах: "authentication failed" или "Access denied"
# Решение: проверить username/password
set interfaces sstpc sstpc0 authentication username 'correct-user'
set interfaces sstpc sstpc0 authentication password 'correct-pass'
commit- SSL Certificate проблемы:
# В логах: "certificate verification failed" или "SSL handshake failed"
# Решение: проверить CA certificate
# Импортировать правильный CA cert
set pki ca VPN-CA certificate 'MIID...'
set interfaces sstpc sstpc0 ssl ca-certificate 'VPN-CA'
# Или отключить проверку (только для тестирования)
delete interfaces sstpc sstpc0 ssl ca-certificate
commit- Firewall блокирует порт 443:
# Проверить firewall
show firewall
# Разрешить исходящий порт 443
set firewall ipv4 name WAN-OUT rule 100 action accept
set firewall ipv4 name WAN-OUT rule 100 destination port 443
set firewall ipv4 name WAN-OUT rule 100 protocol tcp
commitПроблема: Соединение устанавливается, но нет интернета
Диагностика:
# 1. Проверить IP адрес
show interfaces sstpc sstpc0
# Должен быть IP адрес от сервера
# 2. Проверить default route
show ip route 0.0.0.0/0
# Должен указывать на sstpc0 (для full-tunnel)
# 3. Ping gateway SSTP сервера
ping 10.10.0.1 interface sstpc0
# 4. Ping public IP
ping 8.8.8.8 interface sstpc0
# 5. Проверить DNS
nslookup google.com
# 6. Проверить NAT (если используется)
show nat source statisticsРешения:
- Нет default route:
set interfaces sstpc sstpc0 default-route force
commit- DNS не работает:
# Использовать DNS от сервера (default)
delete interfaces sstpc sstpc0 no-peer-dns
# Или public DNS
set system name-server 8.8.8.8
set system name-server 8.8.4.4
commit- NAT не настроен (для LAN клиентов):
set nat source rule 100 outbound-interface name sstpc0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
commitПроблема: Частые disconnects/reconnects
Симптомы:
- SSTP постоянно переподключается
- В логах: “Connection lost” или “PPP terminated”
Диагностика:
# 1. Проверить uptime
show interfaces sstpc sstpc0 | grep uptime
# 2. Проверить logs
show log | match "sstpc0"
# 3. Статистика errors
show interfaces sstpc sstpc0 statisticsПричины и решения:
- Нестабильное интернет соединение:
# Проверить WAN интерфейс
show interfaces ethernet eth0 statistics
# Проверить packet loss
ping 8.8.8.8 count 100
# Решение: исправить проблемы на WAN- MTU problems:
# Packets dropping из-за MTU
# Решение: уменьшить MTU
set interfaces sstpc sstpc0 mtu 1400
set interfaces sstpc sstpc0 ip adjust-mss 1360
commit- Server timeout:
# SSTP server разрывает неактивные соединения
# Решение: отправлять keepalive трафик или проверить настройки сервера- SSL session timeout:
# TLS session expiring
# Решение: проверить настройки SSL на сервереПроблема: Низкая скорость
Диагностика:
# 1. Bandwidth test через iperf3
# На сервере
iperf3 -s
# На VyOS
iperf3 -c server-ip -i 1 -t 30
# 2. Проверить MTU
ping 8.8.8.8 size 1452 do-not-fragment interface sstpc0
# 3. Проверить CPU usage
show system resources
# 4. Interface statistics
show interfaces sstpc sstpc0 statisticsРешения:
- MTU fragmentation:
# Path MTU Discovery
# Уменьшить MTU
set interfaces sstpc sstpc0 mtu 1400
set interfaces sstpc sstpc0 ip adjust-mss 1360
commit- TCP over TCP problem:
# SSTP использует TCP (PPP over SSL over TCP)
# TCP-over-TCP может вызывать проблемы производительности
# Решение: использовать UDP-based VPN (WireGuard, OpenVPN UDP) для лучшей производительности- Server overload:
# Сервер перегружен
# Решение: проверить load на сервере, добавить capacityПроблема: SSL Certificate errors
Симптомы:
- “certificate verification failed”
- “SSL handshake error”
Диагностика:
# 1. Проверить сертификат сервера
openssl s_client -connect vpn.company.com:443 -showcerts
# 2. Проверить CA certificate в VyOS
show pki ca VPN-CA
# 3. Проверить logs
show log | match "ssl"Решения:
# 1. Импортировать правильный CA cert
# Получить CA cert от администратора сервера
set pki ca VPN-CA certificate 'MIIDXTCCAkWgAwIBAgIJ...'
set interfaces sstpc sstpc0 ssl ca-certificate 'VPN-CA'
commit
# 2. Для self-signed сертификата (только testing)
delete interfaces sstpc sstpc0 ssl ca-certificate
commit
# 3. Проверить hostname в сертификате
# FQDN в server должен совпадать с CN в сертификате
set interfaces sstpc sstpc0 server 'vpn.company.com' # не IP адрес
commitSecurity Best Practices
1. Использование сертификатов
# Всегда проверяйте SSL сертификат в production
set interfaces sstpc sstpc0 ssl ca-certificate 'TRUSTED-CA'
# Не отключайте проверку сертификата без веской причины2. Защита credentials
# Используйте сильные пароли
set interfaces sstpc sstpc0 authentication password 'ComplexP@ssw0rd!2024'
# Ограничить доступ к конфигурации
set system login user admin authentication plaintext-password 'AdminPassword'
set system login user admin level admin3. Firewall на интерфейсе
# Создать firewall для SSTP интерфейса
set firewall ipv4 name SSTP-IN default-action drop
set firewall ipv4 name SSTP-IN rule 10 action accept
set firewall ipv4 name SSTP-IN rule 10 state established
set firewall ipv4 name SSTP-IN rule 10 state related
set firewall ipv4 name SSTP-IN rule 20 action drop
set firewall ipv4 name SSTP-IN rule 20 state invalid
# Применить к SSTP интерфейсу
set interfaces sstpc sstpc0 firewall in name SSTP-IN
commit4. Ограничение трафика
# Rate limiting для защиты от abuse
set firewall ipv4 name SSTP-IN rule 5 action accept
set firewall ipv4 name SSTP-IN rule 5 protocol icmp
set firewall ipv4 name SSTP-IN rule 5 limit rate 10/second
commit5. Мониторинг соединений
# Логирование SSTP events
set system syslog global facility all level info
# Отправка логов на syslog сервер
set system syslog host 192.168.1.100 facility all level warning
commit6. Split-tunnel для безопасности
# Используйте split-tunnel когда возможно
# Только корпоративный трафик через VPN
set interfaces sstpc sstpc0 no-default-route
set protocols static route 192.168.0.0/16 interface sstpc0
# Интернет через локальное соединениеPerformance Tuning
1. MTU Optimization
# Оптимальный MTU для SSTP
set interfaces sstpc sstpc0 mtu 1452
# TCP MSS clamping
set interfaces sstpc sstpc0 ip adjust-mss 1412
set interfaces sstpc sstpc0 ipv6 adjust-mss 1392
commit2. QoS для критичного трафика
# Priority queueing для VoIP через SSTP
set traffic-policy shaper SSTP-QOS bandwidth 100mbit
set traffic-policy shaper SSTP-QOS class 10 match VoIP ip protocol udp
set traffic-policy shaper SSTP-QOS class 10 match VoIP ip source port 5060-5090
set traffic-policy shaper SSTP-QOS class 10 bandwidth 10%
set traffic-policy shaper SSTP-QOS class 10 priority 7
set traffic-policy shaper SSTP-QOS default bandwidth 90%
set traffic-policy shaper SSTP-QOS default priority 1
set interfaces sstpc sstpc0 traffic-policy out SSTP-QOS
commit3. Connection Optimization
# Использовать DNS от сервера для быстрого resolution
delete interfaces sstpc sstpc0 no-peer-dns
# Оптимизировать TCP параметры (системный уровень)
# Требует shell accessСравнение SSTP с другими VPN
| Характеристика | SSTP | IPsec | OpenVPN | WireGuard |
|---|---|---|---|---|
| Firewall bypass | Отлично (443) | Плохо (UDP 500/4500) | Хорошо (настраиваемый) | Средне (UDP) |
| Производительность | Средне | Хорошо | Удовлетворительно | Отлично |
| Безопасность | Отлично (SSL/TLS) | Отлично | Хорошо | Отлично |
| Совместимость | Windows native | Отлично | Отлично | Хорошо |
| NAT traversal | Отлично | Сложно | Отлично | Отлично |
| Setup Complexity | Средняя | Сложно | Средне | Простая |
| TCP overhead | Высокий (TCP over TCP) | Низкий | Средний (UDP mode) | Низкий |
Когда выбрать SSTP:
- Нужен bypass строгих файрволов (только 443 разрешен)
- Windows Server infrastructure
- Публичные Wi-Fi с блокировкой VPN
- Резервный канал когда другие VPN заблокированы
Когда НЕ выбирать SSTP:
- Нужна максимальная производительность (выбрать WireGuard)
- Высокая latency критична (TCP-over-TCP проблема)
- Non-Windows environment (выбрать OpenVPN/WireGuard)
Best Practices
1. Naming Convention
# Используйте понятные имена
set interfaces sstpc sstpc0 description 'Corporate VPN - Primary'
set interfaces sstpc sstpc1 description 'Backup VPN - Secondary'2. MTU Configuration
# Всегда настраивайте MTU и MSS
set interfaces sstpc sstpc0 mtu 1452
set interfaces sstpc sstpc0 ip adjust-mss 1412
# Тест оптимального MTU
ping 8.8.8.8 size 1452 do-not-fragment interface sstpc03. Monitoring и Alerting
# Syslog для tracking events
set system syslog global facility all level info
set system syslog host 192.168.1.100 facility all level warning
# SNMP monitoring
set service snmp community public authorization ro
set service snmp community public network 192.168.1.0/244. Backup Configuration
# Регулярный backup конфигурации
show configuration commands | save /config/backup-$(date +%Y%m%d).conf
# Script для automated backup5. Certificate Management
# Регулярно обновляйте CA certificates
# Проверяйте expiration dates
show pki ca VPN-CA
# Имейте backup CA certs6. Documentation
# Документируйте все в description
set interfaces sstpc sstpc0 description 'Corporate SSTP - vpn.company.com - Port 443'Миграция с VyOS 1.4 на 1.5
SSTP конфигурация совместима между версиями:
VyOS 1.4:
set interfaces sstpc sstpc0 server 'vpn.example.com'
set interfaces sstpc sstpc0 authentication username 'user'
set interfaces sstpc sstpc0 authentication password 'pass'VyOS 1.5:
set interfaces sstpc sstpc0 server 'vpn.example.com'
set interfaces sstpc sstpc0 authentication username 'user'
set interfaces sstpc sstpc0 authentication password 'pass'Изменения: Синтаксис остается тем же, миграция прозрачная.
Заключение
SSTP предоставляет надежное VPN решение для сценариев с ограничивающими файрволами:
Преимущества:
- Bypass файрволов через порт 443
- SSL/TLS шифрование
- Работа через HTTP прокси
- Windows Server совместимость
- Простая настройка
Применение:
- Remote access VPN через ограничивающие сети
- Backup VPN канал (всегда доступный)
- Site-to-Site через ISP с блокировками
- Корпоративные сети с жесткими политиками
Лучшие практики:
- Правильная настройка MTU (1452) и MSS clamping
- SSL certificate verification в production
- Firewall rules для защиты
- Monitoring и logging
- Split-tunnel когда возможно
- Резервирование через dual VPN
SSTP в VyOS обеспечивает надежное VPN соединение в самых ограничивающих сетевых средах, являясь отличным дополнением к IPsec, OpenVPN и WireGuard для комплексной VPN стратегии.
Дополнительные ресурсы
- VyOS SSTP Client Documentation
- SSTP Protocol Specification - MS-SSTP
- SSL/TLS Best Practices
- PPP Protocol - RFC 1661
- WireGuard VPN - для сравнения
- OpenVPN - альтернативный VPN
- IPsec VPN - enterprise VPN