В роутерах серии GTX есть возможность использования защищенного соединения через частные виртуальные сети (VPN).

Разновидностей различных видов VPN-соединений довольно большое количество, но в данной статье будет рассматриваться настройка VPN-соединения протокола OpenVPN.


Ознакомиться с тем, что же такое OpenVPN и для чего он необходим, можно в статье OpenVPN.


Данный материал является примером реализации туннельного протокола OpenVPN в единичных вариантах исполнения и не является полноценным руководством.

В данной статье будет рассматриваться базовая настройка PPP-соединения без подробных нюансов работы с программой Winbox и настройкой другого функционала операционной системы RouterOS.

Ознакомиться с детальными настройками роутера на операционной системе RouterOS, Вы можете на официальном ресурсе - по ссылке: https://wiki.mikrotik.com/wiki/Manual:TOC



1. Роутер GTX в режиме "OpenVPN Client"


При построении VPN-соединения между двумя роутерами необходимо обязательно разделить локальные сети(LAN) данных роутеров. Если на роутере в режиме "Сервер" используется локальная подсеть 192.168.88.0(по умолчанию), то на другом роутере в режиме "Клиент" необходимо задать отличную подсеть, например 192.168.90.0.


При построении VPN-туннеля OpenVPN первым делом необходимо произвести генерацию сертификатов и ключей для Сервера и Клиента. В данной статье не будет рассмотрен подробный механизм по генерации сертификатов и ключей, последовательность действий представлена в статьях:

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

Создание сертификатов средствами маршрутизатора для OVPN (Пример реализации)



Так как роутер в данной статье рассматривается как Сервер, то после успешного создания сертификатов и ключей ca.crt, server.crt, server.key, необходимо поместить их в раздел File, либо, если Вы создавали их через роутер Mikrotik и сохраняли в формате pkcs12, то необходимо загрузить 1 файл (он содержит все 3 необходимых файла). 


Далее необходимо перейти в раздел System -> Certificates:



В разделе Certificates необходимо нажать на кнопку "Import". В открывшемся диалоговом окне поочередно необходимо импортировать загруженные ранее сертификаты и ключи. Последовательность следующая: ca.crt -> client.crt -> client.keyесли же Вы используете файл формата pkcs12, то необходимо осуществить импорт с заданной кодовой фразой для загрузки сертификатов. 



Для начала необходимо создать новое PPP-соединение. 

В разделе PPP необходимо нажать "+" и выбрать пункт "OVPN Client"



В появившемся диалоговом окне во вкладке Dial Out необходимо указать:

- Connect To - IP-адрес OpenVPN Сервера

- User - Логин для подключения к удаленному OpenVPN Серверу

- Password - Пароль для подключения к удаленному OpenVPN Серверу

- Certificate - Выбор сертификата Клиента

- Auth. - Тип авторизации

- Cipher - Тип шифрования



Заходим в IP->Routes, нажимаем "+". Далее, необходимо создать правило для доступа к локальной сети за сервером. К этому подключению OVPN как раз и необходимо привязывать маршруты.

- Dst. address - 192.168.90.0/24 Необходимо указать адрес удаленной локальной сети за сервером, к которой будет подключаться Mikrotik в режиме "Client"

- Gateway - OpenVPN Созданный ранее интерфейс для клиента OVPN


На этом этап настройки Клиента OpenVPN на роутере GTX завершен.


2. Client Windows


При построении VPN-туннеля OpenVPN первым делом необходимо произвести генерацию сертификатов и ключей для Сервера и Клиента. В данной статье не будет рассмотрен подробный механизм по генерации сертификатов и ключей, последовательность действий представлена в статьях:

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

Создание сертификатов средствами маршрутизатора для OVPN (Пример реализации)


2.1 С использованием файла pkcs12 (со всеми сертификатами и ключами в 1 файле):


Необходимо скопировать ранее созданные файлы client.p12 из папки(по умолчанию) C:\Program Files\OpenVPN\easy-rsa\keys в каталог C:\Program Files\OpenVPN\config.




Далее в папке config необходимо создать текстовый файл auth.cfg (обратите внимание, расширение также необходимо изменить). Данный файл необходимо открыть текстовым редактором и внести в него 2 строчки: 1 - логин клиента 2- пароль клиента, которые ранее были заданы на сервере.



Также в папке config необходимо создать файл client.ovpn (обратите внимание, расширение также необходимо изменить). Данный файл будет содержать в себе конфигурацию клиента для подключения к удаленному серверу.

Редактируем данный файл:


proto tcp-client
remote 172.26.19.5
 - IP-адрес OpenVPN Сервера
dev tun
tls-client
pkcs12 client.p12
verb 7
ns-cert-type server
cipher AES-256-CBC
 - Метод шифрования данных между сервером и клиентом
auth SHA1
 - Метод авторизации с сервером
pull
auth-user-pass auth.cfg
 
