SSTP VPN-сервер на mikrotik обычно выбирают, когда нужен удаленный доступ через интернет “как обычно”, то есть чтобы трафик проходил через NAT, брандмауэры и практически не отличался от обычного HTTPS. В этой статье я собрал рабочий сценарий: как поднять SSTP на MikroTik, как подготовить сертификат, и как сделать подключение клиентов на Windows (и базово на Linux, если понадобится).


Что нужно знать про SSTP на MikroTik

SSTP (Secure Socket Tunneling Protocol) работает поверх SSL/TLS и устанавливает канал через TCP 443. На стороне MikroTik SSTP использует PPP для аутентификации пользователей.

Ключевые моменты, которые чаще всего “ломают” подключение:

Момент Что проверить
Сертификаты У сервера должен быть сертификат, а у клиентов - корневой сертификат (CA), которому они доверяют
Common Name / Subject Alt. Name Идентичность имени/адреса в сертификате должна совпадать с тем, как клиент подключается к серверу (IP или FQDN)
Пользователи PPP-учетки создаются в PPP - Secrets с service=sstp и привязкой к PPP profile
Маршрутизация Туннель поднимается не сам по себе “для всего”. Дальше нужно разрешить трафик до нужной сети (роутинг и иногда firewall)

Подготовка: время, идентификаторы, схема адресации

Перед созданием сертификатов убедитесь, что на mikrotik настроены:

Параметр Что нужно
Время и часовой пояс текущие и корректные
NTP синхронизация должна быть включена

Дальше определите схему адресов:

Элемент Пример (шаблон)
LAN офиса 192.168.15.0/24
VPN-подсеть/пул адресов клиентов 172.16.30.102 - 172.16.30.253
IP интерфейса SSTP на сервере 172.16.30.101/32
DNS/WINS для клиентов укажите адреса серверов в LAN, если хотите резолв по именам

Также важно сразу решить: клиенты будут выходить в офисную сеть (client-to-site) или будет site-to-site между двумя офисами. Для обоих сценариев логика одинаковая, но отличаются маршруты и правила доступа.


Шаг 1. Создаем CA (корневой сертификат)

SSTP на mikrotik использует TLS-сертификаты. Обычно проще всего сделать свой CA прямо на роутере.

В графическом интерфейсе: System -> Certificates.

Логика такая:

  • создаете корневой сертификат CA
  • подписываете его (Sign)
  • экспортируете CA для установки на клиентов

Команды (пример)

Замените значения под себя:

/certificate
add name=CA country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="CA" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
sign CA ca-crl-host=127.0.0.1

Где days-valid=3650 (10 лет) - практичный выбор, чтобы не заниматься перевыпуском постоянно.


Шаг 2. Создаем сертификат сервера SSTP

Этот сертификат будет использоваться на SSTP сервере на mikrotik.

Самое важное: в сертификате должны совпадать параметры адреса, по которому клиент подключается:

  • если клиенты подключаются по IP - используйте IP в Subject Alt. Name
  • если по FQDN - используйте DNS-имя в Subject Alt. Name
  • Common Name должен соответствовать той же логике

Пример (сертификат под FQDN)

/certificate
add name=sstp.server.example common-name="sstp.server.example" subject-alt-name=DNS:"sstp.server.example" key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
sign sstp.server.example ca="CA"

Если подключение по IP, то вместо DNS: используйте IP:.


Шаг 3. Экспорт корневого сертификата CA для клиентов

Клиенты не смогут проверить подлинность сервера, пока CA не будет установлен в доверенные.

На mikrotik:

  1. System -> Certificates
  2. правой кнопкой по CA -> Export
  3. сохраните корневой сертификат (обычно в PEM/без приватного ключа)

Часто удобно делать экспорт командой:

/certificate
export-certificate CA

Файл появится в Files, его и забирают на клиент.

Важно: приватный ключ CA храните только на роутере. Экспортируете только сертификат CA (без секретов).


Шаг 4. Поднимаем SSTP VPN-сервер: пул, профиль, пользователи

