Задача:
Необходимо организовать возможность подключения по 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 Комментариев
Анонимный
Не совсем понятно, как именно вытащить openvpn сервер в интернет? какие настрой нужно сделать в firewall? в dnat?
Анонимный
Ну, по идее - в security zone-pair untrusted self добавить правило, разрешающее подключение на порт OVPN-сервера (по умолчанию - 1194)
Анонимный
Результаты забега по граблям в связке Mikrotik <OVPN> ESR200:
certificate ta ta.key
- после этого оно начинает работать.