- Включение авторизации по логину/паролю и указание, где брать логин/пароль(auth.cfg)
route 192.168.88.0 255.255.255.0 10.0.0.1
- Задается маршрут к локальной сети за роутером через IP-адрес созданного туннеля OpenVPN.


После сохранения файла конфигурации, необходимо запустить исполняемый файл OpenVPN GUI для установки соединения. При этом, будет запрошен пароль для файла .p12 (его можно будет запомнить). Ранее данный пароль (кодовая фраза) указывались при создании сертификатов.


2.2 С использованием отдельной загрузки сертификатов и ключей:


Необходимо скопировать ранее созданные файлы ca.crt, client.crt, client.key из папки(по умолчанию) C:\Program Files\OpenVPN\easy-rsa\keys в каталог C:\Program Files\OpenVPN\config.



Далее в папке config необходимо создать текстовый файл auth.cfg (обратите внимание, расширение также необходимо изменить). Данный файл необходимо открыть текстовым редактором и внести в него 2 строчки: 1 - логин клиента 2- пароль клиента, которые ранее были заданы на сервере.



Также в папке config необходимо создать файл client.ovpn (обратите внимание, расширение также необходимо изменить). Данный файл будет содержать в себе конфигурацию клиента для подключения к удаленному серверу.

Редактируем данный файл:


proto tcp-client
remote 172.26.19.5 
- IP-адрес OpenVPN Сервера
dev tun
tls-client
ca ca.crt
cert client.crt
key client.key
verb 7
ns-cert-type server
cipher AES-256-CBC
 - Метод шифрования данных между сервером и клиентом
auth SHA1
 - Метод авторизации с сервером
pull
auth-user-pass auth.cfg
 - Включение авторизации по логину/паролю и указание, где брать логин/пароль(auth.cfg)
route 192.168.88.0 255.255.255.0 10.0.0.1
 - Задается маршрут к локальной сети за роутером через IP-адрес созданного туннеля OpenVPN.


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


На этом этап настройки Клиента завершен. 


3. Client OpenVPN RTU968/1068


3.1.1 С использованием файла pkcs12 (со всеми сертификатами и ключами в 1 файле) 


Файл pkcs12 с сертификатами и ключами можно загрузить через WEB-интерфейс, однако для данного формата загрузки сертификатов необходимо будет создать файл с кодовой фразой, после чего загрузить его через файловую систему и указать до него путь с помощью команды askpass(ниже, в настройках с помощью консоли Вы сможете увидеть ее).

Если какие-либо поля отсутствуют, то их можно добавить путём выбора нужного и нажатием кнопки "Добавить"



Либо через файловую систему, в этом случае пути сертификатов прописываем вручную согласно тому, куда загрузили. Аналогично необходимо сделать с паролем для файла pkcs12.

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


В данном примере файл pkcs12 загружен в файловую систему роутера и расположены в /lib/uci/upload



Файл же с паролем  загружен в файловую систему роутера и расположены в корневую папку аналогичным образом /

Внутри файла кодовая фраза:



Аутентификацию можно настроить через веб - интерфейс, или же вручную создав файл и сохранив его на роутере, далее указав до него путь.



Из консоли настройку можно провести, открыв конфигурацию /etc/config/openvpn для редактирования:

config openvpn 'vpn1'
list remote '172.26.19.5 1194'
 - IP-адрес и порт удаленного Сервера OpenVPN
option auth_user_pass '/etc/openvpn/auth'
 - Расположение файла с логином/паролем для подключения к серверу
option client '1'
option dev 'tun0'
option proto 'tcp'
option auth 'sha1'

option pkcs12 '/lib/uci/upload/cbid.openvpn.OVPN.pkcs12' - Расположение сертификатов и ключа в файле pkcs12 (если загрузка осуществлялась через файловую систему)
option resolv_retry 'infinite'
option askpass '/pass.txt'
option verb '3'
option mute_replay_warnings '1'
option enabled '1'

list route '192.168.88.0 255.255.255.0 10.0.0.1'
 - Маршрут локальной сети за Сервером через IP-адрес туннеля


Сохраняем и возвращаемся к обзору соединений.

Далее необходимо включить сервис OpenVPN путём нажатия на кнопку Start



3.1.2 С использованием отдельной загрузки сертификатов и ключей 

 

Файлы сертификата и ключа клиента загружаем либо с помощью WEB-интерфейса:

Если какие-либо поля отсутствуют, то их можно добавить путём выбора нужного и нажатием кнопки "Добавить"



Либо через файловую систему, в этом случае пути сертификатов прописываем вручную согласно тому, куда загрузили.

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


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



Также необходимо создать текстовый файл в разделе /etc/openvpn с названием auth.cfg.

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


Из консоли настройку можно провести, открыв конфигурацию /etc/config/openvpn для редактирования:

nano /etc/config/openvpn

Приводим файл к нужному виду и сохраняем его:

