OpenVPN - технология виртуальной частной сети используемая для создания шифрованных каналов связи. Она позволяет устанавливать защищенные соединения используя библиотеку OpenSSL. OpenVPN быстрое, надежное и безопасное решение для создания VPN. Итак рассмотрим настройку OpenVPN сервера и клиентов на Windows.
Для начала скачаем с официального сайта файл openvpn-install в зависимости от ОС 32-bit или 64-bit.
Настройка 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-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 работает!!!