1. Главная страница » Компьютеры » Openvpn сервер на mikrotik

Openvpn сервер на mikrotik

Автор: | 16.12.2019

В предыдущей статье мы писали о настройке VPN через MikroTik с помощью протоколов PPPoE и PPTP. Это самые популярные способы туннелирования. Сегодня мы остановимся на OpenVPN — также распространенном решении VPN-туннелей на роутерах Микротик.

Особенности OpenVPN на MikroTik

OpenVPN имеет много преимуществ, благодаря которым он по-прежнему один из самых популярных протоколов для поднятия VPN туннелей:

  • простота настройки;
  • надежность и защищенность благодаря сертификатам;
  • универсальность — удаленный доступ можно организовать с устройств с любой операционной системой;
  • отсутствие проблем с NAT.

Однако о тметим, что возможности OpenVPN на MikroTik урезаны:

  • нет сжатия LZO;
  • нет UDP, хотя именно он является предпочтительным для OpenVPN как простой и легковесный транспорт;
  • скорость передачи данных не слишком высока;
  • нет возможности присваивать адреса через другой DHCP, их выдает только сам Mikrotik.
  • генерация сертификатов;
  • настройка OpenVPN сервера на MikroTik;
  • настройка клиента.

Генерация сертификатов для OpenVPN

Сертификаты для сервера и клиента можно создать средствами самого OpenVPN (Easy-RSA), а можно с помощью ресурса CAcert.org. Рассмотрим создание самоподписанных сертификатов посредством Easy-RSA.

Скачиваем и устанавливаем OpenVPN .

Редактируем параметры easy-rsa OpenVPN.

После установки идем в папку с программой, в каталог easy-rsa

и открываем с помощью блокнота файл vars.bat.sample, редактируем его.

Если мы создаем дубликат папки easy-rsa (а в этом есть смысл) и работаем в нем, то необходимо отредактировать строку, прописав в ней новый путь к папке:

Значение строки set KEY_SIZE=1024 можно поменять на 2048 (как сказано в комментариях в файле — если вы параноик), но учтите, что производительность уменьшится.

Далее редактируем следующие строки, проставляя в них актуальные для себя значения (пустыми параметры оставлять нельзя):

set KEY_PROVINCE=Harkiv
set KEY_CITY=Harkiv
set KEY_ORG=OpenVPN
set KEY_EMAIL=admin@lantorg.com
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=lantorg
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

Последние два параметра можно не менять.

После чего сохраняем файл под именем vars.bat.

Если при сохранении vars.bat в этом же каталоге система выдает ошибку:

то сохраните файл вначале на рабочем столе, а потом перенесите в этот каталог.

Выполняем генерацию сертификатов для OpenVPN под MikroTik.

Работаем в командной строке Windows (cmd), запустив ее от имени администратора.

Переходим в нужный каталог: cd "C:Program FilesOpenVPNeasy-rsa"

Набираем команду vars и жмем энтер.

Набираем команду clean-all и жмем энтер.

Если мы видим надпись, как на изображении — "Скопировано файлов — 1.", значит, все сделано правильно.

Набираем команду build-ca. Программа начинает генерацию публичного сертификата OpenVPN и запрашивает у нас значения параметров. Если на вопрос в командной строке мы просто жмем энтер, то программа подставляет значения по умолчанию, которые мы вписали в файл vars.bat. Останавливаемся, когда снова появляется строка C:Program FilesOpenVPNeasy-rsa.

Даем команду на генерацию сертификата сервера OpenVPN для MikroTik: build-key-server имя_сертификата. В нашем случае пишем

build-key-server server, на вопрос "Sign the certificate?" отвечаем y, точно также на вопрос "1 out of 1 certificate requests certified, commit?", на остальные просто жмем энтер.

Даем команду на генерацию сертификата клиента — build-key client. Имя сертификата (Common Name) должно быть уникальным и не совпадать с другими сертификатами. Поэтому на этот вопрос отвечаем — client. Здесь также в конце появятся два вопроса, как в предыдущем пункте, и мы тоже отвечаем на них — y.

Все, теперь в папке C:Program FilesOpenVPNeasy-rsakeys лежат все созданные ключи и сертификаты OpenVPN.

