- Что нужно знать про SSTP на MikroTik
- Подготовка: время, идентификаторы, схема адресации
- Шаг 1. Создаем CA (корневой сертификат)
- Шаг 2. Создаем сертификат сервера SSTP
- Шаг 3. Экспорт корневого сертификата CA для клиентов
- Шаг 4. Поднимаем SSTP VPN-сервер: пул, профиль, пользователи
- Шаг 5. Включаем SSTP server и включаем TLS-параметры
- Шаг 6. Firewall: открыть вход на 443 и разрешить доступ в LAN
- Шаг 7. Настройка клиента Windows (SSTP)
- Маршрутизация после подключения: чтобы VPN реально вел в нужные сети
- Как проверить, что сервер поднялся правильно
- Типичные ошибки, из-за которых SSTP “не работает”
- Сертификаты: быстрый “чек” настроек tls для SSTP
- Дополнение: SSTP клиент на Linux (если понадобится)
- Итоговая “шпаргалка” по порядку действий
- Источники
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:
System -> Certificates- правой кнопкой по CA ->
Export - сохраните корневой сертификат (обычно в 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