Создаем IP pool для клиентов

Например, клиенты будут получать адреса из диапазона:

/ip pool
add name=sstp_pool ranges=172.16.30.102-172.16.30.253

Чем больше планируем клиентов - тем шире диапазон.

Создаем PPP profile

PPP profile описывает параметры туннеля. Минимально важно:

  • local-address - IP интерфейса SSTP на сервере (из той же VPN-подсети)
  • remote-address - ваш IP pool
  • DNS/WINS (опционально, но полезно)
/ppp profile
add name=SSTP-profile local-address=172.16.30.101 remote-address=sstp_pool change-tcp-mss=yes dns-server=192.168.15.10 wins-server=192.168.15.10

Создаем учетку PPP для SSTP

/ppp secret
add name=Ivanov password=Pa$$word profile=SSTP-profile service=sstp

Поле service=sstp важно: оно ограничит учетку нужным типом доступа.


Шаг 5. Включаем SSTP server и включаем TLS-параметры

Переходите к SSTP серверу:

/interface sstp-server server
set authentication=mschap2 default-profile=SSTP-profile certificate="sstp.server.example" enabled=yes force-aes=yes pfs=yes tls-version=only-1.2

Что означают параметры (коротко, по делу):

Параметр Зачем
tls-version=only-1.2 отключает устаревшие версии TLS
force-aes=yes пытается использовать AES (если поддерживается железом)
pfs=yes усложняет компрометацию сессионных ключей

Шаг 6. Firewall: открыть вход на 443 и разрешить доступ в LAN

Правило для SSTP входящего трафика на сервер

Если у вас “закрыто по умолчанию”, то нужно разрешить входящие TCP-сессии на 443 порт:

/ip firewall filter
add chain=input protocol=tcp dst-port=443 action=accept comment="Allow SSTP" place-before=0

Главное условие - правило должно быть раньше ваших DROP/REJECT.

Разрешить доступ клиентов в офисную сеть

Тут есть два варианта в зависимости от вашей политики.

Чаще всего нужно разрешить traffic from VPN-подсети в LAN (и дальше NAT обычно не требуется, если клиенты ходят во внутренние сети “через роутинг”).

Если делаете через адресный список, логика такая:

  • клиенты SSTP получают адреса из VPN-подсети/пула
  • в firewall forward разрешаете их к нужным LAN сетям

Минимальная идея выглядит так:

Цель В чем смысл
Разрешить forward из VPN в LAN иначе подключение может быть “живое”, но ресурсы не откроются

Если NAT и политики у вас уже настроены, иногда отдельные правила не нужны. Но в “закрытых” конфигурациях без разрешения forward трафик не пойдет.


Шаг 7. Настройка клиента Windows (SSTP)

Windows с SSTP умеет работать штатно (начиная с Vista).

Установите корневой CA на клиент

  • импортируйте CA сертификат
  • разместите в хранилище: Локальный компьютер -> Доверенные корневые центры сертификации

Без этого TLS-проверка “не пройдет”, и соединение не поднимется.

Создайте VPN-подключение

  • Тип VPN: SSTP
  • Укажите:
  • адрес сервера (IP или FQDN)
  • логин/пароль PPP-учетки, которые вы создали на mikrotik

Проверка параметров безопасности

В свойствах подключения (вкладка “Безопасность”) убедитесь, что используется MS-CHAP v2 (и отключите лишние/неподходящие методы).


Маршрутизация после подключения: чтобы VPN реально вел в нужные сети

Обычно SSTP поднимает туннель, но доступа к офисным подсетям не гарантирует сам по себе. Что именно нужно сделать на Windows, зависит от того, хотите ли вы:

  • доступ только к офисным подсетям
  • или весь трафик через офис (default route)

Частая проблема: “пропал интернет” или “ничего кроме туннеля”

Если Windows получает маршрут по умолчанию через VPN, а на сервере/на пути нет NAT для этого сценария, интернет у клиента может исчезнуть.

