==== Описание настройки, генерации и отзыва ключей для OVPN ====
[[https://youtu.be/TUOaODRqYXA|Видео]]
=== Установка ===
* Скачиваем дистрибутив https://openvpn.net/ - раздел Community - Downloads версия 2.4.9
* На ПК должен быть установлен Total Commander и NotePad++ для более удобной работы
* Устанавливаем дистрибутив, ставим галки EasyRSA и TAP по необходимости
* Проверяем наличие в переменной PATH пути C:\Program Files\OpenVPN\bin если нет добавляем
=== Генерация ключей и сертификатов ===
Если ключи и сертификаты были сгенерированы ранее и нужно добавитьили отозвать клиентский сертификат, то
- стадию генерации общих ключей и сертификатов пропускаем
- удаляем все из каталога C:\Program Files\OpenVPN\easy-rsa\keys
- копируем файлы для генерации из DropBox\ITMS\OPENVPN__client_Config\Папка клиента\files_for_gen в C:\Program Files\OpenVPN\easy-rsa\keys
- действуем по инструкции в части генерации или отзыва сертификатов для клиента
Описание для первоначальной генерации ключей и сертификатов.
* Открываем консоль от имени Администратора и переходим в каталог C:\Program Files\OpenVPN\easy-rsa
* Генерируем общие ключи и сертификаты:
* Открываем консоль от имени Администратора
* Переходим в каталог C:\Program Files\OpenVPN\easy-rsa
* Подготавливаем среду запуска
* Запускаем init-config.bat
* Создаем пустые файлы индекса и серий
* Запускаем vars
* Запускаем clean-all
* Генерируем корневой сертификат и ключ ca.crt и ca.key
* Запускаем vars
* Запускаем build-ca
* Генерируем транспортный ключ tls
* Переходим в каталог cd C:\Program Files\OpenVPN\bin
* Запускаем openvpn --genkey --secret "C:\Program Files\OpenVPN\easy-rsa\keys\ta.key"
* Генерируем ключи и сертификаты для сервера
* Генерируем ключ Диффи Хелмана
* Запускаем vars
* Запускаем build-dh
* Генерируем сертификат и ключ
* Запускаем vars
* Запускаем build-key-server <имя сервера>
* Генерируем ключи и сертификаты для клиента
* Генерируем сертификат и ключ
* Запускаем vars
* Запускаем build-key <имя клиента>
* Заполнение полей при генерации сертификата:
* /C=RU
* /ST=PK
* /L=Vl
* /O=EDW
* /OU=radkevich_v
* /CN=radkevich_v
* /name=radkevich_Vitalyi
* /emailAddress=s@itms.su
* /opt_org_name = edw
=== Отзыв сертификатов ===
* [[https://openvpn.net/community-resources/revoking-certificates/|OVPN_web]]
* Открываем консоль от имени Администратора и переходим в каталог C:\Program Files\OpenVPN\easy-rsa
* Запускаем vars
* Запускаем revoke-full <имя клиента>
* Проверить последнюю строку вывода, чтобы убедится в том что сертификат отозван (verify last line of output confirms revokation)
* Скопировать файл crl.pem в каталог файлов сервера
* Убедиться в том, что конфиг сервера содержит незакомментированную строку "crl-verify" с указанием пути к файлу crl.pem
* Для скорейшего применения настроек перезапустить службу сервера OpenVPN
=== Описание общих файлов, файлов клиента и файлов сервера ===
^ Файлы для сервера ^^^^^
^ ^ Сервер ^ Клиент ^ Секретно да/нет ^ Пояснение ^
^ ca.crt | да | да | нет | |
^ dh{n}.pem | да | нет | нет | |
^ server.crt | да | нет | нет | |
^ server.key | да | нет | да | |
^ ta.key | да | да | нет | |
^ Файлы для клиента ^^^^^
^ ^ Сервер ^ Клиент ^ Секретно да/нет ^ Пояснение ^
^ ca.crt | нет | да | нет | |
^ client1.crt | нет | да | нет | |
^ client1.key | нет | да | да | |
^ ta.key | нет | да | нет | |
^ Файлы для генерации новых ключей и сертификатов ^^
^ ^ Пояснение ^
^ ca.crt | |
^ ca.key | |
^ index.txt | |
^ index.txt.attr | |
^ serial | |
=== Типовой конфиг для сервера ===
Полный вариант в каталоге: C:\Program Files\OpenVPN\sample-config\server.ovpn
# Which TCP/UDP port should OpenVPN listen on?
port 1194
# TCP or UDP server?
proto udp
# "dev tun" will create a routed IP tunnel
dev tun
# SSL/TLS
ca key\\ca.crt
cert key\\server.crt
key key\\server.key # This file should be kept secret
# Diffie hellman parameters.
dh key\\dh2048.pem
#TLS AUTH key
tls-auth key\\ta.key
# Configure server mode and supply a VPN subnet
server 10.10.14.0 255.255.255.0 # Используй свободную подсеть (14 принадлежит Эдельвейсу)
# Maintain a record of client <-> virtual IP address associations in this file.
ifconfig-pool-persist ipp.txt
Режим подключения к серверу нескольких клиентов по одному сертификату
duplicate-cn
=== Типовой конфиг для клиента ===
Полный вариант в каталоге: C:\Program Files\OpenVPN\sample-config\client.ovpn
# Specify that we are a client
client
# Use the same setting as you are using on the server.
dev tun
# Use the same setting as you are using on the server.
proto udp
# The hostname/IP and port of the server.
remote 8.8.8.8 6011 # Обратить внимание на номер порта 6011 для проброса 1194 прямой
# Keep trying indefinitely to resolve the host name of the OpenVPN server.
resolv-retry infinite
# Most clients don't need to bind to # a specific local port number.
nobind
# Try to preserve some state across restarts.
persist-key
persist-tun
# SSL/TLS parms.
# Verify server certificate by checking that the certicate has the correct key usage set.
remote-cert-tls server
# Select a cryptographic cipher.
cipher AES-256-CBC
# Set log file verbosity.
verb 3