itms_docs:study:it:ovpn

Это старая версия документа!


Установка

  • Скачиваем дистрибутив https://openvpn.net/ - раздел Community - Downloads
  • На ПК должен быть установлен Total Commander и NotePad++ для более удобной работы
  • Устанавливаем дистрибутив, ставим галки EasyRSA и TAP по необходимости
  • Проверяем наличие в переменной PATH пути C:\Program Files\OpenVPN\bin если нет добавляем

Генерация ключей и сертификатов

Если ключи и сертификаты были сгенерированы ранее и нужно добавитьили отозвать клиентский сертификат, то

  1. стадию генерации общих ключей и сертификатов пропускаем
  2. удаляем все из каталога C:\Program Files\OpenVPN\easy-rsa\keys
  3. копируем файлы для генерации из DropBox\ITMS\OPENVPNclient_Config\Папка клиента\files_for_gen в C:\Program Files\OpenVPN\easy-rsa\keys - действуем по инструкции в части генерации или отзыва сертификатов для клиента Описание для первоначальной генерации ключей и сертификатов. * Открываем консоль от имени Администратора и переходим в каталог C:\Program Files\OpenVPN\easy-rsa * Генерируем общие ключи и сертификаты: * Открываем консоль от имени Администратора * Переходим в каталог C:\Program Files\OpenVPN\easy-rsa * Подготавливаем среду запуска * Запускаем <code>init-config.bat</code> * Создаем пустые файлы индекса и серий * Запускаем <code>vars</code> * Запускаем <code>clean-all</code> * Генерируем корневой сертификат и ключ ca.crt и ca.key * Запускаем <code>vars</code> * Запускаем <code>build-ca</code> * Генерируем транспортный ключ tls * Переходим в каталог <code>cd C:\Program Files\OpenVPN\bin</code> * Запускаем <code>openvpn –genkey –secret «C:\Program Files\OpenVPN\easy-rsa\keys\ta.key»</code> * Генерируем ключи и сертификаты для сервера * Генерируем ключ Диффи Хелмана * Запускаем <code>vars</code> * Запускаем <code>build-dh</code> * Генерируем сертификат и ключ * Запускаем <code>vars</code> * Запускаем <code>build-key-server <имя сервера></code> * Генерируем ключи и сертификаты для клиента * Генерируем сертификат и ключ * Запускаем <code>vars</code> * Запускаем <code>build-key <имя клиента></code> * Заполнение полей при генерации сертификата: * /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 === Отзыв сертификатов === * OVPN_web * Открываем консоль от имени Администратора и переходим в каталог C:\Program Files\OpenVPN\easy-rsa * Запускаем <code>vars</code> * Запускаем <code>revoke-full <имя клиента></code> * Проверить последнюю строку вывода, чтобы убедится в том что сертификат отозван (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 | | === Типовой конфиг для сервера === Полный вариант в каталоге: C:\Program Files\OpenVPN\sample-config\server.ovpn <code> # 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 </code> === Типовой конфиг для клиента === Полный вариант в каталоге: C:\Program Files\OpenVPN\sample-config\client.ovpn <code> # 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 </code> === Продление срока жизни файла отзыва сертификатов OVPN === * Если файл отзыва был сгенерирован с параметрами по дефолту (в файле openssl-1.0.0.cnf, строка default_crl_days), то срок его жизни 30 дней, далее подключение клиентов по Ovpn будет прервано, в логах сервера будет фигурировать такая ошибка: error=CRL has expired, подключение будет остановлено на этапе: <code> * Mon Nov 02 10:13:34 2020 VERIFY OK: depth=1, C=RU, ST=PK, L=VL, O=Edelweiss, OU=SRV, CN=SRV, name=CA, emailAddress=s@itbrigadir.ru * Mon Nov 02 10:13:34 2020 VERIFY KU OK </code> как будто сертификат отозван. * Нужно продлить срок файла отзыва. Для этого на локальном пк: * Переходим в каталог c:\Program Files\OpenVPN\easy-rsa\ * Открываем файл openssl-1.0.0.cnf исправляем срок жизни в строке default_crl_days например на 1000 дней * Из ДропБокса (e:\Dropbox\ITMS\OPENVPNclient_Config\14_Эдельвейс\files_for_certs\) копируем файлы для генерации сертификатов в каталог easy-rsa\keys
    • Запускаем консоль переходим в каталог c:\Program Files\OpenVPN\easy-rsa\
    • Команда vars
    • Команда пересоздания файла отзыва
openssl ca -gencrl -keyfile "c:\Program Files\OpenVPN\easy-rsa\keys\ca.key" -cert "c:\Program Files\OpenVPN\easy-rsa\keys\ca.crt" -out "c:\Program Files\OpenVPN\easy-rsa\keys\crl.pem" -config "c:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf"
  • Проверяем созданный файл отзыва, команда
openssl crl -inform PEM -in "c:\Program Files\OpenVPN\easy-rsa\keys\crl.pem" -text -noout
  • Копируем файлы обратно а ДропБокс с заменой
  • Копируем файл отзыва из ДропБокса на проблемный сервер, проверяем соединение.
  • itms_docs/study/it/ovpn.1604277848.txt.gz
  • Последнее изменение: 2020/11/02 03:44
  • anton