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

Как отозвать сертификат 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 сертификат на ER-6P

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Оцените эту тему

kvant355
новичок

25 Дек 2021 1 0 3 39

Всем привет.
Подскажите пожалуйста, как отозвать сертификат пользователя (клиента) в openVPN сервере на edgerouter ER-6P

я в этом вопросе профан

OpenVPN сервер настраивался вот по этому мануалу

Поделиться:

Автор Похожие темы Раздел Ответов Дата
K udm-pro VPN (Wireguard, OpenVPN) UniFi 3 23 Июн 2023
I UDM Pro и OpenVPN UniFi 14 25 Окт 2022
конфиг openvpn для unifi UBIQUITI Общий форум 8 10 Авг 2020
H OpenVPN работа для определенных сайтов Маршрутизаторы 1 24 Июл 2019
N Маршрутизация OpenVPN edgerouter Маршрутизаторы 12 21 Апр 2018
M EdgeRouter X, Dual WAN + OpenVPN Маршрутизаторы 2 20 Апр 2018

easy rsa: CRL и отзыв сертификатов

В easy rsa отозвать сертификат безопасности можно внеся его в специальный список, который затем копируется на сервер с OpenVPN. easy rsa применяется чаще всего именно с ПО для организации защищенного соединения по небезопасной сети (про easy-rsa).

Как через easy rsa отозвать сертификат

Работа OpenVPN осуществляется при помощи сертификатов: сервера и клиента.
Запросы на сертификаты могут генерироваться на разных машинах, но подписываются они всегда приватным ключом CA.

CA с OpenVPN могут размещаться на одной машине или на разных. При условии высоких требований к безопасности сервер с CA должен быть отдельной машиной, отключенной от сети.

На сервере с CA сертификат отзывается так:

Затем нужно подтвердить отзыв введя yes

Предварительно следует перейти в ~/ca/ или другую директорию, указанную при создании CA

Чтобы сообщить OpenVPN о том, что сертификат отозван нужен CRL или certificate revocation list.

В результате будет создан файл crl.pem, он перемещается на съемном носителе (в идеале) или при помощи scp на сервер OpenVPN в /etc/openvpn/

В /etc/openvpn/server.conf добавляется опция, которая будет сообщать о необходимости проверять наличие CRL.

echo ‘crl-verify crl.pem’ >> /etc/openvpn/server.conf

Перезапускаем инстанс OpenVPN сервера

systemctl restart openvpn@server

С другими клиентами процесс можно повторять перезаписывая файл crl.pem

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

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