Установка сертификатов OpenVPN и настройка сервера на MikroTik

Из созданных нами сертификатов и ключей нас интересуют 3 файла:

Импортируем сертификаты OpenVPN в ОС MikroTik .

  • имя профиля,
  • Local Address — адрес роутера Микротик, к которому будут подключаться клиенты. Он должен лежать в одой подсети с Remote Address
  • Remote Address- здесь пишем либо один IP-адрес клиента, либо имя ранее созданного пула адресов.

Остальные настройки не трогаем.

Настраиваем сервер OpenVPN на роутере MikroTik.

Идем в меню PPP- Interface — OVPN Server.

  • Активируем его, поставив галочку в пункте Enabled.
  • В поле mode оставляем IP (IP-туннелирование по умолчанию) или выставляем ethernet (режим сетевого моста), это L3 и L2 соответственно. Чаще всего используется IP.
  • Default Profile — выбираем профиль, который мы создали ранее.
  • Certificate — сертификат сервера.
  • require-client-certificate — если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет — то не проверяет, и настройка клиента при этом упрощается.

Создаем и настраиваем пользователя.

Идем: PPP — Secrets и добавляем пользователя. Тут все просто: имя, пароль, сервис и профиль.

Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню System — Clock). Далее идем в меню System — SNTP Client и прописываем адрес NTP сервера (на скриншоте указан локальный, но можно взять любой, к примеру 85.21.78.91).

Настраиваем разрешающее правило фаерволла .

Идем IP — Firewall — Filter Rules и разрешаем трафик на порт OpenVPN:

  • В поле Chain ставим input.
  • Protocol — 6(tcp).
  • Dst. Port — 1194.
  • In. Interface — прописываем название интерфейса, на который идет входящий трафик.

Активируем правило на вкладке Action:

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

Настройка клиента OpenVPN

Если мы не используем клиентские сертификаты (в настройках сервера не отмечали галочкой пункт require-client-certificate), то настроить клиент OpenVPN будет быстрее и проще. Нам не нужно будет копировать сертификаты для клиента, только создать в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописать:

  • адрес OpenVPN сервера (поле Connect To),
  • логин и пароль пользователя (поля User и Password),
  • порт соединения,
  • тип аутентификации и шифрования (поля Auth и Cipher).

Настройка второго роутера Микротик как клиента OpenVPN .

Так же, как и при настройке сервера, копируем из папки C:Program FilesOpenVPNeasy-rsakeys и вставляем в раздел Files файлы сертификатов и ключей OpenVPN. Только теперь это будут:

После этого поочередно импортируем их, используя меню System – Certificates — выбор сертификата — кнопка Import.

После успешного импорта в строке сертификата должны появиться буквы KT

Далее настраиваем соединение, практически так же, как и в случае без сертификатов. С оздаем в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописываем:

  • адрес OpenVPN сервера (поле Connect To),
  • логин и пароль пользователя (поля User и Password),
  • порт соединения,
  • наименование сертификата,
  • тип аутентификации и шифрования (поля Auth и Cipher).
Читайте также:  Call of duty remastered настройки графики

Все, осталось проверить, поднялось ли соединение.

Настройка клиента OpenVPN в Windows.


Копируем ранее созданные нами файлы ca.crt, client.crt, client.key из папки C:Program FilesOpenVPNeasy-rsakeys в каталог C:Program FilesOpenVPNconfig.

Создаем здесь же обычный текстовый файл, который сохраняем как auth.cfg (обратите внимание, меняем и расширение тоже).

Открываем файл auth.cfg для редактирования в блокноте и вписываем в него 2 строки: первую -логин пользователя, вторую — пароль, которые мы задали на сервере. Сохраняем файл.

Создаем еще один текстовый файл, который сохраняем как client.ovpn (включая смену расширения).

Файл client.ovpn редактируем следующим образом:

Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.

Для работы нам понадобится Белый IP адрес (он и будет адресом сервера в наших настройках) для доступа к серверу из интернета и сертификаты безопасности.

Краткий план данной статьи:

Создание сертификатов и ключей OpenVPN

