ФЭНДОМ


Подключение филиала по технологии OpenVPN на OS WindowsПравить

Цели и задачиПравить

  • Повысить уровень автоматизации системы отказоустойчивости впн сети, в сравнении с KerioVPN
  • Обеспечить возможность проброса Интернет в филиал через центральный канал с сохранением резервирования туннелей.
  • Подготовить платформу для отказа от Kerio

План переходаПравить

Подготовка центрального сервераПравить

  • Настройка на центральном шлюзе сервера OpenVPN (сертификатная авторизация)
    • Создание сертификатов и ключей сервера
    • Создание сертификатов и ключей клиента
    • Создание конфигурации параметров клиента
  • Настройка KWF на работу с OpenVPN

Подготовка сервера филиалаПравить

  • Установка ОпенВПН на сервере филиала
  • Настройка конфигурации и установка сертификата
  • Настройка KWF на работу с OpenVPN

Настройка центральной точкиПравить

1. Создание сертификатов и ключей сервераПравить

ПРИМЕР - gw-khb01

  • Генерируем CA
build-ca.bat
build-dh.bat
build-key-server.bat gw-khb01

2. Создание конфигурации сервераПравить

  • Внимание, если сервер openvpn будет работать совместно с клиентом openvpn (например до вышестоящей центральной точки) необходимо добавить дополнительныю виртуальную сетевую карту ovpn. Новый адаптер переименовать в ovpn-int. Создадим новый адаптер
"C:\Program Files\OpenVPN\bin\addtap.bat"

Создадим конфигурацию сервера

notepad c:\Program Files\OpenVPN\config\gw-khb01.ovpn
port 1194
proto udp
dev tun

# Привязка к виртуальной сетевой карте в Windows. 
# В данном случае, необходимо сетевую карту переименовать в ovpn-int
dev-node ovpn-int

# Пути до сертификатов и ключей относительно папки config
ca khb-keys/ca.crt
cert khb-keys/gw-khb01.crt
key khb-keys/gw-khb01.key
dh khb-keys/dh1024.pem

# Относительный путь и имя папки с маршрутами для виртуального коммутатора E3
client-config-dir ccd
client-to-client

persist-key
persist-tun

# Адреса служебной подсети (подложка)
server 10.0.43.0 255.255.255.0

# route 10.0.33.0 255.255.255.0
  route 10.0.34.0 255.255.255.0
# route 10.0.35.0 255.255.255.0
# route 10.0.36.0 255.255.255.0
# route 10.0.37.0 255.255.255.0
# route 10.0.38.0 255.255.255.0
# route 10.0.39.0 255.255.255.0
# route 10.0.40.0 255.255.255.0
# route 10.0.41.0 255.255.255.0
# route 10.0.42.0 255.255.255.0

# Отключить сжатие трафика, для экономии ресурсов ЦП
comp-lzo no

push "route 192.168.0.0 255.255.0.0"
push "route 10.0.0.0 255.0.0.0"

push "dhcp-option DNS 192.168.32.15"
 
ifconfig-pool-persist udp_ipp.txt
status udp_status.log

Настройка филиалаПравить

ПРИМЕР - gw-khb11, сервер обслуживающий сеть 10.0.42.0/24

1. Создание сертификатов и ключей клиента на стороне сервераПравить

Сперва необходимо убедится, что в каталоге ключей c:\Program Files\OpenVPN\easy-rsa\keys еще нет файлов для нужного филиала. Затем необходимо зайти в консоль сервера cmd и вополним:

cd "c:\Program Files\OpenVPN\easy-rsa"
vars.bat
build-key-pkcs12.bat gw-khb11

Все параметры подтверждаем по умолчанию кроме Common Name, его устанавливаем равным имени сервера:

