Установка OpenVPN сервера на Ubuntu Linux для подключения клиентов Mikrotik. Часть 1. Настройка сервера OpenVPN

By | 25.11.2017

Доброго времени суток!
Сегодня речь пойдет о необычной установке сервера OpenVPN. Необычная она тем, что клиентские части будут реализованы не на Linux и даже не на Windows, а на Mikrotik OVPN-client (на аппаратных устройствах Mikrotik). Сразу необходимо ответить, что данная конфигурация сервера OpenVPN может работать в среде гетерогенных сетей, что является непосредственным преимуществом при изобилии используемых устройств, как программных так и аппаратных. Так как статья вышла довольно-таки обширной, было решено разбить её на 2 части:

Часть 1. Настройка сервера OpenVPN и генерация сертификатов клиентов

Часть 2. Настройка ovpn-клиента на устройстве Mikrotik

Дано:

  1. Выделенный «белый» ip-адрес
  2. Привязанное к нему доменное имя (по желанию)
  3. Сервер под управлением ОС Ubuntu Linux

Задача:

  1. Установить серверную часть OpenVPN на сервер
  2. Сгенирировать сертификат пользователя для подключения к серверу
  3. Настроить на устройстве Microtik OVPN-client
  4. Установить соединение с сервером

Установка и настройка сервера будет производиться под суперпользователем root, но для вашего удобства, в каждой команде будет добавлена команда sudo. Итак, начнем:

Сперва обновим репозитории и установленные пакеты:

Затем установим сервер OpenVPN и набор скриптов для генерации самоподписанных сертификатов:

Далее извлекаем из поставляемого в пакете архива, пример конфигурационного файла серверной части OpenVPN:

Далее начинаем редактировать данный файл:

В первую очередь, необходимо поменять сетевой протокол, на котором будет работать сервер openvpn, так как клиент ovpn на устройствах Mikrotic работает только через udp, на самом деле это не столь страшно, скорее это унификация, иными словами, клиенты на других ОС не будут испытывать трудностей при подключении, потому что, как правило они работают с любым из протоколов:

Находим:

И заменяем на:

Далее сразу укажем путь к сертификатам и закрытому ключу, который разместим в директории keys по пути /etc/openvpn/

Находим:

Заменяем на:

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

Находим:

Заменяем на:

Теперь необходимо указать пул виртуальных ip-адресов, которые будут выдаваться клиентам, в нашем случае, это 10.1.2.0 с маской 24 (255.255.255.0)
Находим:

Комментируем и добавляем чуть ниже строку:

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

Если нужно, чтобы клиенты могли «видеть» друг друга, то находим строку:

и приводим ее к виду:

!!!ВНИМАНИЕ-ВАЖНО!!! Затем следует самое главное, нужно выбрать метод шифрования, есть только один вариант, который поддерживается клиентом ovpn Mikrotik, находим секцию:

и добавляем в конце 2 новые строки:

так как на Mikrotik не поддерживается компрессия lzo, на сервере ее необходимо отключить, путем комментирования строки:

Далее находим:

И разкомментируем данные строки, чтобы получилось:

При желании можно указать путь до лог-файлов.

Находим:

Заменяем на:

На этом настройка демона OpenVPN закончена. Сохраняем, закрываем:

Для работы OpenVPN требуются сертификат сервера и сертификаты клиентов, выпущенные одним сертификационным центром (Certification Authority или CA). Мы будем издавать так называемые «самоподписанные сертификаты» используя набор скриптов easy-rsa установленные на начальном этапе.

Копируем скрипты:

Далее создаем директорию, для хранения наших сертификатов:

Теперь настал момент, изменения переменных, которые будут использоваться в генерации сертификатов. Редактируем файл:

Находим секцию:

И подставляем свои значения, например:

Сохраняем изменения и выходим.

Далее необходимо сгенерировать настройки протокола Диффи Хелмана, для этого запускаем команду:

в консоли должно появится что то вроде:

Переходим в директорию easy-rsa:

Затем инициализируем PKI (PKI — Public Key Infrastructure) — Инфраструктура открытых ключей — набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей:

в ответ будет выведено следующее:

Далее необходимо очистить нашу директорию от старых генераций, на случай если они были (лучше проделывать эту процедуру в любом случае):

Итак, создадим центр сертификации (Certification Authority или CA)

Далее просто соглашаемся со всем, для этого, достаточно при каждом запросе нажимать на кнопку Enter. Если Вы обратите внимание, то можете заметить, что переменные берутся из ранее отредактированного файла /etc/openvpn/easy-rsa/vars Данная команда запускается всего 1 раз, так как в нашем случае, CA всего один.

После этого, необходимо сгенерировать сертификат для самого сервера:

аналогично предыдущей команды, необходимо подтвердить все запросы нажатием Enter до тех пор, пока не увидите запрос на утверждение:

подтверждаем издание сертификата введя значение «y»

И также нажимаем Enter.

Далее утверждаем еще один запрос и также нажимаем Enter:

В случае удачной генерации, выведется следующее сообщение:

Иначе:

Теперь необходимо скопировать сгенерированный сертификат в корневую директорию OpenVPN:

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

создаем директорию для хранения индивидуальных конфигураций для определенных клиентов:

теперь необходимо создать файл, для логирования всех сообщений сервера OpenVPN:

На этом, настройка серверной части завершена, можно попробовать запустит демон и проверить его статус:

Если запуск произошел успешно, то мы должны получить сообщения следующего содержания:

Если же, с запуском возникли проблемы:

То смотрим лог:

и тут же видим сообщения, например, если не создать директорию ccd, демон не запустится и будет ругаться на ее отсутствие:

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

Чтобы наши клиенты (устройства Mikrotik) могли подключаться к данному серверу, необходимо сгенирировать также для них клиентские сертификаты. Сертификаты должны быть названы на английском языке и без_пробелов, например artem, mikrotik1, client1 и т. д.:

переходим в директорию СА:

и запускаем генерацию:

Подтверждаем запросы нажатием Enter, как и в предыдущие разы и утверждаем 2 последних запроса вводом значения «y»

Сертификат пользователя client1 сгенерирован! Для использования его в Mikrotik, необходимо скопировать 2 файла на устройство. Каждый администратор может выбрать удобный для себя способ, мы рекомендуем использовать WinSCP. Для начала нужно подготовить эти 2 файла для транспортировки. Переходим в директорию keys и назначаем права:

Далее запускаем на Windows ранее скачанный WinSCP и создаем «новое подключение» до нашего OpenVPN сервера и нажимаем Login:

Если появится запрос на добавление сертификата, нажимаем утвердительно «Да» (Yes)

Далее появится привычный двухоконный файловый менеджер, здесь в правой части отображается сервер, а в левой ваша рабочая станция на Windows. В правой части,используя переход (..) перемещаемся в директорию /etc/openvpn/easy-rsa/keys:

и копируем 2 файла (client1.crt, client2.key) на наш ПК:

Теперь у вас есть файлы сертификата пользователя, их необходимо скопировать на устройство Mikrotik и настроить ovpn-клиент для подключения к серверу.

В следующей статье, рассмотрим настройку ovpn-клиента на устройстве Mikrotik и попробуем подключиться к ранее настроенному серверу OpenVPN

 

 

 

comments powered by HyperComments
Поделиться!
Установка OpenVPN сервера на Ubuntu Linux для подключения клиентов Mikrotik. Часть 2. Настройка ovpn-клиента на устройстве Mikrotik — Cold IT
2017-11-28 23:41:13
[…] […]