Mikrotik sstp server настройка windows

Обновлено: 06.07.2024

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

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

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

Нажми здесь, чтобы развернуть много букв и картинок

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

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

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

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

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


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


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

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

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

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


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




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

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


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

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

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

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




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


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

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

SSTP, как технологию удаленного доступа следует рассматривать в первую очередь для тех клиентов, которые могут работать из самых различных мест и должны всегда иметь возможность быстро подключиться к корпоративной сети соблюдая высокие требования безопасности. К недостаткам следует отнести повышенные накладные расходы и связанную с этим невысокую производительность, но это общий недостаток всех VPN-протоколов поверх TCP.

В случае использования оборудования Mikrotik встает вопрос высокой нагрузки на процессор для моделей без аппаратной поддержки AES. При этом вне зависимости от аппаратной поддержки шифрования скорость канала для недорогих моделей вряд-ли превысит 20-25 МБит/с , вне зависимости от доступной ширины канала. Более подробно об этом можете прочитать в нашей статье Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование. Поэтому мы не советуем использовать SSTP для каналов, предполагающих высокую загрузку, но можем рекомендовать как надежное и безопасное средство удаленного доступа для сотрудников, часто работающих вне стационарных рабочих мест.

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

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

Сначала выпустим корневой сертификат, для этого перейдем в System - Certificate и создадим новый сертификат заполнив поля как указано на рисунке, красным обозначены обязательные к заполнению.

mikrotik-sstp-vpn-server-001.jpg

Name - видимое имя сертификата, Common Name - имя субъекта, которому выдан сертификат, в каждом из них указываем CA (т.е. Certification authority). Вообще там можно написать все что угодно, но правила хорошего тона требуют давать сертификатам понятные имена. Key Size - размер ключа, оставляем по умолчанию 2048, Days Valid - срок действия сертификата в днях, имеет смысл указать достаточно продолжительный срок, в нашем случае 10 лет.

Перейдем на вкладку Key Usage и оставим только crl sign и key cert. sign, затем сохраним сертификат нажав Apply, и подпишем его кнопкой Sign, в открывшемся окне следует указать CA CRL Host, для которого можно использовать один из IP-адресов роутера, в нашем случае это localhost. Если же при помощи данного CA вы собираетесь выпускать сертификаты для других серверов, то следует указать доступный для них адрес, внутренний или внешний.

mikrotik-sstp-vpn-server-002.jpg

В терминале все это можно быстро сделать командами:

Затем выпустим сертификат сервера. При этом надо определиться каким образом вы будете подключаться к серверу по IP-адресу или FQDN (доменному имени), второй вариант более предпочтителен, так как при смене адреса вам придется перевыпустить сертификат сервера и изменить настройки всех клиентских подключений.

Заполнение полей практически ничем не отличается от предыдущего сертификата, за исключением Common Name и Subject Alt. Name, в них указываем FQDN или IP-адрес сервера, для поля Subject Alt. Name также указываем тип: DNS - для доменного имени или IP для адреса. Срок действия сертификата также имеет смысл сделать достаточно большим, в нашем случае 10 лет.

mikrotik-sstp-vpn-server-003.jpg

На закладке Key Usage устанавливаем digital-signature, key-encipherment и tls-server и подписываем сертификат сервера, для этого в поле CA выберите ранее выпущенный корневой сертификат.

mikrotik-sstp-vpn-server-004.jpg

В терминале:

При подключении через SSTP клиент прежде всего устанавливает с сервером защищенное соединения, а для этого ему нужно проверить сертификат и убедиться в его подлинности, в противном случае продолжение соединения будет невозможным. Чтобы клиентские системы доверяли нашим сертификатам нам нужно будет установить на них корневой сертификат нашего CA.

Для этого выберем корневой сертификат в System - Certificate, щелкнем на нем правой кнопкой мыши и нажмем Export, в поле Type ставим PEM, пароль не указываем, так как нам нужен только сертификат, без закрытого ключа. Закрытый ключ центра сертификации является секретным и никогда не должен покидать пределы роутера.

mikrotik-sstp-vpn-server-005.jpg

В терминале сертификат можно экспортировать командой:

