OpenVPN сервер на RouterOS (Mikrotik)

Материал из sysadm
Перейти к навигации Перейти к поиску

Обзор

На текущий момент, реализация OpenVPN сервера на RouterOS (Mikrotik) поддерживает работу только по протоколу TCP. Отсутствие поддержки UDP является существенным недостатком этой реализации.

Настройка

Сертификат

Создайте сертификат OpenVPN сервера (самоподписанный)

General:
  Common name: vpn.domain.ru
  Subject Alt. Name (DNS): vpn.domain.ru

Key Usage:
  digital signature
  key encipherment
  data encipherment
  key cert.sign
  crl sign
  tls server

Можно средствами RouterOS

System / Certificates
  Добавьте сертификат
    укажите необходимые параметры сертификата
  Подпишите сертификат
    Контекстное меню Sign
    В качестве подписывающего сертификата выбираем подписываемый (чтобы получить самоподписанный)

Если сертификат создан сторонними средствами, то его необходимо импортировать в RouterOS

System / Certificates
  [Import]

Экспортируйте в файл публичную часть сертификата, он понадобится клиентам для подключения

System / Certificates
  Контекстное меню на сертификате / Export
  Type: PEM

  (Экспортированный файл сохранится на роутере)
  Files

Cервер OpenVPN

Включите сервер OpenVPN

PPP / Interface
  [OVPN Server]
    [v] Enabled
    Port: 1194
    Mode: ip
    Netmask: 24
    Default Profile: <выберите профиль>
    Certificate: <выберите сертификат>
    [ ] Require Client Certificate
    Auth:
      [v] sha1
      (остальные выключаем)
    Cipher:
      [v] aes256
      (остальные выключаем)

Клиент OpenVPN

  • Метод аутентификации (логин/пароль)
  • Дополнительные параметры OpenVPN
    • Использовать соединение TCP
    • Задать тип виртуального устройства TUN
    • Шифр: AES256-CBC
    • Аутентификация HMAC: SHA-1

Клиент OpenVPN под Linux может добавлять маршрут на хост OpenVPN сервера, привязывая его к текущему шлюзу по умолчанию.

Проверено на Ubuntu 20.04, при подключении через GUI модуль менеджера сети

Если OpenVPN сервер недоступен через Default Gateway (например, находится в виртуальной или изолированной локальной подсети), то необходимо вручную создать постоянный маршрут на хост OpenVPN сервера через правильный интерфейс. Иначе, при подключении будет автоматически создаваться маршрут на хост OpenVPN сервера через Default Gateway, что приведет к его недоступности.

Remote Address в параметрах учетной записи VPN и значение netmask в параметрах OpenVPN сервера, определяют маршрут в VPN подсеть, который будет создаваться автоматически на стороне VPN клиента.

Например:
  Remote Address: 172.18.17.21
  OVPN Server / netmask: 23

  При подключении будет создан маршрут в подсеть 172.18.16.0/23 через VPN интерфейс.

Если для Local Address (параметр учетной записи VPN) не будет маршрута на стороне клиента, то к роутеру нельзя будет обращаться по этому адресу, но это не помешает работе с другими подсетями доступными через данный VPN.