1) Скачаем программу OpenVPN с официального сайта.

2) Устанавливаем, выбрав все галочки.

EasyRSA Certificate Management Scripts нам обязательно понадобится для генерации ключей и сертификатов.

3) Указываем путь. В дальнейшем он нам понадобится. В нашем случае используем стандартный C:Program FilesOpenVPN

4) После установки заходим в C:Program filesOpenVPNeasy-rsa

Открываем vars.bat (если его нет, то vars.bat.sample) блокнотом или NotePad++ и редактируем его.

set KEY_COUNTRY=RU
set KEY_PROVINCE=MoscowRegion
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@mail.com
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

В строках set KEY_CN и set KEY_NAME указываем server
Последние 2 строки — параметры по умолчанию. Остальное можете редактировать под себя.

Сохраняем файл как vars.bat на рабочий стол, а затем копируем в папку C:Program filesOpenVPNeasy-rsa
Чаще всего сохранить напрямую в исходную папку не получится — не хватает прав.

5) Отредактируем файл openssl-1.0.0.cnf
Так же открываем с помощью блокнота или notepad++

Нас интересует строка:
default_days = 3650 # how long to certify for
Она отвечает за время жизни сертификата. Если значение отличается — то указываем 3650 (10 лет).
Сохраняем.

6) Запускаем командную строку от имени администратора:
Пуск — Все программы — Стандартные
Правой кнопкой мыши на «Командная строка» и в меню — Запустить от имени администратора.
Командную строку не закрываем до конца процесса генерации сертификатов.

7) Поочередно выполняем следующие три команды:
cd C:Program filesOpenVPNeasy-rsa
vars
clean-all

В итоге мы должны увидеть сообщение «Скопировано файлов: 1» дважды.

В папке C:Program filesOpenVPNeasy-rsa появится папка keys с двумя файлами index.txt и serial.

8) Генерируем ключ Диффи Хельмана — команда build-dh
Генерация займёт некоторое время. Дождитесь окончания.

9) Генерируем ключ центра сертификации (CA) — build-ca

Нажимаем Enter, пока не закончатся вопросы.
Вы увидите в командной строке путь C:Program filesOpenVPNeasy-rsa

Нет смысла менять заданные значения. Вы ранее прописали эти параметры в файле vars.bat

10) Генерируем сертификат сервера — команда build-key-server server
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat), пока не дойдём до вопросов.
Sign the certificate? (Создание сертификата на 3650 дней)
1 out of 1 certificate requests certified, commit? (Запись сертификата в базу)
На вопросы отвечаем нажатием Y

11) Генерируем сертификат клиента build-key client
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat), пока не дойдём до вопросов Common Name и Name.
На эти вопросы отвечаем client — это название создаваемого сертификата.

На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем нажатием Y

12) Генерация сертификатов окончена.
В папке C:Program filesOpenVPNeasy-rsakeys можно увидеть следующие файлы:

Сертификаты для сервера и клиентов готовы.

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

Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 3 файла: ca.crt, server.crt, server.key
Для этого в меню нажмём Files и перетащим их из папки C:Program filesOpenVPNeasy-rsakeys

13) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
ca.crt
server.crt
server.key

После импорта появятся две записи:

14) Создадим пул адресов для VPN клиентов:

IP — Pool — add (+)
Введём название openvpn-pool
Диапазон 172.30.0.2-172.30.0.253

15) Создадим PPP профиль.

PPP — Profiles — add (+)
Введём название openvpn
Локальный адрес 172.30.0.1
Созданный Пул openvpn-pool
Остальные настройки оставляем по умолчанию.
Нажимаем ОК.

16) Создадим непосредственно сам OpenVPN сервер
PPP — Interface — OVPN Server
Включаем Enable
Указываем порт 1194
Выбираем наш профиль openvpn
Поставим галочку Require Client Certificate
Выберем наш сертификат server.crt

17) Создадим пользователя для подключения.
PPP — Secrets — add (+)
Введём имя пользователя и пароль ovpn_user1
Выбираем Сервис ovpn и профиль openvpn

Создадим 2 пользователя:

ovpn_user1 для клиента на компьютере

ovpn_mikrotik1 для клиента на Mikrotik

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

