Назад | Перейти на главную страницу

Плюсы / минусы использования ключей клиента OpenVPN без пароля

Я настраиваю сервер OpenVPN для своей организации и читаю о различных способах работы ключей на стороне клиента. Я все еще немного не знаком со всеми концепциями, лежащими в основе этих клиентских ключей и аутентификации учетной записи.

  1. Каковы реальные преимущества использования ./build-key-pass по сравнению с ./build-key для генерации клиентских ключей? Это похоже на защиту паролем ключа SSH? Не все наши сотрудники, которым требуется учетная запись, технически подкованы, поэтому стоит ли вводить еще один этап настройки?
  2. Теперь я вижу, что есть возможность не требовать типичную аутентификацию по имени пользователя и паролю при использовании клиентских ключей. Мой план состоял в том, чтобы сделать пользователя на сервере для каждого клиента. Если я не использую настройки аутентификации пользователя, как мне отозвать доступ к определенному клиенту?
  3. Как я могу безопасно доставить эти клиентские сертификаты всем нашим сотрудникам, которым нужна учетная запись? Я считаю, что файлы client.key должны быть приватными, и отправка файлов по электронной почте кажется небезопасной.

Чтобы ответить на каждый из ваших пунктов:

1 - Вы правы, сравнивая парольную защиту ключей OpenVPN с парольной защитой ключей SSH.

2 - Без использования какого-либо дополнительного метода аутентификации OpenVPN полагается только на проверку сертификата клиента сервером (а в идеале - проверку сертификата сервера клиентом) для аутентификации клиента. Это позволяет отменить доступ отдельного клиента либо путем добавления сертификата клиента в список отзыва сертификатов (CRL) (поддерживается версиями 1.5 и выше OpenVPN), либо удаления ключевого материала с клиента (или переключения сертификатов на всех ваших другие клиенты). Если вы не используете дополнительный метод аутентификации, вам потребуется CRL, чтобы разрешить отзыв клиентского доступа.

Имейте в виду, что защита ключей паролем совершенно не поможет вам при повторной аутентификации. Этот пароль просто «разблокирует» ключ на клиентском устройстве - он не снимает проблему дополнительной аутентификации пользователя на клиенте на сервере (и проблему отзыва доступа).

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

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