ВНИМАНИЕ!!!

На роутере, который будет выступать в роли Сервера, должен быть статический IP адрес.

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

С динамическим адресом на роутере, который будет в роли сервера, работать OpenVPN не будет!!!


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


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

Мы имеем:

1. Роутер с SIM к которой привязан публичный статический IP адрес. Локальная подсеть 192.168.88.0/24

2. Роутер с SIM без статического адреса. Локальная подсеть 192.168.99.0/24

Роутер 1 будет OpenVPN сервером, а Роутер 2 будет OpenVPN клиентом.


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

OpenVPN режим мультиклиента: Часть 1 - Создание сертификатов и ключей


1. Настройка OpenVPN сервера через WEB

1.1. Подготовка роутера

Необходимо подготовить наш роутер к настройке.

Создаем нужные папки и файлы.

Как загружать и создавать файлы в роутере RTU, Вы можете прочитать в статье: Как загружать и скачивать файлы в роутерах серии RTU?

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


Создадим в папке ccd файл по имени нашего сертификата для клиента rtu968-1.crt


В данный файл добавим строку:

iroute 192.168.99.0 255.255.255.0

Тем самым мы передаем OpenVPN клиенту команду на установку маршрута.


1.2. Подключимся к роутеру через браузер

Как это сделать смотрим в статье: Как подключиться к роутеру RTU?


Необходимо зайти в пункт Сервисы -> OpenVPN


1.3. Создаем процесс Сервера OpenVPN

Вводим произвольное имя процесса, выбираем из списка примеров "Server configuration for a routed multi-client VPN" и нажимаем кнопку "Добавить"


1.4. Настраиваем параметры сервера

Оставляем все как есть, если не нужно ничего менять, переходим к расширенным настройкам.


Во вкладке Service указываем файл для записи логов работы OpenVPN сервера

За количество выводимой информации отвечает параметр Verb

Уровни логгирования:

0 - Ничего, за исключением фатальных ошибок.

4 - Подойдет для получения общих сведений.

5 и 6 - Пригодятся для отладки проблем соединения.

9 - Максимально возможная информация.


Во вкладке Networking добавляем в поле route

192.168.99.0 255.255.255.0 (маршрутизация до сети клиента через туннель)


ВНИМАНИЕ!!!

Текущий пакет OpenVPN некорректно сохраняет данный параметр (route):

option route '192.168.99.0 255.255.255.0'

Необходимо вручную через консоль или SSH поправить конфигурацию и привести её к правильному виду:

list route '192.168.99.0 255.255.255.0'


После заполнения всех полей нажимаем кнопку Сохранить, чтобы не потерять сделанные изменения!


Во вкладке VPN необходимо прописать в push

route 192.168.88.0 255.255.255.0 (засылаем маршрутизацию клиенту, что запросы для данной подсети должны перенаправляться в туннель)


ВНИМАНИЕ!!!

Текущий пакет OpenVPN некорректно сохраняет данный параметр (push):

option push 'route 192.168.88.0 255.255.255.0 route 192.168.99.0 255.255.255.0'

Необходимо вручную через консоли либо по SSH поправить конфигурацию и привести её к правильному виду:

list push 'route 192.168.88.0 255.255.255.0'
list push 'route 192.168.99.0 255.255.255.0'


Указываем путь до client_config_dir, например у нас, /etc/openvpn/ccd


Разрешаем клиентам общаться между собой


Если у Вас несколько клиентских устройств, тогда в папке ccd необходимо создать еще файлы по имени клиентов, в эти файлы необходимо внести строку вида:
iroute XXX.XXX.XXX.XXX 255.255.255.0

где,

XXX это IP адресация локальной сети клиентского устройства.


После заполнения всех полей нажимаем кнопку Сохранить, чтобы не потерять сделанные изменения!


Во вкладке Cryptography нужно загрузить сертификаты и ключи ca, dh, cert, key


После заполнения всех полей нажимаем кнопку Сохранить, чтобы не потерять сделанные изменения!


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


Далее нажимаем Старт сервиса


1.5. Настройка сетевого интерфейса

Переходим в Сеть -> Интерфейсы, нажимаем Добавить новый интерфейс


Заполняем имя.


Выбираем протокол Неуправляемый


Выбираем интерфейс tun0, и нажимаем Применить


Дальше попадаем в расширенные настройки, устанавливаем пункт Запустить при загрузке


Затем переходим в настройки межсетевого экрана и создаем новую зону vpn


Сохраняем и применяем настройки


ВНИМАНИЕ!!! Если интерфейс не получил IP адрес от OpenVPN сервера, остановите и запустите процесс OpenVPN заново.


1.6. Настройка межсетевой зоны VPN

