Установка и настройка OpenVPN на Windows (2016, v2.4.0)
Устанавливаем актуальную на момент написания чтива версию openvpn-install-2.4.0-I602.exe, отмечаем флажком установку скриптов для работы с сертификатами. Если на этапе установки будет вопрос об установке драйвера виртуального сетевого адаптера — соответственно ставим.
Открываем командную строку (от администратора), переходим в каталог OpenVPN\easy-rsa
Подготовка:
init-config.bat — заменяет vars.bat дефолтным
clean-all.bat — чистит каталог с ключами от предыдущих генераций + кладет туда дефолтный serial и index.txt
После того как открыли командную строку, запускаем vars.bat (чтобы загрузить переменные)
При выполнении команд внимательно читаем что будет отвечено в ответ — ошибки скорее всего будут — либо гуглится, либо смотрим пути!
Чтобы меньше вылезало косяков — проверяем пути в vars, особенно переменная каталога с ключами + путь к openssl-1.0.0.cnf, наличие файлов serial и index.txt в каталоге keys… доступ на запись в данной папке.
Пример файла vars.bat:
set HOME=c:\OpenVPN\easy-rsa
set KEY_DIR=c:\OpenVPN\easy-rsa\keys
set KEY_CONFIG=c:\OpenVPN\easy-rsa\openssl-1.0.0.cnf
set OPENSSL_CONF=c:\OpenVPN\easy-rsa\openssl-1.0.0.cnf
set KEY_SIZE=2048
set KEY_COUNTRY=RU
set KEY_PROVINCE=Msk
set KEY_CITY=Msk
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@mail.ru
set KEY_OU=ou_name
set KEY_CN=cn_name
set KEY_NAME=ovpn_keyname
set PKCS11_MODULE_PATH=dummy
set PKCS11_PIN=dummy
Приступаем:
vars.bat
* инициализирует переменные
build-dh.bat
* создает ключ Диффи-Хельмана. должны появиться файлы dh2048.pem …
build-ca.bat
На вопросы нажимаем Enter, если нужное вписали в vars.bat
* должны создаться ca.crt, ca.key
build-key-server.bat server ovpnserv
Жмем Enter до появления вопросов, где пишем Y:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
* должны создаться server.crt, server.csr, server.key
build-key.bat client1
Жмем Enter до появления вопросов, где пишем Y:
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
* должны создаться client1.crt, client1.csr, client1.key
PS. после правки vars не забываем его еще раз запустить в консоли. так же следим, чтобы файлы создавались не нулевого размера.
Возможные ошибки:
Если при выполнении build-dh напишет: WARNING: can’t open config file: /etc/ssl/openssl.cnf, нужно добавить в vars.bat
set OPENSSL_CONF=%ProgramFiles%\OpenVPN\easy-rsa\openssl-1.0.0.cnf
так же лучше указать полный путь переменной HOME
Если увидите что-то подобное при build-key-server: unknown option Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
Нужно смотреть на пути, иногда указывать абсолютные в openssl-1.0.0.cnf и build-key-server.bat. Если в путях есть пробелы — путь берем в кавычки, ставим двойные слеши — лучше избегать пробелы и ни в коем случае не допускать кириллических путей!
Если увидите что-то подобное: Sign the certificate? [y/n]:y failed to update database TXT_DB error number 2
В файле index.txt.attr
Находим строку:
unique_subject = yes
и меняем yes на no.
С генерацией пока что все.
Конфиг сервера (server.ovpn):
local 192.168.1.2
dev tap
proto udp
port 1194
tls-server
comp-lzo
dh dh2048.pem
ca ca.crt
cert server.crt
key server.key
server 10.10.10.0 255.255.255.0
keepalive 10 60
status openvpn-status.log
log openvpn.log
persist-key
persist-tun
verb 3
; файлики кладем в папку с конфигом dh2048.pem server.*…
Конфиг клиента (client1.ovpn):
client
remote server_ip 1194
dev tap
proto udp
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
persist-key
persist-tun
status openvpn-status.log 1
status-version 3
log-append openvpn-client.log
verb 3
; клиенту даем файлики ca.crt client1.crt client1.key
PS. Клиента и сервера не забываем запускать от администратора. Так же есть возможность сервер, да и клиент запускать как службу, чтобы поднимался сразу после запуска системы и не заботил пользователя поднятием туннеля. Можно ключи вписать в файл конфига, чтобы клиентам не давать пачку файлов, а все было в одном. Об этом возможно как-нибудь напишу.
PSS. вначале пытался собрать все свои черновые статейки в одну, но потом забил на это огромный прибор и начал писать с нуля. Постоянно вылетали разные ошибки на этапах генерации или подключения. Забрасывал-возвращался к этому вопросу и через пару недель можно сказать что оно таки подошло к финалу. Но за это время когда нужно было срочно поднять туннель — пару раз это с чуть большей легкостью заводилось на линуксе, а под виндовс вопрос откладывался и откладывался 🙂
====
Ошибка: OpenVPN TAP adapter failed
В системе нет виртуального сетевого адаптера.
Ошибка:
====
Фичи
Как выдавать конкретным клиентам OpenVPN статические адреса.
Как вписать сертификаты в конфиг OpenVPN.
Правильное убийство сертификатов OpenVPN.
Настройка подключения к OpenVPN серверу на роутере с прошивкой AsusWRT-Merlyn.
Как запустить подключение к OpenVPN серверу с определенным конфигом…
Еще почитать:
https://habrahabr.ru/post/233971/
Добавить комментарий