Практический подход:
- отключить “использовать основной шлюз в удаленной сети”
- добавить статический маршрут только до офисной подсети через SSTP-интерфейс

Пример команды (подставьте свои адреса):

route -p add 192.168.15.0 mask 255.255.255.0 <IP_шлюза_через_SSTP>

Где <IP_шлюза_через_SSTP> - это IP на mikrotik со стороны VPN (часто local-address в PPP profile).


Как проверить, что сервер поднялся правильно

Начните с простого:

Проверка Что должно быть
Соединение SSTP установлено интерфейс SSTP на сервере активен
Доступность “внутренней” цели ping с клиента на хост в LAN за микротик
На Windows не ругается сертификат иначе соединение не должно работать

Если маршрут/forward настроены, то обычно достаточно ping на адрес в офисной сети (через VPN).


Типичные ошибки, из-за которых SSTP “не работает”

Симптом Вероятная причина Что сделать
Соединение не поднимается вообще сертификаты не совпадают или CA не установлен проверьте Subject Alt. Name и установку CA на клиент
Поднялось, но ресурсов офиса нет firewall forward не разрешил трафик из VPN в LAN добавьте правила в forward и проверьте chain
Пинг до офиса не идет, ошибка Network is unreachable неправильный шлюз/маршрут проверьте local-address и gateway в маршрутах на клиенте/роутере
Сильно падает скорость CPU/шифрование без аппаратного AES ограничьте нагрузку или подберите модель/железо

Сертификаты: быстрый “чек” настроек tls для SSTP

Вопросы сертификатов всплывают постоянно. Вот сжатый ориентир:

Что на CA Что на серверном сертификате Что важно на клиенте
CA: key-usage для подписания (crl-sign, key-cert-sign) tls-server + digital-signature / key-encipherment установить CA в доверенные корневые
CA подписывает сервер Subject Alt. Name должен соответствовать адресу подключения Windows должен доверять сертификату

Дополнение: SSTP клиент на Linux (если понадобится)

В ряде дистрибутивов нет штатного SSTP-клиента, поэтому используют сторонние реализации. Самая практичная стратегия - поставить пакет/инструмент, совместимый с вашим окружением (например, через Network Manager), и затем:

  • указать адрес сервера SSTP
  • загрузить CA сертификат (в PEM)
  • подтвердить пользователя/пароль и профиль

Итоговая “шпаргалка” по порядку действий

Этап Что сделать
1 Настроить время/NTP на mikrotik
2 Создать CA и подписать его
3 Создать сертификат сервера с корректным Subject Alt. Name (IP или FQDN) и подписать CA
4 Экспортировать CA на клиента
5 Настроить IP pool, PPP profile и PPP secrets (service=sstp)
6 Включить interface sstp-server server и TLS параметры
7 Открыть input на TCP 443 и разрешить forward из VPN в LAN
8 На Windows: импорт CA + SSTP-подключение + при необходимости маршруты

Источники

  • MikroTik Wiki: VPN SSTP client-to-site (удаленное подключение с мобильных устройств): https://mikrotik.wiki/wiki/VPN:SSTP_client-to-site_(%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2)
  • Настройка SSTP-туннеля между устройствами Mikrotik и RUTXxx (пример команд и логика сертификатов): https://digitalangel.ru/help/nastroyka-sstp-tunnelya-mezhdu-rutx-i-ustroystvom-mikrotik/
  • Практический разбор “SSTP на MikroTik для удаленных сотрудников” (сертификаты + SSTP server + firewall 443): https://sysadminium.ru/sstp-mikrotik-for-remote-users/
  • Введение и практические детали настройки SSTP на MikroTik (сертификаты, пул, профиль): https://interface31.ru/tech_it/2021/05/nastroyka-sstp-vpn-servera-na-routerah-mikrotik.html
  • Обсуждение маршрутизации/Local Address и ошибки “Network is unreachable” при SSTP client (полезно для понимания, где ломается): https://www.linux.org.ru/forum/general/16909408