1. Главная страница » Компьютеры » Openssl не является внутренней или внешней командой

Openssl не является внутренней или внешней командой

Автор: | 16.12.2019

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

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

  1. Сертификаты будем создавать на машине c win10. Скачиваем сам OpenVPN (в моем случае это версия 2.4.6) для генерации сертификатов.
    Важно, при установке выбрать все галочки.
  2. Открываем папку “C:Program filesOpenVPNeasy-rsa“, запускаем init-config.bat, появится файл vars.bat.sample, открываем его и редактируем такие строки:

Эти параметры оставить неизменными “Key_CN” и “Key_NAME”, остальные можно вписать произвольно. Сохраняем как vars.bat в сваю домашнюю папку (в текущую не разрешат права), а потом перемещаем этот файл в “C:Program filesOpenVPNeasy-rsa” с подтверждением замены.

  • Теперь открываем openssl-1.0.0.cnf и выставляем параметр default_days=3650 (3650= это 10 лет, можете выставить нужное время истекания сертификата по своему усмотрению ).
  • Теперь открываем CMD от имени администратора и пишем поочередно команды:
  • «Скопировано файлов: 1». Значит, процедура успешна. Если выдало сообщение ” vars.bat не является внутренней или внешней командой, исполняемой программой или пакетным файлом.” То отредактируйте в этом файле правильные, полные пути до команды.

    Далее поочередно вбиваем команды для создания ключей:

    Если опять выдало сообщение об ошибке – редактируем полный путь до команды openssl. (В моем случает нужно было указать полный адрес с пробелом, указав его в двойных кавычках). Все вопросы подтверждаем Enter. Дальше набираем:

    Все вопросы подтверждаем Enter, а на последние два соглашаемся “Y”

    Далее создаем сертификат клиента:

    При ошибке, редактируем путь. На вопрос Common Name – ввести client. В конце два раза подтвердить “Y”.

    С сертификатами готово. Забираем их из папки C:Program FilesOpenVPNeasy-rsakeys : ca.crt, server.crt, server.key

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

  • Заливаем файлы сертификатов и ключа на роутер Mikrotik, где будем настраивать сервер.
  • Далее произведём импорт сертификатов, System – Certificates, выбираем поочередно сертификаты из списка ca.crt, server.crt, server.key и жмём кнопку Import:
  • Создаём новый пул IP адресов для наших клиентов OpenVPN. IP -> Pool, добавили диапазон, например, 172.16.244.10-172.16.244.50, и назвал пул OVPN-pool
  • Далее создаём PPP профиль. PPP ->Profiles-> вводим имя профиля, локальный адрес роутера, в моем случае 172.16.244.1, с созданным пулом адресов OVPN-pool, остальные настройки выставляем по желанию.
  • Далее настраиваем сам OpenVPN сервер, PPP->Interface->OVPN Server, ставим Enabled, выбираем нужный порт, mode выставляем ip, выбираем созданный ранее профиль, ставим Require Client Certificate и выбираем сертификат server, остальные параметры по желанию.
  • Создадим пользователя, переходим в раздел PPP ->Secrets, вводим имя пользователя, пароль, указываем сервис и профиль.
  • Так как используются сертификаты, необходимо что бы время на сервере и на клиенте совпадало, для этого настраиваем ntp клиент и временную зону на роутере в разделе- System ->Clock/NTP Client. Адреса для NTP клиента можно взять, например, здесь.
  • Еще не забудьте настроить Ваш фаерфол для разрешения порта для OVPN, IP -> Firewall->Filter Rules
  • Теперь можно подключаться к нашему OVPN серверу.

    В данной статье мы создадим защищенный туннельный интерфейс на базе 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.

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

    Выбираем нужные пункты

    После скачивания и установки в указанную Вами папку в ней будет список файлов. у меня это папка C:Program FilesOpenVPN
    Нам необходимо перейти в папку easy-rsa
    Нужно открыть консоль Windows (для Windows Vista/7/8/8.1/10 нужно запускать от Администратора)
    Переходим в папку easy-rsa по пути установки командой cd
    Например:

    Запускаем файл init-config.bat

    В папке появится файл vars.bat, открываем его текстовым редактором, нас интересуют строчки в самом конце, их нужно заполнить
    Я подставил свои параметры, у Вас данные параметры будут другие:

    Там где написано server, не трогаем. Сохраняем файл.

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

    Дополнительно:
    Если Вы тот еще параноик, то Вы можете отредактировать еще один параметр:

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

    Пишем в консоль команды

    В ответ должно прийти

    Создаем ключ Диффи-Хеллмана

    Вывод из консоли:

    Известные проблемы:
    При подаче команды clean-all или build-dh в самом начале генерации сертификатов, может проявится одна ошибка, выглядит она так:

    Вывод из консоли: Бороться с этим необходимо следующим образом. Нужно указать путь до файла openssl.exe в файле vars.bat в ручную.
    А точнее стираем слово rem в строке (rem — это комментирование строки):

    Сохраняем файл и производим весь процесс сначала
    vars
    clean-all
    build….. и т.д

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

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

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

    На вопросы так же нажимаем Enter, но не торопимся, в самом конце будет задано два вопроса

    На оба эти вопроса отвечаем Y
    Вывод из консоли:

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

    Также не торопимся с ответами, как только увидим строку « Common Name (eg, your name or your server’s hostname) » нужно ответить client
    В самом конце также будут два вопроса, отвечаем также Y
    Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их по разному, например client1, client2 или как-то иначе, все зависит от Вашего воображения. Также не забывайте вводить эти имена при запросе Common Name
    Вывод из консоли:

    Пример создания клиентских сертификатов:

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

    Примерной такой список файлов должен получиться у Вас

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

    Открываем раздел Files и переносим туда наши файлы. (Или используем FTP)

    Загруженные файлы сертификатов и ключа

    Теперь нам необходимо импортировать данные сертификаты в RouterOS, чтобы она могла ими оперировать.

    Импортируем наши сертификаты и ключи

    Выбираем нужные сертификаты и ключ и импортируем их

    Займемся настройкой OpenVPN. переходим в меню PPP

    Добавляем новый профиль для нашего туннеля

    Нам необходимо выделить IP адреса, которые мы будем использовать для туннельных интерфейсов.
    Я выбрал подсеть 172.16.10.0/24 соответственно сервер будет иметь адрес 172.16.10.1, а клиенты далее по маске. 2,3,4 и т.д.

    Заполняем необходимые параметры профиля

    Заполняем оставшиеся параметры профиля

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

    Открываем вкладку с записями данных авторизации

    Т.к. у сервера IP 172.16.10.1 выдаем клиенту IP 172.16.10.2

    Добавляем нашего клиента

    Теперь нужно включить саму службу OpenVPN

    Нажимаем кнопку для отображения параметров сервера

    Выполняем настройки сервера

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

    Достаточно ввести имя клиента из PPP Secret и имя самого интерфейса

    Может показаться, что мы все уже настроили, но это не совсем так. Остался последний штрих. Необходимо разрешить прохождение запросов на OpenVPN сервер через Firewall
    Для этого переходим в меню межсетевого экрана

    Переходим в меню Firewall

    Добавляем новую запись

    Разрешаем входящий трафик на порту 1194 с интерфейса WAN

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

    3. Настройка OpenVPN клиента и интерфейса туннеля на hEX
    На данном роутере нам необходимо проделать гораздо меньше операций для запуска клиента.
    Помним, что создали сертификат клиента! Загружаем его в роутер и импортируем по аналогии с hAP ac.

    Загружаем и импортируем сертификат и ключ клиента

    Создаем профиль для OpenVPN в меню PPP

    Добавляем новый профиль

    Добавляем интерфейс OpenVPN для подключения к OpenVPN серверу.
    Как мы помним из первой части цикла статей, внешний IP адрес у нас 98.76.54.32

    Добавляем интерфейс клиента OpenVPN

    Задаем имя интерфейса

    Заполняем параметры для подключения к серверу OpenVPN

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

    Признаки активного соединения

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

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

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

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

    Читайте также:  Assassins creed origins история

    Прежде чем настраивать 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?

    На оба эти вопроса отвечаем 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

    Читайте также:  Php работа с датами и временем

    Пример создания клиентских сертификатов:
    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 сервера не мешали друг другу.

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