VyOS. Настройка OpenVPN Server

OpenVPN это еще одна из реализаций VPN туннелей. У нее есть некоторые преимущества. Например возможность работы по произвольному порту и использование TCP или UDP на выбор, а так же возможность использования Proxy. Но и есть относительные минусы, например требуется установка своего клиента.

Программный маршрутизатор VyOS помимо L2TP, DMVPN, IPsec так же поддерживает OpenVPN.

Для настройки будем считать, что:
eth0 — внешний интерфейс;
192.168.123.1 — внутренний IP адрес маршрутизатора;
255.255.255.0 (/24) — маска внутренней сети;
172.16.0.0/24 — виртуальная сеть для OpenVPN клиентов;
1.1.1.2 — внешний IP адрес.

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

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

После копирования, изменим параметры создаваемых сертификатов, для этого отредактируем файл /config/rsa2/vars:

Полезные параметры в vars:

Описание параметров:
KEY_SIZE — длина ключа;
CA_EXPIRE — время жизни корневого сертификата (в днях);
KEY_EXPIRE — время жизни пользовательских сертификатов;
KEY_COUNTRY — страна, указываемая в сертификате;
KEY_PROVINCE — область, указываемая в сертификате;
KEY_CITY — город;
KEY_ORG — организация;
KEY_EMAIL — адрес электронной почты;

Теперь нужно загрузить переменные (это нужно делать перед каждым началом создания сертификатов):

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

Перейдем в скопированную папку:

Очистим все текущие сертификаты:

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

Создадим Diffie-Hellman key exchange:

Создадим сертификат сервера (в примере сертификат будет иметь имя blackdiver-server):

Создадим пользовательские сертификаты ( в примере создаваемый пользовательский сертификат будет иметь имя user1):

Для всех сертификатов не должен быть установлен пароль, а так же все сертификаты, кроме корневого, должны быть подписаны корневым сертификатом.

При запросе пароля просто нажимаем Enter:

При запросе подписи сертификата вводим y и нажимаем Enter:

Сертификаты созданы.

Настройка OpenVPN

Нужные сертификаты созданы. Теперь перейдем к настройке OpenVPN сервера на VyOS.

Проведем базовую настройку:

Описание команд:
Создаем OpenVPN сервер и назначаем ему виртуальный интерфейс vtun0:

Создаем виртуальную сеть 172.16.0.0/24 для OpenVPN клиентов:

Передаем OpenVPN клиентам адрес DNS сервера:

Указываем локальный домен для OpenVPN клиентов:

Настройка сертификатов для сервера:

Настройка маршрутизации

Если требуется, чтобы клиенты выходили в интернет через VPN канал:

и разрешаем трансляцию адресов для подсети 172.16.0.0/24:

Если только требуется доступ к локальной сети за маршрутизатором:

Дополнительные настройки

Если используется DNS-forwarder на маршрутизаторе VyOS, то нужно его включить на интерфейсе vtun0:

Если у маршрутизаторе несколько IP адресов и требуется разрешить подключение к VPN только на один из адресов:

Изменить порт OpenVPN на 80-й (по умолчанию используется 1194 порт):

Использовать TCP протокол (по умолчанию используется UDP):

Настройка VyOS закончена.
Сохраняем конфигурацию:

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

Для настройки OpenVPN клиентов нам потребуются корневой сертификат, сертификат и ключи пользователя user1:

user1.crt;
user1.key;
ca.crt.

Эти сертификаты находятся в каталоге /config/rsa2/ и их можно скопировать себе с помощью утилиты SCP или WinSCP с маршрутизатора.

Далее создаем текстовый файл конфигурации (например blackdiver-openvpn.ovpn) и записываем в него настройки подключения:

Конфигурация для подключения по протоколу UDP:

Конфигурация для подключения по протоколу TCP:

где:
1.1.1.2IP адрес сервера;
1194 — порт, на котором работает OpenVPN сервер.

Если требуется работа через Proxy, то в конфигурацию клиента так же дописываем:

где:
2.2.2.2IP адрес прокси сервера;
8080 — порт, на котором работает прокси.

после этого, помещаем все файлы (ca.crt, user1.crt, user1.key, blackdiver-openvpn.ovpn) в каталог config на клиенте и инициируем подключение.

Отзыв клиентских сертификатов

Для отзыва сертификатов переходим в каталог:

Отзываем сертификат пользователя user1:

При первом отзыве, создастся файл crl.pem в котором будет храниться список отозванных сертификатов. Этот файл нужно прописать в настройках сервера:

Команды для диагностики

Посмотреть подключенных клиентов:

Перезапустить OpenVPN сервер:

Посмотреть список отозванных сертификатов:

Настройка OpenVPN на VyOS закончена. Из нюансов можно отметить, что сервер OpenVPN можно настроить на 443/TCP или 80/TCP порт и тогда можно будет инициировать подключение даже если в сети доступен только просмотр Web страниц и используется прокси.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.