18) Настроим фаервол
IP — Firewall — add(+)
Во вкладке General указываем:
Chain — input
Protocol — tcp
Порт 1194
Интерфейс — ether1 (Если интернет идёт через него)
Вкладка Action:
Action — accept
Затем ОК

Сервер настроен, теперь приступим к настройке VPN клиентов.

Настройка VPN клиента на компьютере под управлением Windows

19) Копируем в папку C:Program filesOpenVPNconfig

из C:Program filesOpenVPNeasy-rsakeys следующие файлы
ca.crt, client.crt, client.key.

из C:Program filesOpenVPNsimple-config
client.ovpn

Создадим текстовый файл pass, где укажем логин и пароль от созданного VPN клиента на сервере.
В нашем случае это ovpn_user1

20) Откроем файл client.ovpn с помощью блокнота или notepad++
Изменяем следующие строки:
#Протокол
proto tcp
#Адрес и порт сервера
remote ваш.ip.адрес.сервера 1194

#Проверяем правильность названия ключей
ca ca.crt
cert client.crt
key client.key

И в самом конце добавим строчку
auth-user-pass «C:\Program files\OpenVPN\config\pass.txt»
В итоге у нас получатся следующие настройки в этом файле:
client
dev tun
proto tcp
remote адрес_сервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass «c:\Program Files\OpenVPN\config\pass.txt»

Остальные настройки закомментированы решеткой «#» или точкой с запятой «;»

21) Сохраняем файл. Если сохранить в папку не получается — сохраняем на рабочий стол, а затем копируем с заменой.

Запускаем OpenVPN и подключаемся.

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

Настройка VPN клиента на Mikrotik

Имея настроенный OpenVPN сервер, можно настроить доступ на Mikrotik даже там, где нет белого IP адреса.

22) Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 2 файла: client.crt, client.key

Читайте также:  Embarcadero rad studio c builder

Для этого в меню нажмём Files и перетащим их из папки C:Program filesOpenVPNeasy-rsakeys


23) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
client.crt
client.key

24) Настроим параметры сервера:
PPP — add(+) — OVPN client


Во вкладке General указываем имя
Name — openVPN1 (любое, на ваше усмотрение)
Вкладка Dial Out:
Connect To — Адрес сервера(Внешний IP адрес главного роутера Mikrotik)
Port 1194
Указываем пользователя и пароль, который мы создали на VPN сервере
В нашем случае это пользователь ovpn_mikrotik1
Сертификат Client.crt

Нажимаем ОК

25) В терминале набираем /interface ovpn-client monitor openVPN1
Должно появиться сообщение со статусом connected

Теперь к этому mikrotik можно подключиться через VPN по адресу, который он получил от VPN сервера


Посмотреть адрес можно:
В Mikrotik-клиенте в IP-Adresses строка с нашим интерфейсом openVPN1

В Mikrotik-сервере PPP-Active Connections

В данной статье мы создадим защищенный туннельный интерфейс на базе OpenVPN.
Почему OpenVPN спросите Вы, ведь есть же PPTP, L2TP.
Отвечаю, я тестировал соединения на базе этих двух протоколов. К сожалению они не показали достаточно стабильного соединения между собой. Происходили частые падения туннельных интерфейсов.
Возможно это было связано с какой-то прошивкой. Но это не столь важно. Важно то, что настроив один раз туннель на OpenVPN, я забыл про разрывы связи совсем и до сих пор все работает отлично.

Прежде чем настраивать OpenVPN сервер и создавать туннель, разберемся с тем, как он работает на Mikrotik. Т.к. на RouterOS v6 есть ограничения.
Обратимся к официальному источнику – Wiki Mikrotik(Eng) и Manual Interface(Eng).
В OpenVPN используются два типа интерфейса:
tun – в RoS он определяется, как ip, это туннельный уровень.
tap – в RoS он определяется, как ethernet, это канальный уровень.
Только начиная с прошивки 6.39.x была добавлена топология subnet для tun режима.
Выдержка из Changelog:
*) ovpn – added support for “push-continuation”;
*) ovpn – added support for topology subnet for IP mode;
*) ovpn – fixed duplicate default gateway presence when receiving extra routes;
*) ovpn – improved performance when receiving too many options;