Найти и скачать выгруженный сертификат можно в разделе Files.

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

Перед тем как браться за настройку сервера следует определиться со схемой доступа к сети, существуют два основных варианта: Proxy ARP, когда адреса удаленным клиентам выдаются из диапазона основной сети и они получают доступ без дополнительных настроек, и маршрутизация, когда диапазон адресов для VPN-клиентов не пересекается с основной сетью, а для доступа в нее будет необходимо указать маршруты, этот процесс можно автоматизировать с помощью PowerShell.

После этого перейдем в IP - Pool и создадим новый пул адресов для выдачи VPN-сервером, количество адресов в пуле не должно быть меньше предполагаемого количества клиентов.

mikrotik-sstp-vpn-server-006.jpg

В терминале:

Затем перейдем в PPP - Profiles и создадим новый профиль, в поле Local Address введем локальный адрес VPN-сервера, он должен относиться к тому же диапазону что и выделенный выше пул адресов, который следует указать в поле Remote Address, остальные настройки оставляем по умолчанию.

mikrotik-sstp-vpn-server-007.jpg

Или выполним команду:

Затем переместимся в PPP - Secrets и создадим учетные записи пользователей, указываем имя пользователя, пароль, в поле Service выбираем sstp, что ограничит действие учетной записи только SSTP-сервером, если оставить any, то учетка сможет подключаться к любому сервису. В поле Profile указываем созданный нами профиль.

mikrotik-sstp-vpn-server-008.jpg

Эти же действия в командной строке:

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

mikrotik-sstp-vpn-server-009.jpg

В терминале для включения и настройки сервера выполните:

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

Настройка подключения клиента в Windows

Как мы уже говорили, для того чтобы клиент мог проверить подлинность сервера нам необходимо импортировать корневой сертификат, переместим его на клиента и установим в Расположение хранилища - Локальный компьютер:

mikrotik-sstp-vpn-server-010.jpg

Хранилище сертификатов - Доверенные корневые центры сертификации:

mikrotik-sstp-vpn-server-011.jpg

Затем создаем подключение, в котором указываем Тип VPN - Протокол SSTP и Тип данных для входа - Имя пользователя и пароль, здесь же вводим адрес сервера и учетные данные.

mikrotik-sstp-vpn-server-012.jpg

После чего в свойствах подключения на закладке Безопасность убедимся, что в разделе Проверка подлинности указан только протокол MS-CHAP v2.

mikrotik-sstp-vpn-server-013.jpg

Настройка клиента закончена, можно подключаться.

Настройка подключения клиента в Linux

В используемых нами дистрибутивах Linux нет штатного SSTP-клиента, однако есть сторонняя разработка, которой мы и воспользуемся. Все нижесказанное будет справедливо для дистрибутивов основанных на Debian и Ubuntu, если у вас иная система обратитесь на страницу проекта.

Проще всего владельцам Ubuntu, им достаточно просто подключить PPA, ниже приведен пример для Ubuntu 18.04, для других систем просто измените кодовое название дистрибутива:

В Debian процесс немного более сложный, сначала получим и установим ключ репозитория проекта:

Затем создадим файл с указанием источников пакетов:

И внесем в него следующие строки:

Обновим список пакетов и установим клиент:

После чего появится возможность создать SSTP-соединение штатными средствами Network Manager. Настройки несложные: указываем адрес сервера, учетные данные и сертификат CA, у которого предварительно следует изменить расширение на PEM.

mikrotik-sstp-vpn-server-014.jpg

Если вы все сделали правильно, то соединение будет установлено.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Для шифрования используется SSL, для аутентификации — SSL и PPP. SSL соединение авторизует клиент сервер по SSL сертификату, а сервер клиента по PPP (MS-CHAP, EAP, PEAP). Примерный путь прохождения SSTP соединения:

Сервер SSTP на MikroTik

Перед началом работ сделаем резервную копию:


Создадим пул для адресов VPN клиентов:


Создаем профиль SSTP Сервера:






Поднимаем сервер сертификации (CA):

Далее Key Usage:


Это головной сертификат нашего CA и его роль только подписывать сертификаты выданные им самим. Оставляем только этот функционал: выдача приватных и публичных ключей.

