Перейти к содержимому

Как отозвать сертификат openvpn

  • автор:

Записки IT специалиста

Система клиентского доступа в OpenVPN построена вокруг инфраструктуры открытых ключей (PKI) и основным средством идентификации пользователя является сертификат. Располагая действительным сертификатом клиент может подключиться к любому серверу, использующему сертификаты вашего центра сертификации (CA). Если доступ пользователя необходимо прекратить, то выданный ему сертификат следует отозвать. В данной статье мы рассмотрим процесс отзыва сертификатов для различных версий Easy-RSA на платформах Windows и Linux, а также настройку OpenVPN севера для проверки сертификатов на отзыв.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Easy-RSA 2 Linux

Вторая версия Easy-RSA наиболее часто используется совместно с OpenVPN, так как входит в состав большинства актуальных на данный момент дистритбутивов. В нашем случае будет рассматриваться Ubuntu 18.04, но серьезных отличий с иными Linux системами нет, так как Easy-RSA это просто набор скриптов, облегачающий работу с OpenSSL.

Обычно корневая директория PKI находится в каталоге настроек OpenVPN — /etc/openvpn/easy-rsa, здесь и далее примем такое расположение как умолчание. Прежде чем выполнять отзыв, Easy-RSA потребуется немного настроить, откройте файл @openssl.conf и приведите к следующему виду строку:

RANDFILE = /etc/openvpn/easy-rsa/keys/.rnd

Ниже найдите опцию, которая задает срок действия списка отозванных сертификатов, по умолчанию это 30 дней, после чего его нужно будет перевыпустить, имеет смысл установить более длительный срок:

default_crl_days= 30

Сохраните изменения, после чего создайте указанный файл:

touch /etc/openvpn/easy-rsa/keys/.rnd

Теперь можно приступать к отзыву, для этих целей используется скрипт revoke-full. Перейдем в директорию Easy-RSA:

cd /etc/openvpn/easy-rsa
source ./vars

И выполним отзыв, для этого нам нужно знать CN (Commom Name) сертификата, в нашем случае это ivanov:

./revoke-full ivanov

OpenVPN-Revoking-Certificates-001.png

Сообщение:

error 23 at 0 depth lookup: certificate revoked

не является ошибкой! Оно сообщает о том, что проверка сертификата не увенчалась успехом по причине его отзыва.

После выполнения данной команды впервые в каталоге /etc/openvpn/easy-rsa/keys появится файл crl.pem — список отозванных сертификатов. Данный файл будет обновляться после каждого успешного отзыва.

Easy-RSA 2 Windows

В Windows никаких дополнительных настроек производить не нужно, однако также рекомендуется увеличить срок действия CRL. Каталог Easy-RSA обычно располагается внутри каталога установки OpenVPN, по умолчанию это C:\Program Files\OpenVPN\easy-rsa. Для измненения срока действия откройте файл openssl-1.0.0.cnf и измените опцию, указав нужное количество дней:

default_crl_days= 30

Затем перейдем в каталог Easy-RSA (так как он является системным, то командная строка должна быть запущена от имени Администратора):

cd "C:\Program Files\OpenVPN\easy-rsa"
vars
revoke-full ivanov

OpenVPN-Revoking-Certificates-002.png

Результатом выполнения команды также будет создание или обновление файла списка отозванных сертификатов — crl.pem.

Easy-RSA 3 Linux

Новая версия Easy-RSA пока не имеет широкого распространения и присутствует в ограниченном количестве новых дистрибутивов, в частности в Debian 10. Приемы работы с ней значительно отличаются от Easy-RSA 2 и мы посвящали этому отдельную статью, в которой рассматривали в том числе и отзыв сертификатов.

В Easy-RSA 3 для отзыва сертификатов и создания/обновления списка отозванных сертификатов предназначены разные команды, поэтому вы можете сформировать CRL заранее и подключить его к конфигурации OpenVPN не дожидаясь отзыва.

Будем также считать, что директория Easy-RSA расположена в /etc/openvpn/easy-rsa, сразу перейдем в нее:

cd /etc/openvpn/easy-rsa

Откроем файл vars, найдем и раскомментируем в нем следующую опцию, которая задает срок действия CRL, по умолчанию установлено 180 дней, укажите нужное вам значение:

