Настройка OpenVPN на MikroTik для объединения офисов
Введение
Статья содержит пошаговое руководство по настройке протокола OpenVPN на MikroTik для объединения двух офисов (site-to-site VPN). Информация актуальна для RouterOS v7.21.2, последняя проверка актуальности была в феврале 2026. Также описана настройка маршрутизации и брандмауэра, приведены типичные проблемы и способы проверки полученных результатов. Все операции демонстрируются как через графический интерфейс WinBox 3 и WinBox 4, так и через командную строку (CLI).
В статье поэтапно описана настройка VPN-туннеля на базе протокола OpenVPN на MikroTik RouterOS v7 для объединения двух офисов (site-to-site VPN). Также описаны настройка маршрутизации и брандмауэра, приведены типичные проблемы и способы проверки полученных результатов. Настройка описывается на примере графического интерфейса (GUI) утилит WinBox 3 и WinBox 4, а также на примере интерфейса командной строки (CLI).
Протокол OpenVPN работает по клиент-серверной модели, т.е. один маршрутизатор должен быть OpenVPN-сервером, принимающим подключения, а второй – OpenVPN-клиентом, инициирующим подключения. Для возможности установления соединения через Интернет внешний интерфейс маршрутизатора, на котором будет настроен OpenVPN-сервер, должен иметь маршрутизируемый в Интернете (публичный, «белый») IP-адрес. Если такие адреса есть на обоих маршрутизаторах, то чаще всего OpenVPN-сервер располагают в головном офисе. Если же такой IP-адрес есть только в одном из офисов, то OpenVPN-сервер располагают именно в нем.
| Рисунок 1. Схема сети |
| Параметр маршрутизатора | Офис 1 | Офис 2 |
|---|---|---|
| Имя | R1 | R2 |
| Тип VPN-интерфейса | OpenVPN-сервер | OpenVPN-клиент |
| Адрес VPN-интерфейса | 172.16.1.1/32 | 172.16.1.2/32 |
| Адрес внешнего (WAN) интерфейса | 100.64.111.1/24 | 100.64.222.1/24 |
| Адрес внутреннего (LAN) интерфейса | 10.11.11.1/24 | 10.22.22.1/24 |
| Адрес внутренней (LAN) сети | 10.11.11.0/24 | 10.22.22.0/24 |
Настройка центра сертификации
Общее описание
В статье описана настройка на MikroTik самоподписанных сертификатов для OpenVPN-подключения site-to-site. Все настройки выполняются на R1. Для этого надо выполнить следующие шаги:
- активировать список отзыва сертификатов,
- создать сертификаты,
- подписать сертификаты,
- экспортировать сертификаты.
Активация списка отзывов сертификатов
Список отзывов сертификатов на английском языке называется Certificate Revocation List (CRL). На устройствах MikroTik за активацию CRL отвечает параметр Use CRL, который находится в System → Ceritificates → вкладка Certificates → кнопка Settings. Если не использовать CRL, то сервер не сможет проверять отозваны ли сертификаты OpenVPN-клиентов и запрещать подключения в случае отзыва. Если же сертификаты клиентов не отзывать, а удалять сертификаты из хранилища сертификатов, то клиенты все-равно смогут подключиться. В рамках данной статьи OpenVPN-сервер будет проверять не отозваны ли сертификаты клиентов. Настройка проверки клиентами сервера значительно усложнила бы данную статью и поэтому находится за ее рамками.
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 2. Включение на R1 проверки списка отзывов сертификатов |
С помощью WinBox 4
| Рисунок 3. Включение на R1 проверки списка отзывов сертификатов |
Настройка через командную строку
/certificate/settings set crl-use=yes
Создание сертификатов
На этом шаге на R1 необходимо создать следующие сертификаты:
- сертификат удостоверяющего центра (корневой сертификат), расположенного на R1,
- сертификат OpenVPN-сервера, расположенного на R1,
- сертификат OpenVPN-клиента, расположенного на R2.
При создании сертификатов надо заполнить следующие поля:
- Поле Name является обязательным для всех сертификатов и позволяет идентифицировать сертификат в хранилище сертификатов RouterOS. Значение поля можно изменять и после подписания сертификата.
- Поля Country, State, Locality, Organization и Unit не являются обязательными для всех сертификатов, но хотя бы одно из них должно быть заполнено, иначе система не даст подписать сертификат.
- Поле Common Name (CN), не является обязательным, устарело и практически не используется по исходному назначению в современных реализациях TLS-клиента и TLS-сервера. Раньше в нем указывался или IP-адрес или доменное имя хоста. В настоящее время поле чаще всего используется в качестве понятного для человека идентификатора сертификата.
- Поле Subject Alt. Name (SAN) является обязательным для сертификата OpenVPN-сервера и OpenVPN-клиента и не является обязательным для сертификата удостоверяющего центра. Таких полей может быть более одного. Значение поля должно полностью совпадать с параметром подключения к серверу. Если клиент подключается по IP-адресу, то должен быть указан именно IP-адрес (тип Subject Alt. Name: IP). Если клиент подключается по доменному имени, то должно быть указано именно доменное имя (тип Subject Alt. Name: DNS). Либо можно указать оба этих параметра, в т.ч. каждое по несколько раз. Это позволит подключаться и по IP-адресу и по доменному имени на выбор. Если на стороне OpenVPN-сервера нет постоянного IP-адреса или доменного имени, то надо использовать тип Subject Alt. Name: Email, в котором необходимо указать произвольные данные в формате почтового адреса. Пример: server@r1.vpn.
- Чек-бокс trusted указывает на то является ли сертификат доверенным. Если сертификат удостоверяющего центра (УЦ, CA, Certificate Authority) не будет доверенным, то все сертификаты, выданные этим УЦ также будут считаться недоверенными и с ними не получится установить соединение.
- Поле Day Usage является обязательным для всех сертификатов. В поле указывается срок службы сертификата, который по умолчанию равен 365 дней. В статье указано значение 3650 дней.
- Чек-боксы в блоке Key Usage:
- для корневого сертификата нужно указать: key cert. sign и crl sign,
- для сертификата сервера нужно указать tls server,
- для клиента нужно указать параметр tls client.
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 4-1. Создание на R1 сертификата удостоверяющего центра |
| Рисунок 4-2. Создание на R1 сертификата удостоверяющего центра |
| Рисунок 5-1. Создание на R1 сертификата OpenVPN-сервера |
| Рисунок 5-2. Создание на R1 сертификата OpenVPN-сервера |
| Рисунок 6-1. Создание на R1 сертификата OpenVPN-клиента |
| Рисунок 6-2. Создание на R1 сертификата OpenVPN-клиента |
С помощью WinBox 4
| Рисунок 7-1. Создание на R1 сертификата удостоверяющего центра |
| Рисунок 7-2. Создание на R1 сертификата удостоверяющего центра |
| Рисунок 8-1. Создание на R1 сертификата OpenVPN-сервера |
| Рисунок 8-2. Создание на R1 сертификата OpenVPN-сервера |
| Рисунок 9-1. Создание на R1 сертификата OpenVPN-клиента |
| Рисунок 9-2. Создание на R1 сертификата OpenVPN-клиента |
Настройка через командную строку
/certificate add name=CA country=RU unit=R1 key-usage=key-cert-sign,crl-sign days-valid=3650 add name="TLS Server" country=RU unit=R1 key-usage=tls-server common-name=Server subject-alt-name=IP:100.64.111.1 days-valid=3650 add name=R2 country=RU unit=R2 key-usage=tls-client common-name=R2 subject-alt-name=IP:100.64.222.1 days-valid=3650
Подписание сертификатов
Далее необходимо подписать:
- Сертификат удостоверяющего центра. Это подписание обязательно должно быть первым. В поле CA CRL Host необходимо указать IP-адрес 127.0.0.1.
- Сертификат OpenVPN-сервера. В поле CA необходимо указать сертификат удостоверяющего центра.
- Сертификат OpenVPN-клиента. В поле CA необходимо указать сертификат удостоверяющего центра.
Через графический интерфейс
С помощью WinBox 3
| Рисунок 10. Подписание на R1 сертификата удостоверяющего центра |
| Рисунок 11. Подписание на R1 сертификата OpenVPN-сервера |
| Рисунок 12. Подписание на R1 сертификата OpenVPN-клиента |
С помощью WinBox 4
| Рисунок 13. Подписание на R1 сертификата удостоверяющего центра |
| Рисунок 14. Подписание на R1 сертификата OpenVPN-сервера |
| Рисунок 15. Подписание на R1 сертификата OpenVPN-клиента |
Через командную строку
/certificate sign CA ca-crl-host=127.0.0.1 sign "TLS Server" ca=CA sign R2 ca=CA
Экспорт сертификатов
Далее необходимо экспортировать:
- Сертификат УЦ в формате PEM без указания пароля (passphrase). В итоге в файловом хранилище появится файл с расширением .crt.
- Сертификат OpenVPN-клиента в формате PEM с указанием пароля (passphrase). В итоге в файловом хранилище появится файл с расширениями .crt (открытый ключ) и файл с расширением .key (закрытый ключ).
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 16. Экспорт на R1 открытого ключа удостоверяющего центра |
| Рисунок 17. Экспорт на R1 открытого и закрытого ключей OpenVPN-клиента |
С помощью WinBox 4
| Рисунок 18. Экспорт на R1 открытого ключа удостоверяющего центра |
| Рисунок 19. Экспорт на R1 открытого и закрытого ключей OpenVPN-клиента |
Настройка через командную строку
/certificate export-certificate CA type=pem export-certificate R2 export-passphrase=12345678 type=pem
Настройка OpenVPN-соединения
Настройка OpenVPN-сервера
Общее описание
OpenVPN-сервер расположен на маршрутизаторе R1. Для его настройки необходимо выполнить следующие шаги:
- cоздать OpenVPN‑сервер,
- создать учетную запись,
- сгенерировать клиентскую конфигурацию,
- создать статическую запись OpenVPN-сервера.
Аутентификация пользователя (проверка подлинности учетных данных клиента) выполняется силами протокола OpenVPN; в качестве метода требуется применять только MS‑CHAPv2 как наиболее безопасный.
Чтобы упростить работу с учетными записями в будущем, рекомендуется использовать названия, которые сразу будут указывать на конкретный офис (например, «office-samara» или «office-novosibirsk») вместо абстрактных «office-1», «office-2» и т. д. Это позволит избежать путаницы при большом количестве подобных записей.
OpenVPN собирает в единый файл сертификаты сервера и клиента, учетные данные пользователя и параметры подключения. В статье файл создается средствами RouterOS на маршрутизаторе R1 и затем передается клиентскому устройству. Имя файла генерируется автоматически.
Наличие статической записи не является обязательным, т.к. и без нее необходимый виртуальный интерфейс будет создаваться динамически при каждом новом подключении. Однако, динамический интерфейс исчезнет после разрыва соединения и, даже если после восстановления соединения заново появится с тем же самым именем, то уже не отобразится в правилах, в которых ранее мог быть использован. Таким образом это может нарушить работу правил Firewall, Mangle, NAT и других блоков. А при наличии статической записи OpenVPN-сервера такой проблемы не возникает.
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 20. Настройка на R1 OpenVPN-сервера |
| Рисунок 21. Создание на R1 учетной записи для OpenVPN-клиента |
| Рисунок 22. Генерация на R1 конфигурации для OpenVPN-клиента |
| Рисунок 23. Создание на R1 статического интерфейса OpenVPN-сервера |
С помощью WinBox 4
| Рисунок 24. Настройка на R1 OpenVPN-сервера |
| Рисунок 25. Создание на R1 учетной записи для OpenVPN-клиента |
| Рисунок 26. Генерация на R1 конфигурации для OpenVPN-клиента |
| Рисунок 27. Создание на R1 статического интерфейса OpenVPN-сервера |
Настройка через командную строку
/interface/OpenVPN-server/server add certificate="TLS Server" disabled=no name="OpenVPN Server for office-2" netmask=32 protocol=udp require-client-certificate=yes user-auth-method=mschap2 /ppp/secret add local-address=172.16.1.1 name=office-2 profile=default-encryption remote-address=172.16.1.2 password=office-2_password service=ovpn /interface/ovpn-server add name="OpenVPN Server for office-2" user=office-2 /interface/ovpn-server/server export-client-configuration ca-certificate=cert_export_CA.crt client-certificate=cert_export_R2.crt client-cert-key=cert_export_R2.key server-address=100.64.111.1 server="OpenVPN Server for office-2"
Настройка OpenVPN-клиента
Общее описание
OpenVPN-клиент расположен на маршрутизаторе R2. Для его настройки необходимо выполнить три действия:
- импортировать клиентскую конфигурацию OpenVPN.
- включить интерфейс OpenVPN-клиента.
- переименовать интерфейс OpenVPN-клиента.
Для импорта конфигурации необходимо загрузить конфигурацию в файловое хранилище устройства. Переименовывать интерфейс не обязательно, но это облегчает чтение конфигурации.
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 28-1. Настройка на R2 OpenVPN-клиента |
| Рисунок 28-2. Настройка на R2 OpenVPN-клиента |
С помощью WinBox 4
| Рисунок 29-1. Настройка на R2 OpenVPN-клиента |
| Рисунок 29-2. Настройка на R2 OpenVPN-клиента |
Настройка через командную строку
/interface/ovpn-client import-ovpn-configuration ovpn-user=office-2 ovpn-password=office-2_password key-passphrase=12345678 file-name=client1751035434.ovpn /interface/ovpn-client set numbers=ovpn-import1751035434 name="OpenVPN office-1 connection" disabled=no
Проверка OpenVPN-соединения
Общее описание
И на OpenVPN-сервере, и на OpenVPN-клиенте при успешном установлении соединения рядом с интерфейсом должен появиться флаг «R», что значит running, т. е. «запущено».
Проверка на OpenVPN-сервере
Проверка через графический интерфейс
С помощью WinBox 3
| Рисунок 30. Проверка работоспособности туннеля на R1 (на стороне OpenVPN-сервера) |
С помощью WinBox 4
| Рисунок 31. Проверка работоспособности туннеля на R1 (на стороне OpenVPN-сервера) |
Проверка через командную строку
В результате выполнения команды
/interface/ovpn-server print
должен появиться следующий результат:
[admin@R1] > /interface/ovpn-server print Flags: R - RUNNING Columns: NAME, USER, MTU, CLIENT-ADDRESS, UPTIME # NAME USER MTU CLIENT-ADDRESS UPTIME 0 R OpenVPN Server for office-2 office-2 1500 100.64.222.1 4m30s
Проверка на OpenVPN-клиенте
Проверка через графический интерфейс
С помощью WinBox 3
| Рисунок 32. Проверка работоспособности туннеля на R2 (на стороне OpenVPN-клиента) |
С помощью WinBox 4
| Рисунок 33. Проверка работоспособности туннеля на R2 (на стороне OpenVPN-клиента) |
Проверка через командную строку
В результате выполнения команды
/interface/ovpn-client print
должен появиться следующий результат:
[admin@R2] > /interface/ovpn-client print
Flags: X - disabled; R - running; H - hw-crypto; Ta - tls-auth;
Tc - tls-crypt
0 R name="OpenVPN office-1 connection" mac-address=FE:1B:96:3C:67:67
max-mtu=1500 connect-to=100.64.111.1 port=1194 mode=ip
protocol=udp user="office-2" password="office-2_password"
profile=default certificate=cert_ovpn-import1751035434
verify-server-certificate=yes tls-version=any auth=sha512
cipher=aes128-cbc use-peer-dns=yes add-default-route=no
route-nopull=no disconnect-notify=yes
Потенциальные проблемы при установлении соединения
1. Некорректно указанный IP-адрес OpenVPN-сервера на OpenVPN-клиенте.
2. Несоответствие способа подключения настройкам сертификата (в сертификате прописано только доменное имя, а подключение выполняется по IP-адресу и наоборот).
3. Несовпадающие учетные данные OpenVPN. Для OpenVPN нужны имя пользователя и пароль.
4. Отсутствующий, недоверенный, истекший или отозванный сертификат сервера или клиента.
5. Время на маршрутизаторе находится вне срока действия сертификата. Рекомендуется использовать синхронизацию времени с помощью NTP и на сервере, и на клиенте.
6. Блокировка OpenVPN-соединения брандмауэром маршрутизатора MikroTik (IP Firewall Filter). Для того чтобы избежать этой проблемы, необходимо разрешить UDP-порт 1194. Чтобы быстро понять, блокирует ли соединение именно брандмауэр MikroTik, можно ненадолго отключить все правила брандмауэра на обоих маршрутизаторах. Если после отключения правил соединение устанавливается, следует добавить соответствующие разрешающие правила. Кроме того, необходимо помнить, что правила брандмауэра должны рассматриваться как единое целое и их порядок имеет большое значение.
Настройка маршрутизации
Для передачи данных между двумя сетями недостаточно наличия VPN-соединения. Чтобы она стала возможной, на каждом устройстве нужно добавить маршрут к внутренней сети другого офиса через IP-адрес VPN-интерфейса противоположного маршрутизатора. Для этого необходимо:
- на маршрутизаторе R1 создать маршрут до внутренней сети офиса 2 (10.22.22.0/24) через VPN-интерфейс маршрутизатора R2 (172.16.1.2);
- на маршрутизаторе R2 создать маршрут до внутренней сети офиса 1 (10.11.11.0/24) через VPN-интерфейс маршрутизатора R1 (172.16.1.1).
Для такой настройки понадобятся два параметра:
- Dst. Address (dst-address), в котором нужно указать IP-адрес удаленной сети;
- Gateway (gateway), в котором нужно указать IP-адрес VPN-интерфейса противоположного маршрутизатора.
Маршрут к внутренней сети другого офиса в некоторых случаях можно настраивать не через IP-адрес VPN-интерфейса противоположной стороны, а через интерфейс, из которого будут исходить пакеты. Но такую возможность следует использовать только в некоторых случаях, и ее надо использовать с пониманием, зачем это делается.
Настройка маршрутизации на маршрутизаторе R1 (офис 1)
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 34. Настройка маршрутизации на R1 |
С помощью WinBox 4
| Рисунок 35. Настройка маршрутизации на R1 |
Настройка через командную строку
/ip/route add dst-address=10.22.22.0/24 gateway=172.16.1.2
Настройка маршрутизации на маршрутизаторе R2 (офис 2)
Настройка через графический интерфейс
С помощью WinBox 3
| Рисунок 36. Настройка маршрутизации на R2 |
С помощью WinBox 4
| Рисунок 37. Настройка маршрутизации на R2 |
Настройка через командную строку
/ip/route add dst-address=10.11.11.0/24 gateway=172.16.1.1
Проверка маршрутизации
Проверка в головном офисе и в филиале
Если маршрутизация была правильно настроена, то данные между двумя сетями должны начать передаваться. Чтобы проверить корректность настройки, можно выполнить команду ping с компьютера в одной сети до компьютера в другой сети. Но здесь возможны нюансы. Некоторые антивирусы блокируют ICMP-запросы, и поэтому ping'и могут не проходить. Более того, некоторые антивирусы, например антивирус Касперского, умеют блокировать ICMP-запросы из других сетей и при этом не блокировать такие же запросы из своей сети. Поэтому если ping'и с компьютера на компьютер не проходят, то рекомендуется проверить прохождение ICMP-запросов с компьютера в локальной сети до внутреннего интерфейса маршрутизатора в другой сети. Для этого необходимо:
- при проверке из офиса 1 запустить ping до IP-адреса 10.22.22.1;
- при проверке из офиса 2 запустить ping до IP-адреса 10.11.11.1.
Если такие ping'и проходят, то с вероятностью 100 % VPN-соединение и маршрутизация с обеих сторон настроены корректно и с вероятностью 99 % проблему нужно искать не на маршрутизаторах. При этом существует 1-процентная вероятность того, что причиной невозможности передачи данных являются какие-то другие неверные настройки.
Потенциальные проблемы при маршрутизации
Если маршрутизация между двумя маршрутизаторами MikroTik не выполняется, необходимо проверить следующее:
- Настройки маршрутизации на обоих маршрутизаторах.
- Настройки брандмауэра на компьютере, который пингуется. Для надежности можно временно отключить встроенный брандмауэр и антивирус, чтобы исключить их влияние на ICMP-запросы.
Распространенной ошибкой является использование технологии NAT для данных, маршрутизируемых между удаленными сетями. Это действительно может потребоваться, но только в некоторых частных случаях. Например, если нет возможности внести изменения в таблицу маршрутизации на одном из маршрутизаторов. Если же такая возможность есть, но при этом данные начинают маршрутизироваться только при использовании NAT, то с вероятностью 99 % имеется ошибка в настройках маршрутизации.
Причины низкой скорости
Если скорость передачи данных между офисами значительно ниже скорости самого медленного интернет-канала, то необходимо проверить следующее:
- Хватает ли ресурсов процессора.
- Нет ли проблем с MTU. Проблема чаще всего наблюдается при использовании множества вложенных туннелей. Например, если OpenVPN-туннель передается через PPPoE-туннель от интернет-провайдера.
Полезные ссылки
Онлайн-курсы по MikroTik
- Администрирование сетевых устройств MikroTik
- Файрвол и приоритизация трафика на MikroTik
- Маршрутизация на MikroTik
- Коммутация на MikroTik
Онлайн-курсы по сетям
- Математика и физика в сетевых технологиях
- Архитектура современных компьютерных сетей
- Устройство, проектирование и диагностика беспроводных сетей IEEE 802.11 (Wi-Fi)
Telegram-каналы
Telegram-чат
Прочее












