config openvpn 'vpn1'
list remote '172.26.19.5 1194'
 - IP-адрес и порт удаленного Сервера OpenVPN
option auth_user_pass '/etc/openvpn/auth'
 - Расположение файла с логином/паролем для подключения к серверу
option client '1'
option dev 'tun0'
option proto 'tcp'
option auth 'sha1'
option resolv_retry 'infinite'
option nobind '1'
option persist_key '1'
option persist_tun '1'
option ca '/etc/openvpn/keys/ca.crt'
 - Расположение сертификата(если загрузка сертификата осуществлялась через файловую систему)
option verb '3'
option reneg_sec '0'
option route_nopull '1'
option mute_replay_warnings '1'
option enabled '1'
option cert '/etc/openvpn/keys/client.crt'
 - Расположение сертификата клиента (если загрузка сертификата осуществлялась через файловую систему)
option key '/etc/openvpn/keys/client.key'
 - Расположение ключа сертификата клиента(если загрузка сертификата осуществлялась через файловую систему)
list route '192.168.88.0 255.255.255.0 10.0.0.1'
 - Маршрут локальной сети за Сервером через IP-адрес туннеля


Сохраняем и возвращаемся к обзору соединений.

Далее необходимо включить сервис OpenVPN путём нажатия на кнопку Start





3.2 Настройка сетевого интерфейса и межсетевой зоны


В разделе "Сеть" -> "Интерфейсы" необходимо нажать "Добавить новый интерфейс"

В появившемся окне необходимо заполнить следующее:

- Имя нового интерфейса - Имя интерфейса

- Протокол нового интерфейса - Неуправляемый

- Включить следующий интерфейс - Пользовательский интерфейс tun0

После создания нового интерфейса необходимо перейти в его настройки.

В разделе "Расширенные настройки" необходимо установить пункт "Запустить при загрузке" и убрать пункт "Use builtin IPv6-management".

В разделе "Настройка межсетевого экрана" необходимо создать новую сетевую зону.

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


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


Перейдём в раздел "Сеть" -> "Межсетевой экран" и откроем для редактирования созданную ранее зону.

Необходимо задать следующие настройки:

- Имя 

- Входящий трафик - принимать

- Исходящий трафик - принимать

- Перенаправление - принимать

- Поставить галочку на пункте "Маскарадинг"

- Выбрать ранее созданную сеть

- Установить разрешение на перенаправление в зону назначения - LAN

- Установить разрешение на перенаправление в зону источника - LAN


После установки успешного соединения клиента OpenVPN с удаленным сервером Вы можете наблюдать работу данного соединения в разделе "Сеть" -> "Интерфейс".

На этом этап настройки Клиента завершен.


Client Linux (Ubuntu)


Для установки соединения OpenVPN-туннеля в операционной системе Linux необходимо первоначально установить необходимый пакет

sudo apt-get install openvpn


После установки пакета openvpn необходимо перенести созданные ранее ключи и сертификаты ca.crt, client.crt, client.key в папку /etc/openvpn

В нашем случае будет создана папка keys, куда будут помещены данные ключи. В итоговом варианте все ключи и сертификаты будут находиться в /etc/openvpn/keys.


Далее в папке openvpn необходимо создать текстовый файл auth.cfg (обратите внимание, расширение также необходимо изменить). Данный файл необходимо открыть текстовым редактором и внести в него 2 строчки: 1 - логин клиента 2- пароль клиента, которые ранее были заданы на сервере.

Также в папке config необходимо создать файл client.cfg. Данный файл будет содержать в себе конфигурацию клиента для подключения к удаленному серверу:

remote '172.26.19.5 1194' - IP-адрес и порт удаленного Сервера
auth-user-pass /etc/openvpn/auth
 - Расположение файла с логином/паролем для авторизации на сервере
client
dev tun
proto tcp
 - Для работы с OpenVPN сервером на MikroTik, только TCP
auth sha1
nobind
persist-key
persist-tun
ca /etc/openvpn/keys/ca.crt
 - Расположение сертификата
verb 7
cert /etc/openvpn/keys/client.crt
 - Расположение сертификата Клиента
key /etc/openvpn/keys/client.key
 - Расположение ключа Клиента
route 192.168.88.0 255.255.255.0 10.0.0.1
 - Маршрут локальной сети за роутером, через IP-адрес созданного туннеля
log /vat/log/openvpn.log  


После этого сохраняем изменения и перезапускаем службу OpenVPN:

/etc/init.d/openvpn restart


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

openvpn --config /etc/openvpn/client.cfg

Далее у Вас произойдёт установка соединения с OpenVPN Сервером и появится туннель

На этом этап настройки OpenVPN Клиента завершен!


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

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

Как изменить IP адрес роутера и раздаваемые IP адреса?

Как изменить APN?


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

Роутеры TELEOFIS GTX300/400. Краткое руководство по эксплуатации

Модели роутеров на сайте TELEOFIS