Нажимаем Apply далее Sign:


Создаем сертификат SSTP сервера:



Нажимаем Apply далее Sign и подписываем сертификатом нашего CA:


Запускаем сервер VPN SSTP:



Сервер SSTP готов.

Убедимся что 443 порт открыт на файерволе. Если нет, открываем:
Подробно останавливаться не буду. Команда через консоль:

Настройка клиента

Экспортируем сертификат центра сертификации:


Забираем файл сертификата из FILES и устанавливаем на компьютер клиента.

Сертификат должен быть помещен в контейнер: Trusted Root Certification Authorities. Можно установить командой:

Настраиваем VPN на Mikrotik CHR

Ранее мы писали про установку и базовую настройку Mikrotik CHR на виртуальные серверы. В этой статье мы выполним настройку VPN-сервера на базе Cloud Hosted Router и подключим клиентские устройства к настроенному VPN.

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

  • 1 vCPU;
  • 512 МБ RAM;
  • 5 ГБ быстрый диск.

Операционной системой выбрана актуальная на момент написания статьи Stable-версия RouterOS: 6.47.6. Мы предполагаем, что читатель уже установил MikroTik CHR и провел первичную настройку.

Несмотря на то, что в статье описана настройка на Cloud Hosted Router, эта инструкция может использоваться и для физических маршрутизаторов с RouterOS.

Общие настройки

Создание пула IP-адресов

При подключении к VPN клиент «входит» в локальную сеть с VPN-сервером. Это требует серой подсети и списка доступных для клиента адресов, называемых пул. Создать пул можно следующей командой:

Мы выделили 253 адресов в подсети 172.24.0.0/24 и назвали ее vpn-pool.

Обратите внимание, что адрес 172.24.0.254 не входит в пул адресов, так как этот адрес будет принадлежать VPN-серверу и не должен быть выделен клиенту.

Создание PPP-профиля

«Связать» пул адресов для клиентов и адрес VPN-сервера можно с помощью PPP-профиля. Используем следующую команду:

Рассмотрим параметры команды:

  • name=vpn-profile — задаем имя профиля;
  • local-address=172.24.0.254 — задаем адрес VPN-сервера;
  • remote-address=vpn-pool — указываем использовать пул vpn-pool для выдачи адресов клиентам;
  • use-mpls=no — не используем MultiProtocol Label Switching;
  • use-compression=yes — включаем сжатие трафика;
  • use-encryption=yes — включаем шифрование;
  • only-one=no — разрешаем более одного одновременного подключения для пользователя.

Настройка NAT

Создать локальную сеть между VPN-сервером и VPN-клиентом — это половина проблемы. Далее необходимо разрешить клиенту выходить в интернет через VPN-подключение. Для этого необходимо настроить NAT. Сделать это можно следующей командой:

Создание пользователя

Далее создаем пользователя. Сделать это можно следующей командой:

Параметр service определяет, какие сервисы доступны пользователю. Мы планируем использовать пользователя для демонстрации четырех протоколов VPN, поэтому установим значение any. Создаем пользователя vpn-user с паролем vpn-password с доступом к любому сервису:

Пользователь создан. Однако, некоторые VPN-протоколы требуют сертификатов.

Генерация сертификатов сервера

Если вы планируете использовать OpenVPN или SSTP, то со стороны сервера требуются два сертификата: CA (Certification authority, Центр Сертификации) и серверный (server). Первый сертификат является «неоспоримым» и им можно подтверждать самоподписанные сертификаты, созданные для сервера и для клиентов.

Сперва выберем Common Name (CN) для центра сертификации. Здесь нет специфических требований, поэтому допустимо использовать любое имя. Мы используем имя хоста в качестве CN. В параметре ca-crl-host необходимо указать IP-адрес или домен VPN-сервера.

Далее создаем сертификат для VPN-сервера и подписываем его только созданным CA-сертификатом. Обратите внимание, что CN для сертификата сервера должен быть строго доменом или IP-адресом.

Для протокола SSTP значение поля CN является критичным. Если CN является IP-адресом, то VPN-клиенту нужно подключаться именно по IP-адресу. При подключении по домену произойдет ошибка.

