SSTP VPN на MikroTik: настройка сервера и клиента, безопасность и производительность

Подробное руководство по настройке SSTP VPN на роутерах MikroTik: создание сертификатов, конфигурация сервера и клиента, маршрутизация, безопасность, производительность и решение типичных проблем.

Что такое SSTP и почему он полезен для MikroTik

SSTP (Secure Socket Tunneling Protocol) — это протокол VPN, который работает поверх HTTPS (TCP-порт 443). Это ключевое преимущество: SSTP-трафик неотличим от обычного защищённого веб-трафика, поэтому он легко проходит через NAT, брандмауэры и прокси-серверы, которые блокируют другие VPN-протоколы. В отличие от PPTP или L2TP/IPsec, SSTP не требует открытия дополнительных портов и редко блокируется в публичных сетях, например, в гостиницах или аэропортах.

Для MikroTik SSTP реализован в RouterOS, и его можно использовать как для удалённого доступа отдельных сотрудников (road warrior), так и для объединения офисов (site-to-site). В последнем случае один роутер выступает SSTP-сервером, а другой — клиентом. При этом для работы сервера необходим публичный IP-адрес, а клиент может находиться за NAT.

Важно понимать, что SSTP не является универсальным решением. Из-за работы поверх TCP он имеет повышенные накладные расходы и может быть медленнее, чем WireGuard или IPsec. Однако его способность маскироваться под HTTPS делает его незаменимым в сетях со строгими фильтрами.

Подготовка MikroTik: проверка времени, NTP и версии RouterOS

Перед настройкой SSTP необходимо убедиться, что на роутере правильно настроено системное время. Сертификаты, используемые в SSTP, проверяются по времени, и если часы роутера отстают или спешат, соединение может не установиться. Рекомендуется включить синхронизацию времени через NTP. В RouterOS это делается в разделе System → NTP Client, где нужно указать адрес NTP-сервера, например, pool.ntp.org.

Также стоит проверить версию RouterOS. Инструкции, приведённые в этой статье, актуальны для RouterOS 7.x (например, 7.24.2). В более старых версиях 6.x команды могут отличаться, но общая логика сохраняется. Для работы SSTP не требуется дополнительных пакетов, так как он встроен в базовую систему.

Если вы планируете использовать аппаратное шифрование AES, убедитесь, что ваша модель роутера его поддерживает. Например, модели hEX (RB750Gr3) и hAP ac² имеют аппаратный AES-ускоритель, что значительно повышает производительность VPN. В моделях без аппаратной поддержки скорость SSTP будет ограничена возможностями процессора.

Создание центра сертификации и сертификата сервера

