Поднимаем OpenVPN сервер на Mikrotik

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

Во-первых: полноценного ethernet тунеля OpenVPN микротик сделать не в состоянии, потому что остуствует напрочь возможность выдавать IP адреса OVPN клиентам по DHCP, все адреса выдаёт только сам микротик, как его не крути и с чем вокруг него не прыгай;
Во-вторых: не поддерживается сжатие заголовков;
В-третьих: работает только по tcp, в то время как предпочитаемый для OpenVPN - udp.

Всё это вместе взятое немного раздражает, но с этим, как я считаю, можно смирится, потому что такая реализация имеет ряд плюсов.

Во-первых: безопасность, опенвпн с реализацией авторизации по сертификату очень надёжный канал.
Во-вторых: в отличии от ipsec у нас практически нет никаких проблем с nat.
В-третьих: возможность настроить клиента для подключения по безопасному каналу практически с любого устройства.
ну и относительная простота настройки, в микротике опенвпн поднимается практически в два щелчка, если сравнивать настройку через конфиг в других железках или ОС.

Итак, настройку я условно разделю на две части, это настройка сервера (на железке) и настройка клиента (windows).

Как настроить клиента для CentOS (Linux) читаем в этой статейке.

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

Пожалуй подготовительный этап следует начать с генерации сертификатов, поскольку passphrase авторизация считается менее защищённой из-за MITM уязвимости, а мы же не хотим что бы кто-то кроме нас самих мог получить доступ к нашей корпоративной сети. Подробно процесс по созданию сертификатов описан здесь. Добавлю лишь что для самого микротика надо генерировать сертификат сервера, а для клиента сертификат клиента.

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

открывем WinBox на микротике, переходим в раздел Files и жмём на кнопку Paste

Mikrotik paste files

Получается примерно такая картинка

mikrotik files

 

После этого сертификаты необходимо импортировать, для этого идём в раздел System - Certificates и жмём кнопку Import, я первым импортировал публичный сертификат CA

mikrotik import certificate

дальше импортируем публичный сертификат микротика

mikrotik import certificate

и закрытый ключ для него

mikrotik import certificate

должна получится примерно такая картинка, обращаем внимание что напротив сертификата микротика должно стоять KT

mikrotik certificates

 

следующим шагом создаём пул IP адресов для наших OVPN клиентов IP - Pool, жмём кнопку +, я добавил диапазон 172.21.108.2-172.21.108.14, и назвал пул ovpn

mikrotik ip pool

следующим этапом создаём PPP профиль, соответственно заходим в раздел PPP вкладка Profiles добавляем профиль кнопкой +, вводим имя, локальный адрес микротика с которым будут работы нашим клиенты, должен лежать в подсети с созданным ранее пулом адресов и указываем пул, остальное оставляем без изменений

mikrotik openvpn ppp profile

после этого настраиваем сам OpenVPN сервер, делается это в разделе PPP вкладка Interface, кнопка OVPN Server, ставим галку Enabled, mode выставляем ethernet, выбираем созданный ранее профиль, а также ставим галку Require Client Certificate и выбираем сертификат микротика, маску по желанию можно поменять.

mikrotik ovpn server

Осталось совсем немного, нужно создать пользователя, переходим в раздел PPP - Secrets, вводим имя пользователя, пароль, указываем сервис и профиль.

mikrotik ovpn secret

Поскольку мы используем сертификаты, надо что бы время на клиенте и на сервере совпадало, поэтому настраиваем sntp клиента, что бы микротик мог синхронизировать время, делается это в разделе System - SNTP Client. Я указал локальный SNTP сервер, вы можете использовать любой публичный сервер в интернете (например ntp3.stratum2.ru и 0.europe.pool.ntp.org) или указать свой внутренний.

mikrotik sntp client

 Осталось настроить разрешающее правило фаервола, переходим в раздел IP - Firewall вкладка Filter Rules.

mikrotik filter rule

Здесь надо указать In. Interface - интерфейс по которому к Вам приходит интернет, остальное как на скриншоте.

mikrotik filter rule

Созданное правило должно находится выше запрещающих правил.

На этом настройка сервера завершена, переходим к настройке клиента.

Настройка клиента OpenVPN Windows для микротика

Как выяснилось - клиент для вин версии 2.3.4 при подключении к микротику просто зависает, не знаю с чем это связано и как это пофиксить, в связи с этим на текущий момент рекомендую использовать версию клиента 2.3.2 сборки I006. Эта версия по описанию с сайта содержит в себе версию OpenSSL 1.0.1i в которой уже есть заплатка от Heartbleed.

О том где загрузить и как установить OpenVPN клиент описано в статье по созданию сертификатов.

После установки нам необходимо будет перейти в каталог с установленным OpenVPN и добавить файл client.ovpn в каталог config следующего содержания

proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123
dev tap

nobind
persist-key

tls-client
#указываем имена публичного CA сертификата
ca ca.crt
# публичного сертификата клиента
cert client.crt
# и его закрытый ключ
key  client.key
ping 10
verb 3
ns-cert-type server
cipher AES-256-CBC
auth SHA1
pull
# эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике
auth-user-pass auth.cfg
# в этой части мы задаём настройки сетей которые находятся за микротиком, # в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть, # а 172.21.108.1 это адрес микротика который мы указывали в PPP профиле
route-method exe
route-delay 2
route 192.168.1.0 255.255.255.0 172.21.108.1

 Так же копируем в эту папку публичные сертификаты CA и клиента, и закрытый ключ клиента и создаём файл auth.cfg вида

user
123

где user - имя пользователя, 123 - пароль, которые мы задавали в PPP-Secrets на микротике

На этом настройка клиента завершена, запускаем OpenVPN GUI и он начинает подключение

Внимание! В Win7 с включённым UAC, а также на Win8 и Win8.1 не зависимо от того включён или выключен UAC запускаем OpenVPN GUI только в режиме Запускать от имени администратора! В противном случаем у Вас не добавятся маршруты или и вовсе не произойдёт подключения.

OpenVPN GUI Windows

при успешном подключении в трее появится сообщение

OpenVPN Windows connected

Как и прежде свои вопросы и пожелания вы можете оставлять в комментариях ниже.

Zo2 Framework Settings

Select one of sample color schemes

Google Font

Menu Font
Body Font
Heading Font

Body

Background Color
Text Color
Link Color
Background Image

Header Wrapper

Background Color
Modules Title
Text Color
Link Color
Background Image
Background Color
Modules Title
Text Color
Link Color
Background Image
 
Top of Page