set_var EASYRSA_CRL_DAYS 180

Затем сформируем список отозванных сертификатов:

./easyrsa gen-crl

Итогом выполнения данной команды будет появление файла crl.pem в директории pki.

Для отзыва сертификата выполните (предварительно перейдя в директорию Easy-RSA):

./easyrsa revoke ivanov

В данном случае вам потребуется явно подтвердить отзыв, введя yes на запрос утилиты.

OpenVPN-Revoking-Certificates-003.png

После отзыва сертификата вам потребуется обновить список CRL, для этого еще раз выполните:

./easyrsa gen-crl

Еще раз напомним, что для отзыва сертификатов мы должны указать их CN, поэтому при их создании задавайте им осмысленные имена, чтобы потом не пришлось угадывать, как называется сертификат Иванова: client123, client231 или client321. Также помните о том, что отзыв сертификата — действие необратимое, даже если вы повторно выпустите сертификат с этим же именем (CN), это будет совсем другой сертификат, который придется заново выдать пользователю.

Настройка OpenVPN для работы со списком отозванных сертификатов (CRL)

После того, как вы создали или обновили CRL (файл crl.pem) его следует скопировать в директорию с ключами OpenVPN сервера, это действие следует повторять после каждого отзыва сертификата (и обновления файла crl.pem).

Затем откроем конфигурацию сервера OpenVPN и добавим туда директиву, отвечающую за проверку отозванных сертификатов. В Linux:

crl-verify keys/crl.pem

В данном случае подразумевается, что ключи и CRL находятся в директории /etc/openvpn/keys.

crl-verify "C:\\Program Files\\OpenVPN\\keys\\crl.pem" 

Здесь мы также подразумеваем расположение каталогов по умолчанию, если это не так, то пути следует отредактировать.

При обновлении списка отозванных сертификатов достаточно просто скопировать с заменой файл crl.pem, если серверов несколько, то это нужно сделать на каждом из них.

После чего обязательно перезапустите службу OpenVPN сервера. Это нужно сделать потому, что OpenVPN перечитывает CRL один раз в час и в течении этого времени клиенты с отозванными сертификатами смогут продолжать подключаться и работать. В Linuх для этого выполните:

service openvpn restart

В Windows воспользуйтесь штатной оснасткой Службы.

Для клиента с отозванным сертификатом процесс подключения будет «зависать» на этапе согласования ключей и через 60 секунд выдавать в лог сообщение:

TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed

При этом клиент будет продолжать попытки подключения в соответствии со значениями опции keepalive. Если используется GUI, то клиент будет «вечно» висеть в желтом цвете.

OpenVPN-Revoking-Certificates-004.png

Чтобы ограничить число переподключений используйте в конфигурации клиента опцию:

connect-retry-max 25

Которая задает максимальное количество переподключений, в данном случае 25, однако вы должны указать ее заранее, передать на клиента с отозванным сертификатом вы ее не сможете. Мы рекомендуем всегда использовать эту опцию, когда вы настраиваете OpenVPN клиент на узлах, которые вы не контролируете, например, на домашних ПК или ноутбуках сотрудников.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

  1. Настраиваем VPN. Часть 1 — Общие вопросы
  2. Настраиваем VPN. Часть 2 — Cтруктура сети
  3. Настраиваем VPN сервер. Часть 3 — PPTP. Платформа Linux
  4. Настраиваем VPN сервер. Часть 4 — PPTP. Платформа Windows
  5. Настраиваем VPN сервер. Часть 5 — L2TP. Платформа Windows
  6. Ubuntu Server. Форвардинг PPTP средствами iptables
  7. Организация VPN каналов между офисами при помощи OpenVPN
  8. Организация каналов между офисами при помощи OpenVPN с дополнительной парольной защитой
  9. Организация VPN каналов между офисами. Маршрутизация
  10. Организация каналов между офисами при помощи OpenVPN на платформе Linux
  11. Настройка OpenVPN-сервера для доступа в интернет
  12. Настройка двух и более OpenVPN-серверов на одном сервере
  13. Почему тормозит OpenVPN? Размер буферов приема и отправки
  14. Как настроить несколько одновременных OpenVPN подключений в Windows
  15. SSH-туннели на службе системного администратора
  16. Создание ключей и сертификатов для OpenVPN при помощи Easy-RSA 3
  17. Настройка OpenVPN-сервера на роутерах Mikrotik
  18. Настройка VPN-подключения в роутерах Mikrotik
  19. OpenVPN объединяем ключи и конфигурацию клиента в один файл
  20. OpenVPN и инфраструктура открытых ключей (PKI)
  21. Настройка OpenVPN-сервера на роутерах Mikrotik
  22. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  23. Настраиваем PPTP или L2TP VPN-сервер при помощи RRAS в Windows Server
  24. Автоматическое добавление маршрутов для VPN-соединения в Windows

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