Переходим в Сеть -> Межсетевой экран


Напротив зоны vpn нажимаем Редактировать, попадаем в настройки зоны, выбираем для Входящий, Исходящий и Перенаправление параметр Принимать, Маскарадинг необходимо включить


Дальше спускаемся ниже в раздел Перенаправление между зонами и выбираем там в двух случаях lan


Сохраняем и применяем настройки


1.7. Открываем внешний порт для OpenVPN соединений, чтобы клиенты могли авторизоваться.

Оставаясь в Межсетевом экране, переходим в Правила для трафика


Ищем пункт Открыть порты на маршрутизаторе: Вводим имя - OpenVPN, протокол - udp, Внешний порт - 1194 и жмем кнопку Добавить

Более подробно про открытие и перенаправление портов, можно ознакомится в статье: Как открывать или перенаправлять TCP/UDP порты?


Сохраняем и применяем настройки


На этом настройка OpenVPN сервера на роутере RTU закончена.


2. Настройка OpenVPN сервера через консоль

Настраивать OpenVPN через консоль удобнее и проще чем через WEB


2.1. Подготовка роутера.

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

Переходим в папку:

cd /etc/openvpn/

Создаем папку ccd:

mkdir ccd


Создадим в папке ccd файл по имени нашего сертификата для клиента rtu968-1.crt

Переходим в папку ccd

cd /etc/openvpn/ccd

Создаем файл

nano rtu968-1


Добавляем в данный файл строку

iroute 192.168.99.0 255.255.255.0

Сохраняем файл Ctrl+X

Тем самым мы передаем OpenVPN клиенту команду на установку маршрута.


Загрузим в роутер наши файлы сертификатов:

Как загружать файлы в роутер Вы можете прочитать в статье: Как загружать и скачивать файлы в роутерах серии RTU?

Загружаем,


2.2. Выполняем настройку OpenVPN сервера

Открываем файл конфигурации редактором:

nano /etc/config/openvpn


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

config openvpn 'server_1'

   option enabled '1'

   option dev 'tun'
   option comp_lzo 'yes'
   option mssfix '1420'
   option keepalive '10 60'
   option verb '3'

   option log '/var/log/openvpn.log'
   option server '10.0.100.0 255.255.255.0'
   option ca '/etc/openvpn/ca.crt'
   option dh '/etc/openvpn/dh1024.pem'
   option cert '/etc/openvpn/server.crt'
   option key '/etc/openvpn/server.key'

   option client_config_dir '/etc/openvpn/ccd'

   option client_to_client '1'

   list push 'route 192.168.88.0 255.255.255.0'

   list route '192.168.99.0 255.255.255.0'


2.3. Настройка сетевого интерфейса

Открываем файл /etc/config/network для редактирования:

nano /etc/config/network


Добавляем в него настройки для туннеля и сохраняем:

config interface 'vpn'
   option proto 'none'
   option auto '1'
   option ifname 'tun0'


2.4. Настройка межсетевого экрана

Открываем файл /etc/config/firewall для редактирования:

nano /etc/config/firewall


Добавляем в него настройки для зоны VPN и открываем порт 1194:

config zone
   option name 'vpn'
   option input 'ACCEPT'
   option output 'ACCEPT'
   option network 'vpn'
   option forward 'ACCEPT'
   option masq '1'

config forwarding
   option dest 'lan'
   option src 'vpn'

config forwarding
   option dest 'vpn'
   option src 'lan'


config rule

   option target 'ACCEPT'

   option src 'wan'

   option proto 'tcp udp'

   option dest_port '1194'

   option name 'vpn'


2.5. Применяем все измененные и новые параметры

Перезагружаем все службы:

/etc/init.d/openvpn restart

/etc/init.d/network restart

/etc/init.d/firewall restart


2.6. Проверяем работу OpenVPN

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

cat /var/log/openvpn.log


Примечание:

Если Вас беспокоит строка WARNING: file в логе работы OpenVPN процесса, тогда нужно задать права доступа на указанный в этой строке файл.

Переходим в папку с ключами

cd /etc/openvpn/

или (если загружали через WEB)

cd /lib/uci/upload/

в зависимости от того, как добавляли файлы.


Меняем права доступа на файл ключ:

chmod 0400 cbid.openvpn.server_1.key

или

chmod 0400 server.key


На этом настройка OpenVPN сервера на роутере RTU закончена.


Переходим к следующей статье:

OpenVPN режим мультиклиента: Часть 3 - Настройка RTU клиента (tun)


Сопутствующие статьи:

Как подключиться к роутеру RTU?


Дополнительная информация:

Wiki на GITHUB

Страница роутера на сайте Teleofis

Контроллеры на платформе роутера RTU