Описание настройки, генерации и отзыва ключей для OVPN
Установка
- Скачиваем дистрибутив 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
Отзыв сертификатов
- Открываем консоль от имени Администратора и переходим в каталог 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 | нет | да | нет | <ca></ca> |
client1.crt | нет | да | нет | <cert> </cert> |
client1.key | нет | да | да | <key> </key> |
ta.key | нет | да | нет | <tls-auth> </tls-auth> |
Файлы для генерации новых ключей и сертификатов | |
---|---|
Пояснение | |
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. <ca></ca> <cert></cert> <key></key> <tls-auth></tls-auth> # 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