�� Как отозвать клиентский сертификат OpenVPN?

Иногда может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу VPN: сотрудник уволился, потерял ноутбук или просто нужно определенному сотруднику нужно закрыть доступ к внутренней корпоративной сети.

Причины могут быть разные. Как отозвать выданный ему клиентский сертификат Open VPN?

Для того чтобы отозвать сертификат/сертификаты нужно сформировать список отозванных сертификатов и сказать серверу OpenVPN чтобы тот при коннекте клиента сверялся с этим списком.

Для начала нужно зайти в директорию центра сертификации, который обычно находится в /etc/openvpn/easy-rsa/ и ввести команды:

cd /etc/openvpn/easy-rsa/ sudo su source /etc/openvpn/easy-rsa/vars

Далее, используя команду команду revoke-full отзываем конкретный сертификат:

./revoke-full client

где client — это имя сертификата. С этим именем в папке /etc/openvpn/easy-rsa/keys хранятся три файла:

client.key client.csr client.crt

Иногда, в старых версиях OpenVPN, может появляться ошибка 23. Это нормально, но в последней версии она не появляется. В результате работы будет создан файл crl.pem в директории keys с необходимой для отзыва сертификата информацией.

Для простоты можно переместить этот файл в директорию /etc/openvpn:

sudo cp keys/crl.pem /etc/openvpn

Затем открываем файл конфигурации сервера OpenVPN вашим любимым редактором текста, например nano:

sudo nano /etc/openvpn/server.conf

и в конец файла добавляем строку crl-verify. Теперь сервер OpenVPN будет проверять список отозванных сертификатов каждый раз, когда кто-то устанавливает соединение с сервером.

crl-verify /etc/openvpn/crl.pem

Сохраните и закройте файл.

Перезапустите OpenVPN для завершения процесса отзыва сертификата:

sudo service openvpn restart

Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя сертификат client.

Обобщая всё вышесказанное для отзыва дополнительных сертификатов нужно выполнить следующие шаги:

  • Сгенерировать новый список отозванных сертификатов используя команду source vars в директории /etc/openvpn/easy-rsa и выполняя команду revoke-full с именем клиента.
  • Скопироватье новый список отозванных сертификатов в директорию /etc/openvpn перезаписав тем самым старый список.
  • Перезапустите сервис OpenVPN.

Эта процедура может быть использована для отзыва любых созданных вами ранее сертификатов. Каждый раз при отзыве клиентского сертификата, формируется новый crl.pem. Это и есть список всех отозванных сертификатов.

�� Похожие статьи на сайте

  • Исправляем ошибку Resource temporarily unavailable (errno=11)
  • Ошибка при работе OpenVPN: error=CRL has expired
  • Ошибка 0E065068:configuration file routines:STR_COPY:variable has no value:conf_def
  • Установка OpenVPN в Debian/Ubuntu/Mint из стандартных репозиториев проекта OpenVPN
  • OpenVPN против WireGuard: краткое сравнение
  • TLS: soft reset — что означает это сообщение в логах OpenVpn
  • Как отозвать клиентский сертификат OpenVPN?
  • Создание инфраструктуры открытых ключей OpenVPN (easy-rsa)
  • Основные параметры OpenVPN

Подробная инструкция по OpenVPN v2.3.8 на Windows server 2008R2

Представляю подробную инструкцию по OpenVPN v2.3.8 на Windows server 2008R2 c уровнем шифрования TLS. Так же будут подробно описаны все параметры.

Настройка сервера

Для начала качаем дистрибутив с официально сайта. Запускаем установщик openvpn-install-2.3.8-I001-x86_64. В компонентах включаем следующее:

