Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных



Задача:

Необходимо организовать возможность подключения по OpenVPN к головному офису клиентов удаленного офиса, и клиентов подключенных непосредственно к сети Интернет. В головном офисе через интерфейс gi1/0/1 с белым IP адресом 10.10.0.10/8 у нас имеется выход в интернет.

Решение:

Первым делом настроим OpenVPN сервер на примере маршрутизатора ESR-200. Для этого нам понадобятся заранее выработанные сертификаты и ключи(ca.crt, dh.pem, server.key, client.key, server.crt, client.crt, ta.key).

Загрузим сертификаты на маршрутизатор. Для этого воспользуемся TFTP сервером (также можно загружать сертификаты и через FTP/SCP либо USB/SD).


  esr-200# copy tftp://192.168.16.10:/ca.crt certificate:ca/ca.crt
  esr-200# copy tftp://192.168.16.10:/dh.pem certificate:dh/dh.pem
  esr-200# copy tftp://192.168.16.10:/server.key certificate:server-key/server.key
  esr-200# copy tftp://192.168.16.10:/server.crt certificate:server-crt/server.crt
  esr-200# copy tftp://192.168.16.10:/ta.key certificate:ta/ta.key

Далее сама настройка:


   esr-200# config
   esr-200(config)# remote-access openvpn GenOffice                      //Создаем сервер и даем ему имя
   esr-200(config-openvpn-server)# network 10.10.100.0/24                //Определяем сеть из которой будут выделяться адреса клиентам
   esr-200(config-openvpn-server)# protocol tcp                          //Выбираем протокол по которому будет работать сервер (tcp/udp)
   esr-200(config-openvpn-server)# tunnel ip                             //Выбираем на каком уровне будет работать (l2 ethetnet/l3 ip)
   esr-200(config-openvpn-server)# encryption algorithm aes128           //Выбираем алгоритм шифрования
   esr-200(config-openvpn-server)# authentication algorithm sha-256      //Алгоритм аутентификации
   esr-200(config-openvpn-server)# certificate ca ca.crt                 //
   esr-200(config-openvpn-server)# certificate dh dh.pem                 //
   esr-200(config-openvpn-server)# certificate server-key server.key     //указываем загруженные ранее сертификаты 
   esr-200(config-openvpn-server)# certificate server-crt server.crt     //
   esr-200(config-openvpn-server)# certificate ta ta.key                 //
   esr-200(config-openvpn-server)# security-zone trusted                 //Указываем зону безопасности
   esr-200(config-openvpn-server)# route 192.168.1.0/24                  //Добавляем маршрут на сеть, которая будет доступна для клиентов
   esr-200(config-openvpn-server)# enable                                //Включаем сервер
       
  

Предположим что удаленному офису необходимо дать статический IP. Тогда для данного клиента (в примере используется имя сертификата udoffice) необходимо произвести следующие настройки:


    esr-200(config-openvpn-server)# username udoffice
    esr-200(config-openvpn-user)# ip address 10.10.100.202
    esr-200(config-openvpn-user)# exit
  

Если говорить о клиентах с интернета, то их много и необходимо, что бы они подключались через один сертификат. Для этого активируем функцию duplicate-cn:


    esr-200(config-openvpn-server)# duplicate-cn
    esr-200(config-openvpn-server)# end
    esr-200# commit
    esr-200# confirm
  

На этом настройка сервера завершена. Перейдем к настройке удаленного офиса. Предположем, что там установлен ESR-10. Загрузим на него сертификаты и настроим OpenVPN туннель:


  esr-10# copy tftp://192.168.16.10:/ca.crt certificate:ca/ca.crt
  esr-10# copy tftp://192.168.16.10:/dh.pem certificate:dh/dh.pem
  esr-10# copy tftp://192.168.16.10:/udoffice.key certificate:client-key/udoffice.key
  esr-10# copy tftp://192.168.16.10:/udoffice.crt certificate:client-crt/udoffice.crt
  esr-10# copy tftp://192.168.16.10:/ta.key certificate:ta/ta.key
  
  esr-10# config 
  esr-10(config)# tunnel openvpn 1
  esr-10(config-openvpn)# ip firewall disable
  esr-10(config-openvpn)# remote address 10.10.0.10
  esr-10(config-openvpn)# protocol tcp
  esr-10(config-openvpn)# tunnel ip
  esr-10(config-openvpn)# encryption algorithm aes128
  esr-10(config-openvpn)# authentication algorithm sha-256
  esr-10(config-openvpn)# certificate ca ca.crt
  esr-10(config-openvpn)# certificate dh dh.pem
  esr-10(config-openvpn)# certificate client-key udoffice.key
  esr-10(config-openvpn)# certificate client-crt udoffice.crt
  esr-10(config-openvpn)# certificate ta ta.key
  esr-10(config-openvpn)# enable

  

Все настройки клиента должны соответствовать наcтройкам сервера.


    esr-10(config-openvpn)# end
    esr-10# commit
    esr-10# confirm
  

Просмотреть статус подключенных клиентов на сервере можно командой show remote-access status openvpn. Статус туннеля на клиенте show tunnels status.

Пример конфигурации клиента Windows

Для подключение к OpenVPN серверу с ОС Windows необходимо установить дополнительное ПО. Пример конфигурации:


    client
    remote 10.10.0.10 1194
    proto  tcp
    dev    tun
    remote-cert-tls server
    ca       ca.crt
    cert     client.crt
    key      client.key
    tls-auth ta.key 1
    cipher AES-128-CBC
    auth SHA256
    verb 3
  

3 Комментариев

  1. Анонимный

    Не совсем понятно, как именно вытащить openvpn сервер в интернет? какие настрой нужно сделать в firewall? в dnat?

    1. Анонимный

      Ну, по идее - в security zone-pair untrusted self добавить правило, разрешающее подключение на порт OVPN-сервера (по умолчанию - 1194)

  2. Анонимный

    Результаты забега по граблям в связке Mikrotik <OVPN> ESR200:

    1. Поддержка UDP в OVPN-клиенте RouterOS появилась только в 7 версии, которая на текущий момент (сентябрь 2021) имеет статус RC4 (development)
    2. Поддерки TLS в OVPN-клиенте RouterOS нет и в седьмой версии, поэтому на OVPN-сервере ESR200 придется убрать из конфига строчку certificate ta ta.key- после этого оно начинает работать.