Сервер в кармане, или просто о сложном!

главная - Статьи - Mikrotik


Много интересного на канале

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

Дата обновления: 07.05.2025

Теги: Mikrotik

Начиная с RouterOS 7 есть возможность запускать на Mikrotik OpenVPN сервер на базе UDP порта. Да и вообще функционал "улучшен, углублен и расширен", хоть и не до уровня обычного linux.

Как правило, про OpenVPN говорят, что он не такой быстрый, как Wireguard, IKEv2. Но для каждого инструмента есть свое применение. И для OpenVPN песня не только не спета, но она еще попоет. Поэтому инструкция по настройке не помешает.

Чтобы настроить OpenVPN сервер на Mikrotik, нужно:
1) подготовить роутер Mikrotik (точное время)
2) выпустить сертификаты сервера и клиентов
3) создать сеть, к которой будут подключаться клиенты
4) создать учетные записи клиентов
5) включить сервер OpenVPN на mikrotik
6) установить на клиентах OpenVPN клиент с нужным конфигом.

Ну и вспомогательные всякие штуки нужно сделать.

Говорят, чудес не бывает. Но это mikrotik. Тут чудеса бывают часто, внезапно и почти всегда не вовремя. Но все же, если после настройки клиент подключается, но не может выйти в интернет, не может достучаться до сервера или что-то еще в таком духе, почти наверняка проблема с маршрутами, NAT и firewall. Это те самые черные дыры, в которых пропадает трафик, уходит не тот инерфейс или что-то в этом роде. Тут главное выдохнуть и начать дебажить. Но это потом. А сейчас надо настроить сервер.

 

Подготовка Mikrotik к OpenVPN

Синхронизация времени

VPN чувствительны к правильному времени на клиенте и сервере. И если на клиенте это как правило не проблема, то на микротике надо проверить, правильно ли установлены часы и рекомендуется включить NTP-слиент:


Выпуск сертификатов

В зависимости от задачи сертификаты можно выпускать и с помощью openssl, своим отдельным центром сертификации, а можно проще и быстрее - сразу на микротике. В этом руководстве так и сделаем.

Далее работа идет в разделе System - Certificates

Выпуск CA (наш Удостоеряющий Центр в масштабах нашего микротика):

Чтобы выпустить сертификат CA, надо его подписать. Пока некем подписывать, поэтому сами себя. Можно указать CRL, указав внутренний адрес микротика (или другой адрес, но это отдельный разговор, "на скорость" это не влияет в данном случае):

Выпуск сертификата сервера

Выпуск сертификата клиента

Заполнив нужные поля, жмем Apply (1 на картинке, будет создан ключ), потом Sign (2 на картинке выше, будет выпущен сертификат и подписан нашим CA):

 

Обратите внимание на то, что сертификат CA имеет отметки KLAT, а сертификаты клиента и сервера KI. Это видно на картинке выше. Так должно быть и у вас.

 

Экспорт сертификата клиента

Правой мышкой на сертификате клиента - Export:

 

Экспорт в виде архива .p12. Нужно задать пароль, чтобы был экспортирован приватный ключ. Этот пароль затем будет указан в конфиге клиента в открытом виде. Сложность пароля на ваш вкус, но принцип "разумной сложности" никто не отменял. В тестовых целях сложность не имеет значения, использую "1234567890".

После экспорта файл архива будет в Files, откуда его надо скачать и затем использовать на клиенте.

 

Сеть

Подключившись, клиент OpenVPN получит от микротика какой-то IP-адрес. Этот адрес лучше сделать из отдельной сети, специально для клиентов OpenVPN.

Пусть это будет сеть 10.0.11.0/24.

Важно! После подключения к микротику клиенту выдается какой-то IP-адрес. При этом клиент не попадает в бридж по-умолчанию, в ваш vlan, куда-либо вообще. Клиент "болтается" в оперативке роутера и пытается с помощью маршрутов в микротике дальше как-то жить. Понимание этого может существенно упростить debug.


PPP Profile

Тут всего две настройки: выбор Local Address и Remote Address (в данном случае это пул адресов, созданный ранее).

Дополнительно: на вкладке Limits есть опция: Only One. Чтобы на одни учетные данные мог быть только один клиент, поставьте Yes.


PPP Secrets

По сути, учетные записи клиентов.

Логин: ovpn_user1
Пароль: 12345

Здесь Remote Address выбран для примера такой возможности. Можно было не указывать, тогда адрес этому клиенту был бы выбран случайно из пула.

 

Сервер OpenVPN

Собственно, сервер:

Здесь большинство параметров очевидны, а часть просто надо принять и использовать как есть. Ну или экспериментировать самостоятельно.

 

Firewall

В конфиге сервера выше указан протокол (udp) и порт (1194). Соответственно, для этого надо сделать разрешающее правило в firewall:

Доступ к роутеру из сети OpenVPN:

/ip firewall filter add chain=input src-address=10.0.11.0/24 dst-address=192.168.88.1/32 action=accept

Доступ к локальной сети 192.168.88.0/24 (поправьте на вашу сеть) из сети OpenVPN:

/ip firewall filter add chain=forward src-address=10.0.11.0/24 dst-address=192.168.88.0/24 action=accept
/ip firewall filter add chain=forward src-address=192.168.88.0/24 dst-address=10.0.11.0/24 action=accept

 

Клиент OpenVPN

Проговорить все возможные нюансы невозможно, конечно. Но основные можно попробовать:

Откуда скачивать: https://openvpn.net/community-downloads/

Что скачивать: последнюю версию. Если что-то пошло не так, взять версию на 6-12 месяцев старше.

Настройки маршрутов. Это действительно важно! Если ваш клиент должен работать с сетью 192.168.101.0/24, то соответсвующий маршрут и надо указывать. Не нужно гнать весь трафик туда, где его никто не ждет.

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

Состав конфига см. ниже.

 

Конфиг клиента (файл на клиенте, .ovpn)

client
dev tun
proto udp
remote 192.168.88.187 1194
resolv-retry infinite
nobind
route 10.0.11.0 255.255.255.0
route 192.168.100.100 255.255.255.255
persist-key
persist-tun
pkcs12 mikrotik_openvpn_client1.p12
askpass keypass.txt
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
auth-user-pass password.txt
verb 3

 

Файлы:
keypass.txt содержит одну строку (пароль экспорта ключа p12):
1234567890 

password.txt (2 строки):
ovpn_user1
12345

Файлы должны находится в той же директории, что и конфиг mikrotik.ovpn.

Строки:
route 10.0.11.0 255.255.255.0
route 192.168.100.100 255.255.255.255

указывают клиенту маршрутизировать в тоннель OpenVPN только трафик до сети 10.0.11.0/24 и до хоста 192.168.100.100.

Это уже кому как надо трафик направлять. 192.168.100.100 может быть каким-то нужным сервером в сети, с которым должен работать клиент.

В итоге в папке клиента OpenVPN должны быть такие файлы:



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?




Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.

В чем разница между masquerade и src-nat в MikroTik

Опубликовано: 09.05.2025 14:36

С Днём Победы!

Опубликовано: 09.05.2025 13:03

Зачем Яндекс.Браузеру эти данные?

Опубликовано: 09.05.2025 02:51

Ох уж этот OpenSource…

Опубликовано: 09.05.2025 02:30