Настройка OpenVPN на роутерах Mikrotik

Содержание

В сегодняшней статье мы рассмотрим настройку OpenVPN сервера на роутере Mikrotik, а также подключимся через данный VPN к серверу внутри локальной сети нашего Mikrotik.

Предупреждение! У вас должен быть белый, неважно статический или динамический IP адрес, чтобы VPN сервер работал, иначе вы к нему не сможете подключиться из внешней сети!

Mikrotik hAP ac^2 в качестве роутера-сервера, виртуальную машину с Windows 8.1 для генерации сертификатов, ноутбук с Windows 11 и другой сетью для тестирования соединения с установленным OpenVPN Connect (Сеть: 100МБит/с), сервер на Linux Debian для тестирования подключения внутри локальной сети по протоколу SSH, внешний канал со статическим внешним IP адресом (адресом, к которому можно подключиться из Интернета) и скоростью 400МБит/с.

Подготовка

Переходим на сайт для скачивания OpenVPN тык

Скачиваем версию 2.4.11 от 21 апреля 2022г. Почему не последнюю? На последней имеются проблемы с генерацией сертификатов и их совместимостью с Mikrotik (при тестировании выдавало ошибку авторизации). Поэтому воспользуемся достаточно свежей версией, но в которой для генерации сертификатов используется EasyRSA 2, а не 3. На безопасность это никак не влияет, останется такой же уровень, зато мы получаем идеальную совместимость.

Настройка OpenVPN на роутерах Mikrotik

При установке отмечаем галочку на EasyRSA 2, в остальном вполне обычный процесс установки. Только при установке TAP драйвера Windows может выдать уведомление о том, что устройство недоверенное и требуется подтверждение установки драйвера, в данном случае ставим галочку на доверять производителю и установить.

Настройка OpenVPN на роутерах Mikrotik

Настройка OpenVPN на роутерах Mikrotik. Генерация сертификатов

После установки открываем командную строку от имени администратора, там вводим команду cd C:\Program Files\OpenVPN\easy-rsa

И также в проводнике переходим в данную директорию.

Настройка OpenVPN на роутерах Mikrotik

Затем открываем блокнот и вписываем данный текст:

set "PATH=%PATH%;%ProgramFiles%\OpenVPN\bin"
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=1024
set KEY_COUNTRY=RU
set KEY_PROVINCE=Saint-Petersburg
set KEY_CITY=Saint-Petersburg
set KEY_ORG=YODO-ORG
set KEY_EMAIL=vpn@yodo.im
set KEY_CN=YODO
set KEY_OU=VPN
set KEY_NAME=x.x.x.x
set PKCS11_MODULE_PATH=VPN
set PKCS11_PIN=12345678

Где x.x.x.x — Ваш внешний IP адрес. (можно узнать на 2ip.ru)

KEY_SIZE можно указать и 2048, тогда подключение будет более безопасное, но и нагрузка будет выше из-за шифрования, поэтому пока оставим 1024.

KEY_CN — имя указанное в сертификате или имя/домен/IP сервера.

KEY_OU — Подразделение организации, в данном случае можно указать просто VPN

KEY_NAME — произвольное имя, мы укажем просто IP для сертификата сервера, для клиента соответственно имя клиента.

KEY_EMAIL — почта администратора сервера (укажем несуществующую для примера)

Сохраняем как vars.bat на рабочем столе (в проводнике выберите тип файла "все файлы" и напишите в имя файла vars.bat) и перемещаем в вышеуказанную директорию (требуются права администратора). Готовый файл: тык

Настройка OpenVPN на роутерах Mikrotik

Переходим к командной строке (CMD). Вписываем там vars.bat, выполняем. Затем clean-all.bat, потом ещё раз vars.bat.

Настройка OpenVPN на роутерах Mikrotik

Далее создадим корневой сертификат командой build-ca.bat

Настройка OpenVPN на роутерах Mikrotik

Поскольку переменные у нас уже заданы, просто везде нажимаем ENTER, где это требуется.

Затем создадим сертификат для сервера командой build-key-server.bat server где server — название файла сертификата

Процедура аналогичная, только в Common Name можно указать уже другое значение, например Mikrotik. Также запрос пароля пропускаем нажатием ENTER, затем соглашаемся на подпись сертификата нажав y и ENTER.

Для клиента все аналогично, Common Name и Name укажем Client1. Всё аналогично тому, что выше, только команда build-key.bat client1 где client1 — имя файла сертификата. Таких можно делать много, указывая Client2, свои имена и т.д, в зависимости от того, сколько сертификатов требуется.