Указываем путь установки (Все дальнейшие действия будут ориентироваться на данный путь указанный в примере):

В процессе установке потребуется установить виртуальный сетевой адаптер, соглашаемся с установкой.

После успешной установки переходим в каталог “C:\Programm Files\OpenVPN” где создаем директорию “SSL” (каталог может называться как угодно, в последующих настройках будет использоваться именно этот каталог), в данном каталоге будут располагаться сертификаты сервера, алгоритмы шифрования и проверка подлинности клиента.

Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”, открываем с помощью notepad или notepad++ (более правильный вариант) «vars.bat» (скрипт, содержащий в себе параметры ответов для создания и генерации клиентских/серверных сертификатов и последующих настроек сервера).

В самом низу файла есть следующие параметры, которые нужно настроить под себя:

set KEY_COUNTRY=RU
set KEY_PROVINCE=MO
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set KEY_EMAIL=local@mos.local
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme rem Параметр по умолчанию
set PKCS11_PIN=1234 rem Параметр по умолчанию

В этом же каталоге “C:\Programm Files\OpenVPN\easy-rsa”, есть конфигурационный файл “openssl-1.0.0.cnf”, открываем его с помощью notepad или notepad++ (более правильный вариант) и изменяем настройку, отвечающую за срок жизни сертификатов, по умолчанию 365 дней, продлим срок жизни до 3650 дней.

default_days = 3650 # how long to certify for

Далее будем генерировать следующее:

ca.crt — Собственный доверенный сертификат (Certificate Authority — далее CA) для подписи клиентских сертификатов и для их проверки при авторизации клиента.
dh1024.pem — ключ Диффи Хельмана позволяющий двум и более сторонам получить общий секретный ключ
server.crt — сертификат сервера
server.key — ключ сервера
ta.key — дополнительный ключ для tls-аутентификации (повышение безопасности соединения), сервер и каждый клиент должны иметь копию этого ключа

Открываем командную строку и переходим в каталог “C:\Program Files\OpenVPN\easy-rsa”

cd C:\Program Files\OpenVPN\easy-rsa

Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами, в случае закрытия командной строки, команду “vars” придется вводить заного)

Вводим команду “clean-all” (Очищаем каталог “C:\Program Files\OpenVPN\easy-rsa\keys” c последующим созданием файла“index.txt” (база клиентов, она же database) и “serial” (ключ))

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “index.txt и serial”.

Вводим команду “openvpn —genkey —secret %KEY_DIR%\ta.key

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “ta.key”.

Вводим команду “build-dh” — генерация ключа Диффи Хельмана.

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “dh1024.pem”.

Вводим команду “build-ca” — генерация ключа центра сертификации (CA)
На все вопросы отвечаем по умолчанию нажатием клавиши Enter, эти параметры мы прописали в “vars.bat

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “ca.crt и ca.key”.

Вводим команду “build-key-server server” — генерация сертификата сервера.
На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до самого конца, эти параметры мы прописали в “vars.bat”, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должены создаться файлы “server.crt, server.key, server.csr”.

Вводим команду “build-key revokecrt” — команда для создания пользовательского сертификата, но в данном случае мы создаем произвольный сертификат “revokecrt” для последующей генерации файла “crl.pem”, который отвечает за проверку и последующий отзыв сертификатов. Теоретически данную процедуру можно проделать в самом конце и даже жить без нее, но тогда не сможем отзывать сертификаты и конфигурационный файл “server.ovpn” будет выглядеть иначе.

На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до вопросов Common Name и Name, на эти вопросы нужно отвечать согласно названию создаваемого сертификата пользователя, в нашем случае это произвольный сертификат “revokecrt” на оставшиеся вопросы нажимаем Enter, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “revokecrt.crt, revokecrt.key, revokecrt.csr

Вводим команду “revoke-full revokecrt” – команда отвечает за отзыв сертификата и последующего создания файла “crl.pem

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “crl.pem

Теперь создадим сертификат пользователя, аналогично сертификату “revokecrt” см. выше.
Вводим команду “build-key user1” – создаем сертификат пользователя с именем user1

На данном этапе работа с консолью закончена, можно закрыть окно и проверить содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “user1.crt, user1.key, user1.csr