SSTP использует TLS для шифрования, поэтому серверу нужен сертификат. Можно использовать сертификат от публичного CA (например, Let's Encrypt), но в большинстве случаев проще создать собственный центр сертификации (CA) прямо на роутере. Это бесплатно и не требует внешних сервисов.

Для создания CA в RouterOS перейдите в System → Certificates и создайте новый сертификат с именем, например, CA. В поле Common Name укажите что-то вроде "My CA". На вкладке Key Usage отметьте только crl sign и key cert. sign. Затем подпишите сертификат кнопкой Sign, указав CA CRL Host — можно использовать 127.0.0.1 или IP-адрес роутера.

После этого создайте сертификат сервера. В Common Name и Subject Alt Name укажите FQDN (доменное имя) или IP-адрес, по которому клиенты будут подключаться к серверу. Если вы планируете использовать доменное имя, убедитесь, что оно резолвится в публичный IP роутера. На вкладке Key Usage отметьте digital-signature, key-encipherment и tls-server. Подпишите сертификат созданным CA.

Команды в терминале:

/certificate add name=CA country="RU" state="Moscow" locality="Moscow" organization="MyOrg" 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
/certificate add name=sstp-server country="RU" state="Moscow" locality="Moscow" organization="MyOrg" common-name="vpn.example.com" subject-alt-name=DNS:vpn.example.com key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign sstp-server ca="CA"

Закрытый ключ CA должен оставаться на роутере и никогда не передаваться клиентам. Клиентам нужен только сам корневой сертификат CA для проверки подлинности сервера.

Настройка SSTP-сервера на MikroTik

После создания сертификатов можно приступать к настройке сервера. Сначала создайте пул IP-адресов для VPN-клиентов. Например, если ваша локальная сеть использует подсеть 10.20.0.0/24, выделите для VPN диапазон 10.20.0.100-10.20.0.199. Это можно сделать в разделе IP → Pool.

Затем создайте профиль PPP: в разделе PPP → Profiles нажмите Add New. Укажите Local Address — IP-адрес самого сервера в VPN-подсети (например, 10.20.0.1), и Remote Address — созданный пул. Остальные параметры можно оставить по умолчанию.

Далее создайте учётные записи пользователей в PPP → Secrets. Для каждого пользователя укажите имя, пароль, в поле Service выберите sstp, а в поле Profile — созданный профиль. Если оставить Service = any, пользователь сможет подключаться и к другим VPN-сервисам (например, L2TP), что не всегда желательно.

Теперь включите сам SSTP-сервер: перейдите в PPP → Interface, нажмите на кнопку SSTP Server. Установите флажок Enabled, выберите Default Profile, в поле Certificate укажите сертификат сервера. В разделе Authentication оставьте только mschap2. Для повышения безопасности установите TLS Version = only-1.2, включите Force AES и PFS (Perfect Forward Secrecy). Force AES заставляет использовать AES-256, а PFS генерирует уникальный сессионный ключ для каждого подключения.

Команды для терминала:

/ip pool add name=sstp_pool ranges=10.20.0.100-10.20.0.199
/ppp profile add name=SSTP-profile local-address=10.20.0.1 remote-address=sstp_pool
/ppp secret add name=user1 password=strongpass profile=SSTP-profile service=sstp
/interface sstp-server server set authentication=mschap2 certificate=sstp-server default-profile=SSTP-profile enabled=yes force-aes=yes pfs=yes tls-version=only-1.2

После этого сервер готов принимать подключения.

Настройка SSTP-клиента на MikroTik (site-to-site)

Для объединения двух офисов на втором роутере (клиенте) нужно создать SSTP-интерфейс. В WinBox перейдите в PPP → Interface, нажмите на плюс и выберите SSTP Client. В поле Connect To укажите публичный IP-адрес или доменное имя SSTP-сервера. В полях User и Password укажите учётные данные, созданные на сервере. В поле Profile выберите профиль (обычно default-encryption).

В терминале команда выглядит так:

/interface sstp-client add name="SSTP to office1" connect-to=100.64.111.1 user=office2 password=secret profile=default-encryption

После создания интерфейс автоматически попытается установить соединение. Если всё настроено правильно, в списке интерфейсов появится флаг R (running). Проверить состояние можно командой:

/interface sstp-client print

Важно: если сервер использует самоподписанный сертификат, клиент должен доверять CA. Для этого нужно импортировать корневой сертификат CA на клиентский роутер. В противном случае соединение не установится, так как клиент не сможет проверить подлинность сервера.

Настройка маршрутизации между офисами

Просто установить VPN-туннель недостаточно — необходимо настроить маршрутизацию, чтобы устройства из одной сети могли обращаться к устройствам в другой. Для этого на каждом роутере добавляется маршрут до удалённой LAN-подсети через IP-адрес VPN-интерфейса противоположной стороны.

Например, если офис 1 имеет сеть 10.11.11.0/24, а офис 2 — 10.22.22.0/24, и VPN-адреса 172.16.1.1 (сервер) и 172.16.1.2 (клиент), то на R1 нужно добавить маршрут:

/ip route add dst-address=10.22.22.0/24 gateway=172.16.1.2

А на R2:

/ip route add dst-address=10.11.11.0/24 gateway=172.16.1.1

В WinBox это делается в разделе IP → Routes. В поле Dst. Address укажите удалённую сеть, в поле Gateway — IP-адрес VPN-интерфейса противоположного роутера. После добавления маршрутов проверьте связь между устройствами в разных офисах, например, командой ping с одного роутера на IP-адрес устройства в другой сети.

Важно: если на роутерах настроен брандмауэр, убедитесь, что он разрешает трафик между VPN-интерфейсом и LAN. В противном случае пакеты будут отбрасываться.

Настройка клиента SSTP в Windows и Linux

Для подключения к SSTP-серверу с компьютера под управлением Windows необходимо сначала импортировать корневой сертификат CA в хранилище "Доверенные корневые центры сертификации" (локальный компьютер). Затем создайте новое VPN-подключение: Параметры → Сеть и Интернет → VPN → Добавить VPN-подключение. В качестве типа VPN выберите SSTP, укажите адрес сервера (FQDN или IP), имя пользователя и пароль. В свойствах подключения на вкладке "Безопасность" убедитесь, что используется только MS-CHAP v2.

В Linux (Debian/Ubuntu) штатного SSTP-клиента нет, но можно установить пакет network-manager-sstp. Для Ubuntu подключите PPA:

deb http://ppa.launchpad.net/eivnaes/network-manager-sstp/ubuntu bionic main

Затем выполните apt update и apt install network-manager-sstp. После установки в Network Manager появится возможность создать SSTP-соединение. Укажите адрес сервера, учётные данные и путь к файлу корневого сертификата CA (в формате PEM).

Для Debian процесс аналогичен, но нужно добавить ключ репозитория и вручную прописать источник в /etc/apt/sources.list.d/.

Безопасность SSTP: лучшие практики и ограничения

SSTP обеспечивает шифрование и аутентификацию, но его безопасность зависит от правильной настройки. Рекомендуется использовать только MS-CHAPv2 для аутентификации, так как более старые протоколы (PAP, CHAP, MS-CHAPv1) уязвимы. Также стоит принудительно использовать TLS 1.2 или выше и алгоритм AES-256. Включение PFS гарантирует, что даже при компрометации закрытого ключа сервера ранее перехваченные сессии не могут быть расшифрованы.

Сертификаты играют ключевую роль. Если вы используете самоподписанный CA, убедитесь, что клиенты доверяют именно вашему CA, иначе возможна атака "человек посередине". Для корпоративного использования лучше приобрести сертификат от публичного CA, чтобы клиентам не нужно было вручную устанавливать корневой сертификат.

Ограничение SSTP — производительность. Из-за работы поверх TCP и шифрования на уровне TLS скорость соединения может быть ниже, чем у WireGuard или IPsec. На недорогих моделях MikroTik без аппаратного AES скорость вряд ли превысит 20-25 Мбит/с. Поэтому SSTP не рекомендуется для передачи больших объёмов данных, но он отлично подходит для удалённого доступа к корпоративным ресурсам.

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

При настройке SSTP на MikroTik можно столкнуться с несколькими распространёнными проблемами.

  1. Некорректный IP-адрес сервера. Убедитесь, что на клиенте указан правильный публичный IP или FQDN сервера. Проверьте, что этот адрес доступен из интернета.
  1. Несовпадение учётных данных. Проверьте имя пользователя и пароль в PPP Secrets. Убедитесь, что в поле Service указано sstp, а не any, если вы хотите ограничить доступ.
  1. Блокировка брандмауэром. SSTP использует TCP-порт 443. Убедитесь, что брандмауэр MikroTik разрешает входящие соединения на этот порт. Для быстрой диагностики можно временно отключить все правила фильтрации и проверить, устанавливается ли соединение.
  1. Конфликт с веб-сервером RouterOS. По умолчанию RouterOS использует порт 443 для HTTPS-интерфейса (www-ssl). Если SSTP-сервер включён, а веб-сервер тоже слушает 443, возникнет конфликт. Решение: отключите службу www-ssl или измените её порт, либо измените порт SSTP-сервера (не рекомендуется, так как клиенты ожидают 443).
  1. Проблемы с сертификатами. Если клиент не доверяет сертификату сервера, соединение не установится. Проверьте, что корневой сертификат CA импортирован на клиент, и что имя в сертификате соответствует адресу, по которому вы подключаетесь.
  1. Неправильная маршрутизация. Если туннель установлен, но нет связи между сетями, проверьте маршруты и правила брандмауэра. Также убедитесь, что на клиенте не включён add-default-route, если это не требуется.

Производительность SSTP на разных моделях MikroTik

Производительность SSTP сильно зависит от модели роутера и наличия аппаратного шифрования AES. Модели с аппаратным AES (например, RB4011, hEX S, hAP ac³) могут обеспечить скорость до 200-300 Мбит/с и выше. Бюджетные модели без аппаратного ускорения (например, hEX lite, hAP lite) будут сильно нагружать процессор, и скорость упадёт до 20-25 Мбит/с.

Если вам нужна высокая пропускная способность, рассмотрите альтернативы: WireGuard или IPsec. WireGuard работает поверх UDP и имеет меньшие накладные расходы, что делает его более быстрым. Однако SSTP остаётся лучшим выбором, когда требуется маскировка трафика под HTTPS.

Для проверки реальной скорости можно использовать утилиту speedtest или iperf через VPN-туннель. Помните, что скорость также ограничивается каналом интернета и задержкой.

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

Чем SSTP отличается от L2TP/IPsec и WireGuard?

SSTP работает поверх HTTPS (TCP 443), поэтому его трафик неотличим от обычного веб-трафика и легко проходит через брандмауэры и NAT. L2TP/IPsec использует UDP 500 и 4500, что часто блокируется. WireGuard работает поверх UDP и быстрее, но его трафик легче обнаружить. SSTP выбирают, когда нужна максимальная совместимость с ограничительными сетями.

Нужен ли публичный IP-адрес для SSTP-сервера?

Да, SSTP-сервер должен быть доступен из интернета по TCP-порту 443. Если у вас нет белого IP, можно использовать проброс портов на домашнем роутере или VPS-сервер в качестве ретранслятора.

Можно ли использовать SSTP для объединения нескольких офисов?

Да, SSTP поддерживает модель клиент-сервер. Один роутер выступает сервером, остальные — клиентами. Для каждого клиента создаётся отдельная учётная запись. При этом необходимо настроить маршрутизацию между всеми сетями.

Как повысить безопасность SSTP-подключения?

Используйте только MS-CHAPv2, TLS 1.2 или выше, включите Force AES и PFS. Регулярно обновляйте RouterOS. Используйте сложные пароли и не передавайте закрытый ключ CA третьим лицам.

Почему SSTP медленный и как это исправить?

SSTP работает поверх TCP, что добавляет накладные расходы. Также шифрование нагружает процессор. Для ускорения используйте роутер с аппаратным AES или рассмотрите WireGuard. Также проверьте, что на клиенте не включено add-default-route, если это не нужно.

Что делать, если SSTP-соединение не устанавливается?

Проверьте: 1) доступность сервера по IP и порту 443; 2) правильность учётных данных; 3) настройки брандмауэра; 4) конфликт с www-ssl; 5) импорт корневого сертификата на клиент. Используйте логи RouterOS для диагностики.

Можно ли использовать Let's Encrypt сертификат для SSTP на MikroTik?

Да, можно. Для этого нужно получить сертификат для вашего домена и импортировать его в RouterOS. Однако Let's Encrypt сертификаты действительны 90 дней, поэтому потребуется автоматическое обновление. Проще использовать собственный CA, если клиенты — ваши устройства.