Не поддерживается в 6 версии операционной системы:
UDP протокол, т.е. необходимо использовать исключительно TCP!
LZO сжатие
TLS аутентификация
Аутентификация без имени пользователя и пароля
Если Вы будете читать эту статью, и уже будет доступна 7 версия RouterOS, то в ней, все это, уже должно работать (но это не точно)!

К сожалению сложно сказать, почему Mikrotik пришли именно к такому решению и именно таким ограничениям, но мы имеем то, что имеем.
По ТСР, сервер в типичном случае будет получать ТСР-сегменты OpenVPN, которые содержат другие ТСР-сегменты от клиента. В результате в цепи получается двойная проверка на целостность информации, что совершенно не имеет смысла, т.к. надежность не повышается, а скорости соединения и пинга снижаются.
UDP конечно предпочтительней, но его нет…

OpenVPN предлагает пользователю несколько видов аутентификации.
Предустановленный ключ — самый простой метод.
Сертификатная аутентификация — наиболее гибкий в настройках метод.
С помощью логина и пароля — может использоваться без создания клиентского сертификата (серверный сертификат всё равно нужен).

Мы будем использовать Сертификатную аутентификацию для обеспечения хорошей защищенности нашего соединения.

Для создания туннеля, нам понадобятся сертификаты и ключи к ним. Данные сертификаты можно создать, как на Windows, Linux, так и на самом роутере.
Я сторонник создания сертификатов на своем ПК, чтобы они были у меня в файлах и я мог их достать в случаях “А вдруг что”.

1. Создание сертификатов для OpenVPN соединения
Я буду создавать сертификаты на операционной системе Windows, для всех остальных ОС принцип похож. Можно загуглить.
Для начала необходимо скачать и установить дистрибутив OpenVPN: Страница Загрузок OpenVPN
Запускаем установщик openvpn-install
Если Вы не собираетесь использовать все возможности туннелирования на своей Windows машине и Вам нужно исключительно создать сертификаты, то можно снять галки с пунктов TAP Virtual Ethernet Adapter и OpenVPN GUI.
Выбираем нужные пункты После скачивания и установки в указанную Вами папку в ней будет список файлов. у меня это папка C:Program FilesOpenVPN
Нам необходимо перейти в папку easy-rsa
Нужно открыть консоль Windows (для Windows Vista/7/8/8.1/10 нужно запускать от Администратора)
Переходим в папку easy-rsa по пути установки командой cd
Например:
cd C:Program FilesOpenVPNeasy-rsa

Запускаем файл init-config.bat
C:Program FilesOpenVPNeasy-rsa>init-config.bat
C:Program FilesOpenVPNeasy-rsa>copy vars.bat.sample vars.bat
Скопировано файлов: 1.

В папке появится файл vars.bat, открываем его текстовым редактором, нас интересуют строчки в самом конце, их нужно заполнить
Я подставил свои параметры, у Вас данные параметры будут другие:
set KEY_COUNTRY=RU
set KEY_PROVINCE=Moscow
set KEY_CITY=Moscow
set KEY_ORG=HOME
set KEY_EMAIL=my@email.ru
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=HOME
set PKCS11_MODULE_PATH=server
set PKCS11_PIN=12345
Там где написано server, не трогаем. Сохраняем файл.

Далее открываем редактором файл openssl-1.0.0.cnf
Находим строчку default_days 365 и заменяем число 365 на 3650 или свое. Тем самым мы увеличим время жизни наших сертификатов на 10 лет.
Сохраняем и закрываем.

Дополнительно:
Если Вы тот еще параноик, то Вы можете отредактировать еще один параметр:
set KEY_SIZE=1024
Для пущей сложности данный параметр можно изменить на 2048 и на 4096(для современных версий OpenVPN)
Но будьте готовы к долгому ожиданию(на слабых ПК очень долгому), пока сгенерируется ключ.

Пишем в консоль команды
vars
clean-all

В ответ должно прийти
Скопировано файлов: 1.
Скопировано файлов: 1.