Настройка OpenVPN на роутерах Mikrotik

Теперь открываем winbox, подключаемся к нашему Mikrotik. Открываем files и перемещаем файлы ca.crt server.crt и server.key, потом импортируем их в SystemCertificates в заданной последовательности. Пароль указывать не нужно.

Поскольку я создаю VPN, чтобы подключаться к своей же локальной сети, поэтому не буду выделять отдельный пул, а воспользуюсь адресным пространством моего общего DHCP сервера. Для этого уже есть стандартный профиль default. Заходим в PPPProfiles. Открываем профиль default и сверяемся с данными. Локальный адрес — шлюз, сам Mikrotik. У меня в локальной сети используется подсеть 172.16.0.0/24 (256 адресов), шлюз в данном случае 172.16.0.1

Удаленный адрес — пул DHCP сервера, в данном случае он выбран как DHCP. Клиент получит адрес по-типу 172.16.0.25

Для знающих:

Также у меня есть отдельная подсеть для других VPN подключений, но она для совершенно других целей и для изоляции от моей локальной сети. Там используется адресное пространство 10.0.0.0/26 (64 адреса, используется 50 из них), что также относится к пространству локальных сетей, как и 192.168.0.0/16 (65 536) и 172.16.0.0/12 (1 048 576) (а также полная для 10.0.0.0/8 (16 777 216 )). Продолжаем настройку.

Теперь перейдем в PPPOVPN Server, выставляем параметры как на скриншоте и нажимаем Apply.

Настройка OpenVPN на роутерах Mikrotik

Режим IP — это Tun (сетевой туннель, сетевой уровень в модели OSI) в OpenVPN, рекомендую использовать его.

Теперь перейдем в PPPSecrets, создаем учетную запись, выставляем параметры как на скриншоте. Дополнительно можем выделить статический локальный IP адрес клиенту в Remote Address, например 172.16.0.25 в моем случае.

Настройка OpenVPN на роутерах Mikrotik

Затем создадим конфигурационный файл для подключения, обратите внимание, где замазано — там должен быть Ваш внешний IP адрес.

Также обратите внимание на cipher, там стоит none, т.е без шифрования. Хоть роутер и имеет аппаратное обеспечение для шифрования, но нагрузку оказывает достаточно сильную всё равно. Возможны также варианты AES-128-CBC AES-192-CBC AES-256-CBC в зависимости от необходимой мощности шифрования.

client
dev tun
proto tcp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
keepalive 10 120
verb 3
remote-cert-tls server
cipher none
auth-user-pass auth.txt
route 0.0.0.0 0.0.0.0
redirect-gateway def1

Настройка OpenVPN на роутерах Mikrotik

в auth.txt у нас будут храниться данные, указанные в Secrets в Mikrotik. На первой строчке файла должен находиться логин, на второй пароль и никак иначе.

Настройка OpenVPN на роутерах Mikrotik. Подключение

Теперь копируем файлы ca.crt client1.crt client1.key на клиентский ПК (в данном случае ноутбук), создаем auth.txt и вписываем необходимые данные. Все должно находиться в 1й директории. Затем скачиваем OpenVPN Connect тык

Установка предельно проста, поэтому в пояснении не нуждается.

Настройка OpenVPN на роутерах Mikrotik

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

Настройка OpenVPN на роутерах Mikrotik

Как видим — указанный пользователь в Secrets, IP адрес из диапазона DHCP.

Теперь главное — сделаю Ping до своего сервера (который упоминался в начале статьи как сервер на Debian), чтобы проверить, есть ли к нему доступ и доходят ли пакеты, а затем попытаюсь подключиться по SSH до этапа ввода пароля. Всё проходит успешно.

Настройка OpenVPN на роутерах Mikrotik

Как видим — доступ есть. Теперь сделаем Speedtest, посмотрим какую скорость выдает данная конфигурация. Также учтем, что Wi-Fi в ноутбуке может выдавать в среднем 50МБит в секунду, несмотря на 5ГГц сеть. Сеть используется не моя, поэтому мы заходим полностью с внешнего канала.

Неплохой результат, нагрузка на роутер достигала 25% (что для 4х ядер и без шифрования многовато, когда в обычном использовании при 400МБит не выше 8%).

Возможные проблемы

Ошибка Time Out в логах, если у вас IP адрес не внешний (зачастую). В таком случае обратитесь к Вашему провайдеру для того, чтобы подключить услугу внешний/статический IP адрес. Стоимость

150руб в месяц. Других проблем, если вы делали всё четко по инструкции быть не должно.


Источник: blog.yodo.im