В этой статье я опишу настройку роутера MikroTik в качестве SSTP сервера для подключения удаленных сотрудников.
Введение
Я уже писал про SSTP, но в прошлый раз я настраивал SSTP между двумя MikroTik, в этой статье я опишу процесс подключения удаленных сотрудников, с операционными системами Windows, к офисной сети.
Очень часто у сотрудников, которым нужно работать из дома, на домашнем компьютере стоит Windows. Эта система, начиная с версии Vista, поддерживает SSTP без установки дополнительных программ.
Дополнительные преимущества SSTP:
- Удалённый сотрудник может иметь динамический IP и работать за NAT-ом.
- SSTP по умолчанию использует 443 порт, а для установки соединения использует протокол HTTPS.
- SSTP может работать используя протоколы IPv4 и IPv6.
- Роутеры MikroTik поддерживают SSTP.
Вот хорошие статьи про SSTP — здесь и здесь.
Схема сети
Удалённые сотрудники должны иметь доступ в интернет. И им, через интернет, должен быть доступен наш офисный роутер. Поэтому этот роутер должен иметь белый и статичный ip-адрес.
Адрес на sstp интерфейсе роутера будет 10.10.0.1, а клиенты будут получать адреса при подключении к sstp-серверу: 10.10.0.2, 10.10.0.3, 10.10.0.4 и так далее.
При этом локальные адреса клиентов нам не важны, главное чтобы они не пересекались с офисной локальной сетью и с сетью sstp. Обычно дома у сотрудников следующие подсети: 192.168.0.0/24 или 192.168.1.0/24.
Настройка SSTP на MikroTik для удаленных сотрудников
Создание корневого сертификата
Так как протокол SSTP использует TLS сертификаты, то мы должны выпустить корневой сертификат, и с помощью него выпустить сертификат для SSTP сервера. Для этого перейдем в System / Certificate и создадим новый сертификат.
При создании корневого сертификата заполняем поля следующем образом:
Опишу заполняемые поля:
- Name — видимое имя сертификата.
- Common Name — имя субъекта, которому выдан сертификат. Например, если бы мы делали сертификат для домена, то здесь нужно было бы указать имя этого домена. В корневом сертификате можно указать любое имя, например имя сертификата (Name) или имя организации (Organization).
- Key Size — длина ключа.
- Days Valid — срок действия сертификата в днях.
Сохраним сертификат нажав кнопку Apply, и подпишем его нажав кнопку Sign. В открывшемся окне следует заполнить поле CA CRL Host, здесь можно указать внешний ip-адрес роутера. Для подписания нажимаем кнопку Start.
Создание сертификата для SSTP сервера
Теперь выпустим сертификат для SSTP сервера:
Главное здесь заполнить следующие поля:
- Common name — здесь мы указываем внешний ip-адрес роутера.
- Subject Alt. Name — здесь тоже самое.
Сохраним сертификат нажав кнопку Apply, и подпишем его нажав кнопку Sign. При подписании нужно указать корневой сертификат, созданный нами ранее:
В итоге получилось два сертификата:
Экспорт корневого сертификата
На клиентский компьютер нужно будет установить корневой сертификат, поэтому экспортируем его. Для этого нажимаем на нём правой кнопкой мыши и выбираем Export:
В открывшемся окне, в поле Type ставим PKCS12 и придумываем пароль:
Найти и скачать выгруженный сертификат можно в разделе Files.
Создание сервера SSTP
Переходим в раздел PPP и создаём новый профиль, это делается на вкладке Profiles. При создании нового профиля заполняем поля на вкладках:
- Вкладка General — укажем имя профиля и локальный адрес для VPN-соединения:
- Вкладка Protocols — выбираем Use Encription:
- Вкладка Limits — ограничиваем подключения под одной учётной записью одним подключением:
После создания профиля, нажимаем ОК.
Теперь создаём учетные записи для подключения. Для этого переходим на вкладку Secrets. При создании каждой учетной записи, указываем имя пользователя, его пароль, используемый профиль и удалённый ip-адрес.
Осталось настроить и включить SSTP Server, для этого нажимаем кнопку SSTP Server. В открывшемся окне заполняем следующие поля:
Здесь нужно указать сертификат, подготовленный профиль, и включить сервер (Enable). Дополнительно я указал версию TLS — only-1.2.
Настройка фаервола
Правило для подключения клиентов к серверу SSTP
Если у вас фаервол настроен как нормально-закрытый, то есть, что не разрешено, то запрещено. То вам нужно разрешить входящее подключение к SSTP серверу, который работает на 443 порту. Для этого открываем IP / Firewall и создаём новое правило:
Заполняем следующие поля:
Здесь я разрешил входящий трафик (input) на внешний адрес этого роутера (Dst. Address). Дополнительно, проверяется протокол (Protocol) и порт подключения (Dst. Port) и входящий интерфейс (In. Interface).
Нажимаем OK и поднимаем это разрешающее правило выше ваших запрещающих правил.
Правило для подключения клиентов к офисной сети
Дополнительно нужно разрешить подключения от наших удалённых клиентов к локальной сети. Я это проделал следующим образом. Создадим адрес лист с адресами пользователей, я его назвал sstp:
И создадим правило (Filter Rules). Из адрес листа (Src. Address List) sstp на локальный бридж, в цепочке forward разрешаем подключения:
Так как клиент при подключении получает ip-адрес содержащийся в адрес листе sstp, то мы просто разрешаем таким клиентам подключаться к локальной сети (в данном случае к локальному бриджу) офиса.
Настройка клиента
Импорт корневого сертификата
На клиенте добавляем корневой сертификат, который создавали на сервере SSTP. При импорте придётся ввести пароль:
И помещаем сертификат в «Доверенные корневые центры сертификации»:
Настройка SSTP подключения
Переходим в меню «Пуск / Параметры» и находим там «Сеть и интернет».
Там переходим в меню «VPN» и добавляем новое VPN-подключение.
Указываем данные для подключения:
Сохраняем подключение.
Чтобы подключиться, выбираем это подключение и нажимаем «Подключиться». Но не спешите подключаться, перед этим нужно настроить маршрутизацию на клиенте.
Настройка маршрутизации на клиенте
Выключаем маршрут по умолчанию
По умолчанию VPN подключение даст клиенту новый маршрут по умолчанию. Это значит, что весь трафик пойдет через офис. Но так как на офисном MikroTik мы не настраивали NAT для таких клиентов, то Интернет у удалённого сотрудника пропадёт. Поэтому нужно выключить получение маршрута по умолчанию. Для этого переходим в меню «Ethernet» и там нажимаем на ссылку «Настройка параметров адаптера».
В открывшемся окне находим созданный интерфейс:
Нажимаем по нему правой кнопкой мыши и переходим в «Свойства». Там переходим на вкладку «Сеть». Выбираем настройки «IP версии 4» и нажимаем кнопку «Свойства».
Затем нажимаем на кнопку «Дополнительно».
И там снимаем флаг «Использовать основной шлюз в удалённой сети».
Добавляем маршрут к офисной сети
Маршрут по умолчанию мы убрали, но теперь нам нужно указать системе, что подключаться к офисной сети нужно через интерфейс SSTP. Для этого открываем PowerShell и выполняем:
ROUTE.EXE -p add 10.12.130.0 mask 255.255.255.0 10.10.0.1
Где ip 10.12.130.0 и mask 255.255.255.0 это офисная подсеть, а 10.10.0.1 — это адрес sstp сервера. А ключ -p означает что нужно создать постоянный маршрут, без этого ключа созданный маршрут исчезнет после перезагрузки.
После этого можете подключить VPN соединение и попробовать получить доступ к офисным ресурсам.
Если понравилась статья, подпишись на мой канал в VK.
Учитывая блокировки VPN со стороны РКН, статья — огонь! Ибо https (443 порт) РКН не заблочат. Если есть желание, можешь добавить поправочку с моей стороны. Не нужно делать постоянного маршрута. В винде есть фича при подключении VPN автоматически добавлять маршрут. Вместо «ROUTE.EXE -p add 10.12.130.0 mask 255.255.255.0 10.10.0.1», я бы использовал «Add-VpnConnectionRoute -ConnectionName «Название VPN соединения» -DestinationPrefix 10.10.0.0/24 –PassThru». Не благодари…=)
Данный пример для l2tp+ipsec
Для клиентов создать подсеть DHCP назначить pool и в route создать маршрут для этой сети.
Отправить скрипт клиенту для создания подключения (Win) можно в виде батника.
powershell -Command «Add-VpnConnection -Name ‘MyL2TPVPN’ -ServerAddress ‘vpn.example.com’ -TunnelType L2tp -L2tpPsk ‘YourPresharedKey’ -AuthenticationMethod Pap, MSChapv2 -EncryptionLevel Required -PassThru»
выдать логин и пароль.
Не проверял команду Powershell, но да, примерно так себе и предстаю работу.
Можно утилитой CMAK создать приложние для пользователя которое само создаст подключение для клиента.
Через эту утилиту можно передать файл маршрутов, а можно указать url на файл с маршрутами и держать его на каком-нибудь web.
Всегда сможете редактировать этот файл не затрагивая при этом клиентов.
Совсем не понятно откуда взялось 10.12.130.0 ???
10.12.130…. — нет в первоначальных настройках жее
Это у меня локалка сервера, её действительно нет в описании сети, возможно поправлю. То есть я делаю маршрут на локалку сервера (10.12.130.0/24 через vpn 10.10.0.1).