Создаем ключ Диффи-Хеллмана
build-dh
Вывод из консоли:
C:Program FilesOpenVPNeasy-rsa>build-dh
WARNING: can’t open config file: /etc/ssl/openssl.cnf
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
. +.

Известные проблемы:
При подаче команды clean-all или build-dh в самом начале генерации сертификатов, может проявится одна ошибка, выглядит она так:
C:UsersTEST>build-dh
"openssl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Бороться с этим необходимо следующим образом. Нужно указать путь до файла openssl.exe в файле vars.bat в ручную.
А точнее стираем слово rem в строке (rem – это комментирование строки):
rem set "PATH=%PATH%;C:Program FilesOpenVPNin"
Получаем:
set "PATH=%PATH%;C:Program FilesOpenVPNin"
Сохраняем файл и производим весь процесс сначала
vars
clean-all
build….. и т.д

Создаем основной сертификат
build-ca

При генерации основного сертификата в консоли будут отображаться вопросы. Просто нажимаем Enter, т.к. все эти параметры мы ввели в файле vars.bat
Нажимаем Enter до тех пор, пока не отобразиться строка приглашения
C:Program FilesOpenVPNeasy-rsa

Далее создаем сертификат сервера и его ключ:
build-key-server server

На вопросы так же нажимаем Enter, но не торопимся, в самом конце будет задано два вопроса
Sign the certificate?
1 out of 1 certificate requests certified, commit?

Читайте также:  Msi совместимость оперативной памяти

На оба эти вопроса отвечаем Y
Вывод из консоли:
Certificate is to be certified until Oct 16 07:03:55 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Теперь создаем сертификат и ключ клиента:
build-key client

Также не торопимся с ответами, как только увидим строку “Common Name (eg, your name or your server’s hostname)” нужно ответить client
В самом конце также будут два вопроса, отвечаем также Y
Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их по разному, например client1, client2 или как-то иначе, все зависит от Вашего воображения. Также не забывайте вводить эти имена при запросе Common Name
Вывод из консоли:
C:Program FilesOpenVPNeasy-rsa>build-key client
WARNING: can’t open config file: /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
. ++++++
. ++++++
writing new private key to ‘keysclient.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Moscow]:
Locality Name (eg, city) [Moscow]:
Organization Name (eg, company) [Home]:
Organizational Unit Name (eg, section) [Home]:
Common Name (eg, your name or your server’s hostname) [server]:client
Name [server]:client
Email Address [my@email.ru]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
WARNING: can’t open config file: /etc/ssl/openssl.cnf
Using configuration from openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’RU’
stateOrProvinceName :PRINTABLE:’Moscow’
localityName :PRINTABLE:’Moscow’
organizationName :PRINTABLE:’Home’
organizationalUnitName:PRINTABLE:’Home’
commonName :PRINTABLE:’client’
name :PRINTABLE:’client’
emailAddress :IA5STRING:’my@email.ru’
Certificate is to be certified until Oct 16 07:16:56 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Пример создания клиентских сертификатов:
build-key client1
build-key office1

На этом создание файлов сертификатов и ключей завершено.
Все файлы будут лежать в папке C:Program FilesOpenVPNeasy-rsakeys
Примерной такой список файлов должен получиться у Вас

2. Настройка OpenVPN сервера и интерфейса туннеля на hAP ac
Переходим к созданию туннеля на роутере hAP ac
Необходимо загрузить сертификат сервера, ключ сервера и основной сертификат в роутер. Файлы:
ca.crt
server.crt
server.key

Открываем раздел Files и переносим туда наши файлы. (Или используем FTP)
Загруженные файлы сертификатов и ключа Теперь нам необходимо импортировать данные сертификаты в RouterOS, чтобы она могла ими оперировать.
Меню сертификатов Импортируем наши сертификаты и ключи
Выбираем нужные сертификаты и ключ и импортируем их Консольно:
/certificate import file-name=ca.crt passphrase=""
/certificate import file-name=server.crt passphrase=""
/certificate import file-name=server.key passphrase=""

