Пример настройки OpenVPN туннеля для схемы с сервером и несколькими клиентами для роутеров iRZ
Задача
Настроить OpenVPN туннель на роутерах iRZ для схемы с сервером и несколькими клиентами.
Сервер, Клиент 1, Клиент 2 - роутеры iRZ
192.168.1.0/24 - локальная сеть сервера
192.168.2.0/24 - локальная сеть Клиента 1
192.168.3.0/24 - локальная сеть Клиента 2
Вариант решения
Основные настройки задаются в веб-интерфейсе роутера во вкладке VPN/Tunnels - OpenVPN tunnels
Настройки для Сервера
Для роутера, который выступает в роли Сервера, нужно указать настройки, приведенные в таблице.
Настройки OpenVPN Tunnel → TUN (L3), сервер
Поля | Описание | Значение |
Device | Выбор виртуального интерфейса | TUN (L3) |
Transport Protocol | Выбор транспортного протокола | TCP Server |
Port | Номер порта, через который будет работать туннель | 1194 |
Authentication Method | Метод аутентификации | TLS Server |
Add to Bridge or Create New | Создание моста с локальными интерфейсами роутера | none |
Ping Interval | Время в секундах, через которое будут отсылаться ICMP-пакеты для проверки работы туннеля | 60 |
Ping Timeout | Время ожидания в секундах, через которое устройство попытается заново создать OpenVPN-туннель, если ответ не будет получен | 120 |
LZO Compression | Режим сжатия данных, проходящих через туннель | No- |
Остальные поля следует оставить пустыми.
Обратите внимание, при выборе метода аутентификации TLS Server появляются поля для указания сертификатов и ключей: CA Certificate, DH Parameter, Local Certificate, Local Private Key.
Ключи и сертификаты для аутентификации сервера по протоколу TLS
Поля | Файл | Описание |
CA Certificate | ca.crt | Сертификат удостоверяющего центра |
DH Parameter | dh2048.pem | Файл с ключом для алгоритма Диффи-Хелмана для защиты передаваемых данных от расшифровки |
Local Certificate | server.crt | Сертификат сервера OpenVPN |
Local Private Key | server.key | Приватный ключ сервера OpenVPN, секретный |
Ключи и сертификаты необходимо получить либо от сертификационного центра, либо создать свой собственный сертификационный центр и создать на его основе требуемые ключи и сертификаты.
Полученные файлы сертификатов необходимо загрузить на роутер по кнопке Upload в соответствии с указанными в таблице полями. Пример настройки показан на рисунке ниже.
Поле Additional Config позволяет указывать дополнительные параметры для создания туннеля. Пункты, которые могут быть указаны в данном поле, и их расшифровку можно посмотреть на официальном сайте OpenVPN по адресу: https://openvpn.net/index.php/open-source/documentation/howto.html#server
В данном случае для роутера, который выступает в роли сервера, в Additional Config нужно написать следующее:
mode server server 10.10.10.10 255.255.255.0 client-to-client client-config-dir /opt/ccd route 192.168.3.0 255.255.255.0 route 192.168.2.0 255.255.255.0 push "route 192.168.3.0 255.255.255.0" push "route 192.168.2.0 255.255.255.0" verb 3
Директива client-config-dir /opt/ccd указывается для того чтобы сервер выдавал статические адреса туннельного интерфейса.
Обратите внимание, в данном примере Additional Config обращается к файлам, которые на роутере по умолчанию отсутствуют.
Их нужно создать из консоли вручную.
Команда для создания директории /opt/ccd
mkdir /opt/ccd
Команда для создания файлов client1 и client2 в директории /opt/ccd
touch /opt/ccd/client1 && touch /opt/ccd/client2
В созданных файлах client1 и client2 нужно указать директивы:
root@iRZ-Router:/opt/ccd# cat client1 ifconfig-push 10.10.10.2 10.10.10.1 iroute 192.168.2.0 255.255.255.0 root@iRZ-Router:/opt/ccd# cat client2 ifconfig-push 10.10.10.3 10.10.10.1 iroute 192.168.3.0 255.255.255.0
Это и есть назначение клиентским роутерам статических туннельных адресов и маршрутов.
Настройки для Клиента
Для роутеров, которые выступают в роли Клиента, нужно указать настройки, приведенные в таблице.
Для Клиента 1 и Клиента 2 настройки различаются только ключами и сертификатами для аутентификации по протоколу TLS.
Настройки OpenVPN Tunnel → TUN (L3), client
Поля | Описание | Значение |
Device | Выбор виртуального интерфейса | TUN (L3) |
Transport Protocol | Выбор транспортного протокола | TCP Client |
Remote | 192.168.245.69 | |
Port | Номер порта, через который будет работать туннель | 1194 |
Authentication Method | Метод аутентификации | TLS Client |
Add to Bridge or Create New | Создание моста с локальными интерфейсами роутера | none |
Remote Subnet | IP-адрес удаленной сети (на другом конце туннеля), который необходим для создания маршрута в таблице маршрутизации | 192.168.1.0 |
Remote Subnet Mask | Маска удаленной сети (на другом конце туннеля) | 255.255.255.0 |
Ping Interval | Время в секундах, через которое будут отсылаться ICMP-пакеты для проверки работы туннеля | 60 |
Ping Timeout | Время ожидания в секундах, через которое устройство попытается заново создать OpenVPN-туннель, если ответ не будет получен | 120 |
LZO Compression | Режим сжатия данных, проходящих через туннель | No |
Остальные поля следует оставить пустыми.
При выборе метода аутентификации TLS Client появляются поля для указания сертификатов и ключей: CA Certificate, DH Parameter, Local Certificate, Local Private Key.
Ключи и сертификаты для аутентификации клиента по протоколу TLS
Поля | Файл | Описание |
CA Certificate | ca.crt | Сертификат удостоверяющего центра |
Local Certificate | client1.crt - для Клиента 1 client2.crt - для Клиента 2 | Сертификат OpenVPN |
Local Private Key | client1.key - для Клиента 1 client2.key - для Клиента 2 | Приватный ключ OpenVPN, секретный |
Остальные поля следует оставить пустыми.
В поле Additional Config для роутеров, которые выступают в качестве клиентов, нужно написать следующее:
pull
В данной конфигурации все устройства и все локальные сети друг друга видят.
Сервис поддержки клиентов работает на платформе UserEcho