Пример настройки OpenVPN туннеля для схемы с сервером и несколькими клиентами для роутеров iRZ

Задача

Настроить OpenVPN туннель на роутерах iRZ для схемы с сервером и несколькими клиентами.

Сервер, Клиент 1, Клиент 2 - роутеры iRZ

192.168.1.0/24 - локальная сеть сервера

192.168.2.0/24 - локальная сеть Клиента 1

192.168.3.0/24 - локальная сеть Клиента 2

    Image 690


    Вариант решения

    Основные настройки задаются в веб-интерфейсе роутера во вкладке 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 нужно написать следующее:

    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