Займемся настройкой OpenVPN. переходим в меню PPP
Меню PPP Добавляем новый профиль для нашего туннеля Нам необходимо выделить IP адреса, которые мы будем использовать для туннельных интерфейсов.
Я выбрал подсеть 172.16.10.0/24 соответственно сервер будет иметь адрес 172.16.10.1, а клиенты далее по маске. 2,3,4 и т.д.
Заполняем необходимые параметры профиля Заполняем оставшиеся параметры профиля Консольно:
/ppp profile add name=ovpn-server local-address=172.16.10.1 change-tcp-mss=yes use-upnp=no use-mpls=yes use-compression=no use-encryption=yes only-one=default

Добавляем авторизационные данные для каждого клиента, который будет подключаться к OpenVPN серверу.
Открываем вкладку с записями данных авторизации Т.к. у сервера IP 172.16.10.1 выдаем клиенту IP 172.16.10.2
Добавляем нашего клиента Консольно:
/ppp secret add name=client password=123456789 service=ovpn profile=ovpn-server remote-address=172.16.10.2

Теперь нужно включить саму службу OpenVPN
Нажимаем кнопку для отображения параметров сервера Выполняем настройки сервера Консольно:
/interface ovpn-server server set enabled=yes port=1194 mode=ip netmask=24 default-profile=ovpn-server certificate=server.crt_0 require-client-certificate=yes auth=sha1,md5 cipher=blowfish128,aes128,aes192,aes256

В принципе этих настроек достаточно, но я предпочитаю наблюдать за интерфейсом. для этого мы можем зафиксировать интерфейс за конкретным клиентом. Сделаем привязку.
Биндим интерфейс Достаточно ввести имя клиента из PPP Secret и имя самого интерфейса Консольно:
/interface ovpn-server add name=ovpn-inclient user=client

Может показаться, что мы все уже настроили, но это не совсем так. Остался последний штрих. Необходимо разрешить прохождение запросов на OpenVPN сервер через Firewall
Для этого переходим в меню межсетевого экрана
Переходим в меню Firewall Добавляем новую запись Разрешаем входящий трафик на порту 1194 с интерфейса WAN Само разрешение Консольно:
/ip firewall filter add chain=input protocol=tcp dst-port=1194 in-interface=WAN action=accept comment="Accept OpenVPN Requests"

На этом настройка OpenVPN на роутере hAP ac завершена, переходим к роутеру hEX

3. Настройка OpenVPN клиента и интерфейса туннеля на hEX
На данном роутере нам необходимо проделать гораздо меньше операций для запуска клиента.
Помним, что создали сертификат клиента! Загружаем его в роутер и импортируем по аналогии с hAP ac.
Загружаем и импортируем сертификат и ключ клиента Консольно:
/certificate import file-name=client.crt passphrase=""
/certificate import file-name=client.key passphrase=""

Создаем профиль для OpenVPN в меню PPP
Добавляем новый профиль Консольно:
/ppp profile add name=ovpn-client change-tcp-mss=yes use-upnp=no use-mpls=yes use-compression=no use-encryption=yes

Добавляем интерфейс OpenVPN для подключения к OpenVPN серверу.
Как мы помним из первой части цикла статей, внешний IP адрес у нас 98.76.54.32
Добавляем интерфейс клиента OpenVPN Задаем имя интерфейса Заполняем параметры для подключения к серверу OpenVPN Консольно:
/interface ovpn-client add name=ovpn-outclient connect-to=98.76.54.32 port=1194 mode=ip user=client password=123456789 profile=ovpn-client certificate=client.crt_0 auth=md5 cipher=blowfish128

Шифрование Вы можете выбрать любое, которое установили доступным для сервера.
После создания интерфейса туннель должен уже быть активен. В списке IP адресов Вы должны увидеть IP 172.16.10.2 полученный от OpenVPN сервера.
Также в статусе можно увидеть с какими параметрами подключен интерфейс.
Признаки активного соединения

Вот мы и закончили создание OpenVPN туннеля между двумя роутерами hAP ac и hEX
Буду рад любым замечаниям или комментариям. Возможно Вы знаете, как сделать лучше!

P.S.
Аналогом данного решения может послужить вариант PPTP туннеля. А шифрование можно организовать в самом EoIP посредством IPsec

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

Список всех статей в хронологическом порядке: История статей

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *