Можно ли настроить в openvpn аутентификации по открытым/закрытым ключам?
Я хочу, чтобы на моем OpenVPN аутентификация была по аналогии с ssh:
У каждого пользователя есть открытый и закрыты ключи
На OpenVPN сервере есть список открытых ключей пользователей, которым разрешен доступ
Я знаю, там используется PKI с центром сертификации (CA)
Но мне такая схема не нравится.
При такой схеме, если я когда то выдал пользователю сертификата, а потом захотел ограничить, то у мне понадобится информация о его сертификате для отзыва. А если у меня информация о его сертификате не сохранилась/утратилась? Плюс, при отзыве сертификата придется перезагружать сервер.
Короче, не нравится мне схема с отзывом сертификатов.
Хочется на сервере явно указать: вот этих пользователей пускай, остальных лесом...
как у openssh
Можно, только в OPenVPN используются подписанный ЦА сертификат+приватный ключ, а не просто пара ключей как в ssh. Т.е. ключи не совместимы.
Не знаю, можно ли преобразовать ssh ключи в формат сертификата.
res2001, Я знаю, там используется PKI.
Но мне такая схема не нравится.
При такой схеме, если я когда то выдал пользователю сертификата, а потом захотел ограничить, то у мне понадобится информация о его сертификате для отзыва. А если у меня информация о его сертификате не сохранилась/утратилась? Плюс, при отзыве сертификата придется перезагружать сервер.
Короче, не нравится мне схема с отзывом сертификатов.
Хочется на сервере явно указать: вот этих пользователей пускай, остальных лесом...
как у openssh
DVoropaev, Вы не внимательно изучали PKI.
Это короткий ответ.
Вот более длинный.
Если вы утратили, забыли или забили на PKI, и переустановили сервер, то Вам придется перевыпустить ВСЕ ключи.
А дальше - изучайте "глубжее и внимательнее", тогда Вам все понравится.
DVoropaev, С отзывом все немного не так работает, как вы описали.
то у мне понадобится информация о его сертификате для отзыва
Да, информация понадобится. И она есть в ЦА, который у вас будет в том или ином виде. ЦА терять не нужно - это самая важная вещь в PKI, а если потеряете - ну тогда все - меняйте вообще все сертификаты и заводите новый ЦА.
PKI можно использовать с массой других продуктов, тогда как ключи ssh используются только в ssh, по моему.
res2001, Я так понимаю ответ на мой вопрос "нет". Потому что:
Не хочу чтобы у меня было слишком много сущностей (в частности CA)
Хочу иметь явный белый список тех, кому можно ходить, а кому нельзя.
Если вы имеете в виду использовать ключи ssh в OpenVPN, то, видимо, нет. Хотя точно утверждать не могу, т.к. вопросом не интересовался. Может быть можно конвертировать в формат PKI, но опять же появятся сертификаты и т.п.
Как вариант использовать в openvpn авторизацию по логину/паролю. Сам не делал никогда, но такое она то же умеет. Тогда сможете явно удалять пользователей.
DVoropaev, если задача снизить количество сущностей, проще будет перейти на авторизацию по сертификатам в ssh
PKI много где применима в отличие от ssh ключей
Много чем можно воспользоватся на стороне сервера:
1. AuthorizedKeysCommand -- проверять скриптом
2. AllowUsers/DenyUsers/AllowGroups/DenyGroups -- конкретно указать кого именно не хотите
3. AuthorizedPrincipalsCommand/AuthorizedPrincipalsFile -- работать с authorized_keys
4. Завести для ssh собственный встроенный CA
5. Через PAM
Это не то, что я хотел, но из всего что я увидел это единственное, что мне понравилось. спасибо! Я просто создам список тех, кому можно и при подключении клиента буду сверяться с этим списком
AllowUsers/DenyUsers/AllowGroups/DenyGroups -- конкретно указать кого именно не хотите
Cерты пользователям можно включать непосредственно в конфигурацию, называется это inline certificates
1 Отозвать серт можно тем же easy-rsa которым он генерился
2 Обновится файл .crl со списком отзыва
3 Делаем reload для openvpn чтобы сервер перечитал изменения в файлах конфигурации
Cерты пользователям можно включать непосредственно в конфигурацию, называется это inline certificates
Знаю!
1 Отозвать серт можно тем же easy-rsa которым он генерился
2 Обновится файл .crl со списком отзыва
3 Делаем reload для openvpn чтобы сервер перечитал изменения в файлах конфигурации
Вы предлагаете именно то, от чего я хотел отказаться! Спасибо