Рекомендую создать папку “Clients” в любом удобном для Вас месте и скопировать туда необходимые файлы для передачи пользователям:

1 — ca.crt
2 — user1.crt
3 — user1.key
4 — ta.key

Также хочу обратить Ваше внимание на то, что содержимое папки “keys” удалять нельзя, при создании пользовательских сертификатов или любых изменениях в консоли, делайте копию данного каталога во избежание потерь или случайных генераций сертификатов сервера и обновления базы данных.

Копируем файлы сервера в раннее созданную папку “ssl” в каталоге “ C:\Program Files\OpenVPN\ssl”:

1 — ca.crt
2 — server.crt
3 — server.key
4 — dh1024.pem
5 — ta.key

Переходим в каталог “C:\Program Files\OpenVPN\config” и создадим файл конфигурации сервера “server.ovpn” со следующим содержимым:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем порт на котором будем слушать.
port 1194
# Указываем что это TLS сервер.
tls-server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к сертификату сервера.
cert «C:\\Program Files\\OpenVPN\\ssl\\Server.crt»
# Указываем путь к ключу сервера.
key «C:\\Program Files\\OpenVPN\\ssl\\Server.key»
# Указываем путь к ключю Диффи Хельмана
dh «C:\\Program Files\\OpenVPN\\ssl\\dh1024.pem»
# Указываем адресацию сети.
server 10.8.0.0 255.255.255.0
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Указываем не перечитавать файлы ключей при перезапуске туннеля.
persist-key
# Указываем путь к ключу безопасности и устанавливаем параметр сервера 0
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 0
# Разрешаем общаться клиентам внутри тоннеля.
client-to-client
# Указываем каталог с описаниями конфигураций каждого из клиентов.
client-config-dir «C:\\Program Files\\OpenVPN\\ccd»
# Указываем файл с описанием сетей между клиентом и сервером.
ifconfig-pool-persist «C:\\Program Files\\OpenVPN\\ccd\\ipp.txt»
# Указывает сверку по отозванным сертификатам.
crl-verify «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem»
# Указываем путь к логу со статусом.
status «C:\\Program Files\\OpenVPN\\log\\logopenvpn-status.log»
# Указываем путь к логу.
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
# Указывает, если в течении 120 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
keepalive 10 120
# Указываем уровень логирования.
verb 3

На сервере где будет крутиться OpenVPN необходимо проделать следующее:

1 – Если вы используете встроенный Брандмауэр Windows, создайте разрешающее правило для входящих и исходящих подключений по протоколу UDP на порт 1194.

2 – В службах сервера найдите OpenVPN Service и установите запуск на автоматический, это позволит автоматически запускаться сервису при перезагрузке сервера.

C рабочего стола сервера запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN GUI” откроется окно лога, если после запуска сервиса в пункте 2 нечего не произошло, нажимаем слева внизу подключиться и если все хорошо, мы должны увидеть следующее содержимое:

Сервис VPN на сервере запущен и готов принимать клиентов.

Настройка клиента

Запускаем ранее скаченный установщик openvpn-install-2.3.8-I001-x86_64, выбор компонентов оставляем по умолчанию, путь сохраняется прежний.

После успешной установки переходим в каталог “C:\Program Files\OpenVPN\config” и создаем файл конфигурации клиента “test.ovpn” со следующим содержимым:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к клиентскому сертификату.
cert «C:\\Program Files\\OpenVPN\\ssl\\user1.crt»
# Указываем путь к клиентскому ключу.
key «C:\\Program Files\\OpenVPN\\ssl\\user1.key»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3

C рабочего стола запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN”, откроется окно лога, нажимаем подключиться и если все хорошо, то мы увидим следующее:

Запускаем пинг на 10.8.0.1 и видим что сеть доступна (10.8.0.1 адрес, который получил виртуальный сетевой адаптер на сервере).
На сервере мы увидим лог подключения:

Собственно на этом этапе можно закончить и все в дальнейшем будет работать. Но я хотел бы еще кое-что добавить. Для уменьшения количества файлов у клиента и добавление еще одного пункта в безопасности (пароль на подключение), можно сделать следующее, на этапе создания сертификата пользователя на сервере, выполняем команду “build-key-pkcs12 user2” вместо “build-key user1”, выполняем все аналогично первой команде, до пункта Export Password, в этом пункте необходимо указать пароль, например 12345, данный пароль по факту назначается на сертификат “user2.p12”, при попытке подключения через “OpenVPN”, программа обращается к сертификату и требует пароль (зная пароль, его можно изменить, удалить и т.д).