Сертификат CA необходимо экспортировать, чтобы клиент доверял сертификату сервера. Файл:

После экспорта на вкладке Files в веб-интерфейсе можно будет скачать файл cert_export_MikroTik.crt. Сохраните его, он потребуется далее.

Настройка VPN-сервера

Мы рассмотрим четыре протокола для организации VPN:

Каждый из протоколов обладает своими плюсами и минусами. Рассмотрим протоколы поближе.

Начнем с самого легкого в настройке протокола Point-to-Point Tunneling Protocol (PPTP). Данный протокол не требует большого количества вычислительных ресурсов и поддерживается «из коробки» множеством операционных систем. Среди минусов — наличие серьезных уязвимостей в протоколах аутентификации.

Запустить VPN-сервер можно в одну команду:

В качестве клиента возьмем смартфон под управлением ОС Android 8.0.0.


Добавление VPN и подключение средствами ОС Android

Подключение по PPTP не требует дополнительного программного обеспечения и не доставляет проблем. Однако, если хочется чуть больше безопасности, то следует посмотреть в сторону протоколов L2TP/IPsec.

L2TP/IPSec

Как и PPTP, протоколы L2TP/IPsec поддерживаются большим количеством операционных систем. Более того, используемый в IPsec алгоритм шифрования AES на данный момент не имеет серьезных уязвимостей, что гарантирует относительную безопасность и конфиденциальность при использовании L2TP/IPsec.

Настройка L2TP/IPsec VPN-сервера похожа на настройку PPTP-сервера:

Обратите внимание на параметр ipsec-secret. Этот параметр — общий ключ IPsec. Так как мы используем аутентификацию по паре логин/пароль без сертификата, то в настройках клиента необходимо выбирать L2TP/IPsec PSK или L2TP/IPsec с общим ключом.


Выбор L2TP/IPsec PSK и ввод ipsec-secret

Хотя L2TP/IPsec является хорошим компромиссом, стоит оценить и OpenVPN.

OpenVPN

Включаем OpenVPN-сервер с указанием серверного сертификата, который сгенерировали ранее:

Создаем шаблон клиентского сертификата:

Генерируем сертификат для пользователя vpn-user на основе шаблона:

Экспортируем сертификат и ключ. Обратите внимание, что пароль во время экспортирования указан пароль super-secret-password, который необходимо будет ввести при импорте в VPN-клиенте.

В веб-интерфейсе на вкладке Files можно найти следующие файлы:

  • cert_export_vpn-user@MikroTik.crt;
  • cert_export_vpn-user@MikroTik.key.

Скачиваем указанные файлы и составляем конфигурационный файл ovpn:

Передаем ovpn-файл на смартфон и импортируем его через OpenVPN Connector.


Импортирование профиля ovpn

В качестве Private Key Password используем пароль, указанный при экспортировании. Данные пользователя для подключения остались неизменными.

SSTP — это проприетарный протокол от Microsoft, обладающий достоинствами OpenVPN. Данный протокол поддерживается ОС Microsoft Windows, начиная с Vista SP1, а на других ОС требует установки дополнительного ПО.

Для запуска сервера достаточно выполнить одну команду:

Так как данный протокол поддерживается Windows, то проверим работу сервера на Windows 10. В первую очередь необходимо установить центр сертификации. Скачиваем cert_export_MikroTik.crt и открываем двойным кликом.


Импорт сертификатов

Откроется окно, которое предупреждает, что нет доверия к этому центру сертификации. Это исправляется установкой сертификата. При установке выбираем хранилище «локальный компьютер» и на следующем шаге помещаем сертификат в «доверенные корневые центры сертификации». Теперь можно приступить к настройке VPN-подключения.


Настройка SSTP VPN на Windows 10

Открываем Параметры Windows — Сеть и Интернет — VPN и добавляем VPN-подключение, вводим имя или адрес сервера как было указано в сертификате сервера и вводим свои логин-пароль. VPN-подключение установлено.

Заключение

Мы рассмотрели настройку VPN-серверов на четырех разных протоколах. Надеемся, что эта инструкция поможет вам создать собственный виртуальный маршрутизатор на базе Mikrotik CHR.

Читайте также: