Настройка OpenVPN сервера и клиентов на Windows

OpenVPN - технология виртуальной частной сети используемая для создания шифрованных каналов связи. Она позволяет устанавливать защищенные соединения используя библиотеку OpenSSL. OpenVPN быстрое, надежное и безопасное решение для создания VPN. Итак рассмотрим настройку OpenVPN сервера и клиентов на Windows.

Настройка OpenVPN сервера на Windows


Для начала скачаем с официального сайта файл openvpn-install в зависимости от ОС 32-bit или 64-bit.

Устанавливаем OpenVPN на компьютер, который будет использоваться в качестве сервера. При установке отмечаем все пункты.

Указываем путь установки OpenVPN. По умолчанию C:\Program Files\OpenVPN.

Соглашаемся с установкой TAP адаптера.

Жмем Next.

И Finish.


После установки перейдем в каталог C:\Program Files\OpenVPN\easy-rsa и найдем файл vars.bat.sample. Из названия файла vars.bat.sample удалим .sample и откроем получившийся файл vars.bat с помощью блокнота.


Тут, по желанию можно отредактировать последние 10 строк.
set KEY_COUNTRY=RU
set KEY_PROVINCE=RU
set KEY_CITY=Moscow
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@mail.ru
set KEY_CN=changeme
set KEY_NAME=changeme
set KEY_OU=changeme
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

Далее заходим в управление компьютером → службы → и находим OpenVPN Service → ставим тип запуска автоматически, нажимаем применить и запустить.

Запускаем командную строку от администратора, для этого открываем Пуск → Все программы → Стандартные → и нажимаем правой кнопкой на командную строку → запустить от имени администратора.

Набираем в командной строке cd "C:\Program Files\OpenVPN\easy-rsa" и жмем Enter.

Далее набираем vars и также Enter.

Запустим команду clean-all.

Создадим сертификат сервера Root CA набрав build-ca. И заполняем параметры для сертификата.

Создадим ключ Диффи Хельмана командой build-dh.

Создадим сертификат сервера командой build-key-server server.


Далее будем создавать сертификаты для клиентов командой build-key имя-клиента. Имена создаваемых клиентов должны быть уникальны. 


Теперь созданные сертификаты можно увидеть в C:\Program Files\OpenVPN\easy-rsa\keys.


После закрытия командной строки, для генерации новых клиентов необходимо заново запускать командную строку от администратора и вводить команды: cd "C:\Program Files\OpenVPN\easy-rsa",  vars, build-key имя-клиента.

Дальше скопируем файлы ca, server, server.key и dh1024.pem в папку C:\Program Files\OpenVPN\config. Также скопируем файл server из C:\Program Files\OpenVPN\sample-config в C:\Program Files\OpenVPN\config и отредактируем его с помощью блокнота.

# Тип сервер
mode server 
# Туннель tun
dev tun 
# Протокол
proto tcp 
# Порт который использует впн
port 1197
# Ключи и сертификаты
ca ca.crt
cert server.crt
key server.key 
dh dh1024.pem
# Пул адресов для клиентов
server 192.168.100.0 255.255.255.0
# Грубо говоря экономим адреса
topology subnet
# чтобы клиенты видели друг друга
client-to-client
# Немного улучшит пинг
mssfix
# Время жизни клиентов, если не откликнулся — отключает
keepalive 10 120
# Уровень отладки
verb 3 

Теперь, для того чтобы клиенты OpenVPN имели доступ с ресурсам в локальной сети за OpenVPN сервером включим маршрутизацию на компьютере с OpenVPN сервером. Для этого запустим редактор системного реестра через меню поиска в пуске (regedt32.exe) и откроем следующий раздел: 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и в параметре IPEnableRouter укажем значение: 1. Затем перезапустим компьютер.

На этом настройка компьютера OpenVPN сервера закончена. Откроем сетевые подключения и видим новое подключение по локальной сети с IP адресом 192.168.100.1, данную сеть мы указали в конфигурации server.

Теперь надо перенаправить на интернет маршрутизаторе выбранный нами порт для работы с OpenVPN, указанный в конфигурационном файле server (в нашем случае 1197 tcp) до нашего OpenVPN сервера. Также, чтобы OpenVPN клиенты получили доступ к ресурсам нашей сети нужно на маршрутизаторе (или основном шлюзе сети) указать что сеть 192.168.100.0/24 находится за OpenVPN сервером.

Настройка OpenVPN клиента на Windows


Установим OpenVPN. Все значения оставим по умолчанию.

Соглашаемся с установкой TAP адаптера.

Далее скопируем файлы: ca, test, test.key с OpenVPN сервера в каталог клиента C:\Program Files\OpenVPN\config. Скопируем файл client из C:\Program Files\OpenVPN\sample-config в C:\Program Files\OpenVPN\config и отредактируем его с помощью блокнота.

client
dev tun
proto tcp
# Адрес и порт сервера
remote 95.95.95.95 1197
# Ключи должны лежать в папке с конфигом
ca ca.crt
cert test.crt
key test.key
nobind
persist-key
persist-tun
verb 3
# Добавление маршрутов
route-method exe
route-delay 5
route 192.168.1.0 255.255.255.0 192.168.100.1

Далее заходим в управление компьютером → службы → и находим OpenVPN Service → ставим тип запуска автоматически, нажимаем применить и запустить.

На этом настройка компьютера с OpenVPN клиентом закончена. Откроем сетевые подключения и видим новое подключение по локальной сети с IP адресом 192.168.100.10.

Запустим ping с OpenVPN клиента до нашего OpenVPN сервера. Как видим отправлено 4, получено 4, потеряно 0. OpenVPN работает!!!