Настройка SSTP VPN-сервера на Mikrotik для подключения из Windows 10

Это перевод статьи “Mikrotik: Setup SSTP Server for Windows 10 client” из блога dr0u с моими мелкими правками.

Если вы хотите поблагодарить автора, вы можете зайти к нему на сайт и понажимать рекламные ссылки. Если вы хотите поблагодарить меня за перевод или сообщить мне какие-либо замечания, вы можете сделать это здесь же в комментариях или написать мне в LinkedIn, ссылка на который есть в правой части сайта.

Простая инструкция по построению туннеля между компьютером с Windows 10 и роутером Mikrotik с помощью SSTP.

Для начала немного о том, как работает SSTP.

  1. SSTP-клиент открывает соединение с сервером по порту TCP:443.
  2. Клиент отправляет сообщение SSL-Hello.
  3. Сервер отправляет клиенту свой сертификат .
  4. Клиент проверяет валидность сертификата, выбирает метод шифрования (если не ошибаюсь, для Windows это AES-256), генерирует сессионный ключ SSL и шифрует его открытым ключом из сертификата сервера.
  5. Клиент отправляет серверу зашифрованный сессионный ключ SSL.
  6. Сервер расшифровывает сессионный ключ своим закрытым ключом. Всё дальнейшее общение между сервером и клиентом зашифровано этим ключом.
  7. Клиент отправляет серверу запрос HTTP over SSL.
  8. Клиент договаривается с сервером о параметрах SSTP-туннеля.
  9. Клиент устанавливает PPP-соединение с сервером. На этом шаге проверяются логин и пароль клиента, а также настраиваются параметры IPv4/IPv6.
  10. Клиент начинает обмен трафиком по туннелю.

Для соединения нам нужны:

  • Сертификат сервера.
  • Сертификат CA (Certificate authority), чтобы клиент мог доверять сертификату сервера, основываясь на этом сертификате.

Если вы организуете туннель между двумя устройствами Mikrotik, вам также нужен клиентский сертификат, но в нашем случае мы организуем туннель с Windows 10, и сертификат клиента нам не нужен.

Итак, поехали.

Шаг 0. Прежде всего, у вы должны располагать “белым” IP-адресом или зарегистрировать себе доменное имя на одном из сервисов, предлагающих услуги динамического DNS. Когда мы будем делать сертификаты, нам понадобится указать это в поле CN, по этому полю клиент будет проверять, туда ли он подключается и тот ли это сертификат. Имя сертификата и имя соединения не обязаны быть одинаковыми.

Шаг 1. Генерируем сертификат CA на роутере Mikrotik.

Заходим в System -> Certificate

Заполняем поля. Первый важный момент – это “белый” адрес или динамическое днс-имя, о котором я говорил ранее. Его надо указать в поле Common Name. Второе – срок действия можно указать поболее года, я просто добавил 0 и получил 3650 дней ~= 10 лет.

На вкладке Key Usage нужно убрать лишние галки и оставить только crl sign и key cert. sign.

Нажмите Apply, потом Copy, чтобы приступить к созданию сертификата сервера и не заполнять одно и то же по второму разу.

Шаг 2. Генерируем сертификат сервера.

Если вы нажали Copy на прошлом шаге, то у нас уже практически всё готово, надо лишь изменить пару вещей.

Поле Common name на данном этапе не имеет значения, так что можете поставить такое же имя, как у сертификата.

То, что нам нужно обязательно сделать – снять все галки на вкладке Key Usage. Нажмите OK, потом откройте сертификат ещё раз и убедитесь, что все галки на этой вкладке сняты.

Шаг 3. Подписываем наш самоподписанный сертификат CA.

Откройте сертификат CA и нажмите Sign. Мой сертификат называется “test”, поскольку он создаётся в тестовых целях, вам стоит назвать его CA или как-нибудь вроде этого.

CA CRL Host – это тот адрес, по которому будет проверяться, не отозван ли сертификат. Укажите в этом поле ваш IP-адрес или динамическое доменное имя. Поле CA должно быть пустым.

Нажмите Sign, дождитесь завершения операции, закройте окно подписи и убедитесь, что в поле “trusted” стоит галка.

К этому моменту вы не можете ничего поменять в сертификате, а в списке сертификатов у вашего сертификата стоят пометки KAT (Private Key, Authority, Trusted).

Шаг 4. Теперь у нас есть корневой сертификат (CA), пора подписать сертификат сервера.

Заходите в сертификат сервера, жмите Sign, и в поле CA выберите наш первый сертификат – CA.

У этого сертификата будет пометка KI (Private Key, Issued).

На этом с созданием сертификатов покончено.

Шаг 5. Включение сервера SSTP и создание пользователей.

Заходите в PPP и нажимайте кнопку SSTP Server. Оставьте только галку mschap2 в разделе Authentication, остальные нужно убрать, если стоят. Выберите ваш сертификат CA в поле Certificate, нажмите OK и переходите на вкладку Secrets.

Secrets – это имена пользователей, пароли и данные для подключения для пользователей туннелей на вашем роутере.

Нажмите плюс, чтобы добавить пользователя.

  1. Name: имя пользователя VPN.
  2. Password: пароль пользователя.
  3. Service: протокол VPN, которым будет пользоваться этот юзер. Для нас это SSTP.
  4. Local address: адрес вашего роутера в локальной сети.
  5. Remote address: адрес, который получит клиент при подключении.

Здесь можно выбирать пулы адресов , настраивать различные профили, но в целях статьи это не нужно.

Шаг 6. Убедитесь, что в вашем файрволе открыт порт TCP:443 в цепочке input.

Шаг 7. Экспорт сертификата и использование его в нашем клиенте Windows 10.

Снова заходите в System -> Certificates. Откройте сертификат CA, жмите Export. придумайте хороший пароль и запомните его. Жмите Export.

Теперь заходите в Files и копируйте сертификат CA на вашего клиента Windows.

Кликайте по нему правой кнопкой и жмите “установить”.

Следуйте инструкциям на экране, сертификат нужно установить в хранилище “Доверенные корневые центры сертификации” на локальном компьютере.

Нажмите Win+R запустите команду certlm.msc, это откроет хранилище сертификатов Windows. Убедитесь, что ваш сертификат установился в нужное хранилище. Имейте в виду, что имя сертификата – это то, что мы указывали в поле Common Name, а не имя файла или имя сертификата на роутере.

Шаг 8. Создаём подключение SSTP в Windows.

Мы уже почти закончили. Заходите в настройки системы -> Сеть и Интернет -> VPN или просто введите VPN в поиске рядом с пуском. Имя пользователя и пароль – это то, что вы указывали в разделе Secrets на роутере.

Жмите “Сохранить”, выбирайте своё подключение и нажимайте “подключить”.

Шаг 9. После подключения на роутере в PPP -> Active connections вы сможете увидеть своё подключение.