В таком случае, комплект для пользователя будет состоять из:

1 – user2.p12
2 – ta.key

Конфигурационный файл “test.ovpn” должны быть следующего содержания:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к сертификату.
pkcs12 «C:\\Program Files\\OpenVPN\\ssl\\user2.p12»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3

Пробуем подключиться, вводим пароль 12345

Если все хорошо видим следующее:

Ну и на последок, как отозвать сертификат пользователя и вообще посмотреть список выданных сертификатов. Сам список храниться по следующему пути “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt”

Для того чтобы отозвать сертификат, заходим в командную строку. Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”:

cd C:\Program Files\OpenVPN\easy-rsa

Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами). Вводим команду для отзыва сертификата пользователя “revoke-full user2” (указываем название заведенного раннее пользователя).

После заходим в “index.txt” “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt” и видим, что сертификат отозван “R”.

Не готов сказать на 100%, но судя по описанию, файл “index.txt” проверяется каждый час, соответственно через час, сертификат будет заблокирован, ну или просто достаточно перезапустить сервис на сервере.

Еще рекомендую использовать отдельную учетную запись для службы “OpenVPN Service” и в случае если пользователи будут работать с этим сервером, где развернут VPN, обязательно уберите права у простых пользователей на каталог “C:\Program Files\OpenVPN”.

Всем спасибо, надеюсь, данная статься поможет многим, кто сталкивается с вопросами и не находил подходящих ответов, разжевал как мог.

openVPN Как правильно восстановить отозванный сертификат и возможно ли это вообще?

Создаю новый ключ всё отлично работает. Но я бы хотел иметь возможность отключать ключ и заново егоже включать. Это вообще возможно ? 2) Revoke existing user делаю ключ отзывается но уже навсегда а заного включить не могу . Если кто знает как помогите пожалуйста .

zaya86
04.06.21 13:10:49 MSK

Для комплектной утилиты работы с сертификатами я легко нашел по запросу «easy-rsa unrevoke» пару скриптов, и что у easy-rsa есть файл index.txt, где просто одна буква меняется и после достаточно перегенерировать crl.

XCA, вроде, может возвращать.

boowai ★★★★
( 04.06.21 13:16:00 MSK )
Последнее исправление: boowai 04.06.21 13:38:35 MSK (всего исправлений: 5)

поставь https://www.softether.org/ — там все делается кликами мыши

Jopich1
( 04.06.21 13:27:26 MSK )

Вот только что нашёл интересную статью . Но что то не разобрался я .

zaya86
( 04.06.21 14:03:43 MSK ) автор топика

Про бывал вот этот метод но он не работает.

V 230905132105Z 1413D732649AB6BB2883648CBA220B47 unknown /CN=server_3yGMcvK6GgOgXkmn R 230905132115Z 7FBAE96C815DB89399BCD8F9BAAAC095 unknown /CN=1 V 230905132124Z E33A80B702F18DFDD627E53ECA2AA1D1 unknown /CN=2 V 230905132130Z B7EEE49D749629813E52565A2C03B0AB unknown /CN=3 V 230906133035Z 4590ADAE7067F428D3AEEF5DF7CA7CAC unknown /CN=4

zaya86
( 04.06.21 18:00:06 MSK ) автор топика

Вам надо не сертификат отзывать а использовать client-config-dir (опции client-config-dir и ccd-exclusive).

В нужном каталоге создаете файл с именем клиента — он коннектится. Удаляете — не коннектится.

Nastishka ★★★★★
( 04.06.21 23:24:52 MSK )
Последнее исправление: Nastishka 04.06.21 23:25:05 MSK (всего исправлений: 1)

Тебе нужно удалить файл со списком отозванных сертификатов crl и перегенерировать его заново для всех сертификатов, которые должны быть отозваны, кроме того что нужно исключить.

После чего либо ждёшь час, либо сразу перезапускаешь OpenVPN.

Ну и слово «Пробовал» пишется слитно.

anonymous
( 04.06.21 23:42:33 MSK )