Common Name (eg, your name or your server's hostname) []: gw-khb11

Затем подтверждаем подписи

>Sign the certificate? [y/n]:y
>1 out of 1 certificate requests certified, commit? [y/n] y

В каталоге c:\Program Files\OpenVPN\easy-rsa\keys должен появится файл gw-khb11.p12, его необходимо будет скопировать на клиентский компьютер.

2. Настройка параметров клиента на стороне сервераПравить

Основные параметры работы клиентской части настраиваются на стороне сервера и назначаются клиентам автоматически. Они общие для всех клиентов. Для того, что-бы настроить маршрутизацию до клиентской сети на стороне сервера, необходимо в конфигурационные файлы сервера добавить информацию о маршрутах:

C:\Program Files\OpenVPN\config\khb32.ovpn

необходимо добавить строку или раскоментировать строку

route 10.0.42.0 255.255.255.0

и создать файл для виртуального коммутатора

echo iroute 10.0.42.0 255.255.255.0 > "C:\Program Files\OpenVPN\config\ccd\gw-khb11"

3. Настройка на стороне клиентаПравить

notepad C:\Program Files\OpenVPN\config\gw-khb11.ovpn
client
dev tun
proto udp

# Адреса центрального филиала
remote 188.93.129.26
remote 95.143.8.42

# Проверять каждую секунду не отвалился ли канал и если да, то через 10 секунд выполнить перезапуск подключения
keepalive 1 10

# Отвязка от порта (позволяет запускать несколько клиентских OpenVPN подключений)
nobind

# Имя и путь до контейнера безопасности относительно пути с конфигурацией
pkcs12 gw-khb11.p12

# Перенаправить весь трафик Интернет, через центральный филиал назначив два маршрута 0.0.0.0/1 и 128.0.0.0/1
redirect-gateway def1

# Отключить сжатие трафика, для экономии ресурсов ЦП
comp-lzo no
  • Запуск и проверка

1. Необходимо перевести интерфейс OpenVPN в локальные интерфейсы в KWF и убедится, что есть правило, которое разрешает маршрутизацию между локальной сетью и OpenVPN

2. Необходимо разрешить серверу подключаться к центральному филиалу по порту UDP:1194

3. Остановить KerioVPN тунель до центрального филала

4. Запустить службу OpenVPN

Проблемы и решенияПравить

Не назначать общие маршруты конкретному клиентуПравить

В случае, если какому-то клиенту необходимо назначить индивидуальные маршруты и не назначать общие, необходимо на стороне сервера в файле ccd/имяклиента дописать например:

push-reset
push route 10.0.32.0 255.255.240.0

где push-reset, запрещает отдавать этому клиенту общие параметры назначаемые командой push в конфигурационном файле сервера

Не работает после перезагрузкиПравить

Вариант1Править

Случается, что при совместной работе KFW и Open-VPN появляется проблема. Суть её в том, что после перезагрузки сервера Open-VPN стартует, но не назначает адреса. Приходится вручную перезапускать службу.

  • Решение, выполнить в консоли. При этом, необходимо выполнять эту операцию локально, так-как после неё все параметры сетевых карт сбросятся и их придется настраивать вручную повторно. А также возможно придется переустановить Winroute!
netsh int ip reset logfile.txt
netsh winsock reset catalog

Вариант2Править

Решение проблемы Openvpn+Winroute (на винде,серверной стороне, openvpn иногда при старте неможет получить айпи на свой интерфейс)

В конфиге опенвпн на строне сервера: ip-win32 netsh

Вариант 3Править

Создается файл notepad C:\Program Files\OpenVPN\vpn.cmd

ping -n 15 127.0.0.1 > nul
netsh interface set interface name="ovpn" admin=DISABLED
netsh interface set interface name="ovpn" admin=ENABLED
net stop OpenVPNService
ping -n 15 127.0.0.1 > nul
net start OpenVPNService
  • Тут ovpn имя адаптера OpenVPN, если оно отличается надо или переименовать или исправить в скрипте на другое, но написанное латинскими буквами.

Скрипт добавляется в диспетчер назначенных заданий на автозагрузку при загрузке системы.