==== Описание настройки, генерации и отзыва ключей для 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