Примерно как оторвать тебе руки, а потом пришить их заново. В принципе возможно.

А вообще тебе нужны –client-connect и –disable.

anonymous
( 05.06.21 02:16:49 MSK )
Ответ на: комментарий от Nastishka 04.06.21 23:24:52 MSK

В client-config-dir создаем ( если его нет), файл с именем клиента, пишем в него строчку disable. Profit.

anc ★★★★★
( 05.06.21 08:24:34 MSK )

Вот мой конфиг сервреа.Создал в директории /etc/openvpn/ccd файл с названием 1.save в нём прописал disable сервак перезагрузил. Что ещё делаю не так? ключ у клиента не отключается.

port 443 proto udp dev tun user nobody group nogroup persist-key persist-tun keepalive 10 120 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push «dhcp-option DNS 8.8.8.8» push «dhcp-option DNS 8.8.4.4» push «redirect-gateway def1 bypass-dhcp» dh none ecdh-curve prime256v1 tls-crypt tls-crypt.key crl-verify crl.pem ca ca.crt cert server_3yGMcvK6GgOgXkmn.crt key server_3yGMcvK6GgOgXkmn.key auth SHA256 cipher AES-128-GCM ncp-ciphers AES-128-GCM tls-server tls-version-min 1.2 tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 client-config-dir /etc/openvpn/ccd status /var/log/openvpn/status.log verb 3

zaya86
( 05.06.21 10:33:31 MSK ) автор топика
Ответ на: комментарий от anc 05.06.21 08:24:34 MSK

Можете чуть подробней. Я в этом новичок. Я ниже описал всё что я сделал . Заранее спасибо.

zaya86
( 05.06.21 10:58:01 MSK ) автор топика
Ответ на: комментарий от zaya86 05.06.21 10:58:01 MSK

Создал в директории /etc/openvpn/ccd файл с названием 1.save

У вас клиент называется (имеет common name) 1.save ?

anc ★★★★★
( 05.06.21 11:32:44 MSK )
Ответ на: комментарий от anc 05.06.21 11:32:44 MSK

R 230905132115Z 7FBAE96C815DB89399BCD8F9BAAAC095 unknown /CN=1

у меня всего 4 ключа

всё больше нету .

zaya86
( 05.06.21 11:56:39 MSK ) автор топика
Ответ на: комментарий от zaya86 05.06.21 11:56:39 MSK

R 230905132115Z 7FBAE96C815DB89399BCD8F9BAAAC095 unknown /CN=1

Так это уже отозванный.

Создаем файл(если не существует) /etc/openvpn/ccd/2, в него добавляем одну строчку disable (не забыть про ентер в конце). Всё, клиент 2 не работает.

anc ★★★★★
( 05.06.21 12:08:14 MSK )
Ответ на: комментарий от anc 05.06.21 12:08:14 MSK

Создал файл но ключь у клиента работает. Сервак перезагрузил. создавал этой командой sudo nano /etc/openvpn/ccd/2

zaya86
( 05.06.21 12:37:43 MSK ) автор топика
Ответ на: комментарий от anc 05.06.21 12:08:14 MSK

Вот такой файл создался 2.save В нём написано disable

Что еще сделать чтоб ключ отключился?

zaya86
( 05.06.21 12:43:21 MSK ) автор топика
Ответ на: комментарий от zaya86 05.06.21 12:43:21 MSK

Мля, какое 2.save ? Я вам что написал?

Создаем файл(если не существует) /etc/openvpn/ccd/2

Где вы увидели тут .save ?

anc ★★★★★
( 05.06.21 12:49:47 MSK )
Ответ на: комментарий от anc 05.06.21 12:49:47 MSK

В каком формате файл создать. Я это делаю в первые сильно не пинайти .

zaya86
( 05.06.21 13:07:23 MSK ) автор топика
Ответ на: комментарий от zaya86 05.06.21 13:07:23 MSK

В каком формате файл создать. Я это делаю в первые сильно не пинайти .

В docx блин. В текстовом естессно.

anc ★★★★★
( 05.06.21 14:00:32 MSK )
Ответ на: комментарий от anc 05.06.21 14:00:32 MSK

создал 2.txt ключь включается также пробовал 2.docx не получается. Может удалёнку я вам дам ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *