LINUX.ORG.RU
ФорумAdmin

OpenVPN


0

0

У меня есть несколько OVPN серверов. Есть ли возможность сделать для них какой-нибудь сервер аутентификации? В гугле есть разные аддоны и т.п., но что-то как-то все не однозначно.

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

Какие, собственно, проблемы? OpenVPN на сервере использует только сертификат CA и crl(revocation list).

mikki
()

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

А в чём проблема? Если я правильно понимаю, достаточно поднять один CA и залить на все сервера корневой сертификат. Далее в CA генерировать сертификаты клиентов и подписывать их корневым. С этими сертифкатами можно будет зайти на любой сервере, где лежит правильный корневой сертификат с ключём.

Если кроме сертификатов приаутентификации также используется логин и пароль, то можно привязать OpenVPN к LDAP (я делал через PAM).

Deleted
()
Ответ на: комментарий от Deleted

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

Т.е. генерятся все в одном месте, а потом использутся на 5 серверах.

alabalaev
() автор топика
Ответ на: комментарий от alabalaev

Разбрасывать ключи по сервера можно, о как-то не элегантно.

«Разбросать» нужно только один раз и только корневой сертификат. Сертификаты и ключи пользователей никуда разбрасывать не нужно.

Deleted
()
Ответ на: комментарий от Deleted

Я таки посмотрел в конфиг...

только корневой сертификат

Точнее:

  • Корневой сертификат
  • Ключ TLS (если используется)

То есть ты на какой-то одной системе поднимаешь Certificate Authority, например с помощью входящих в комплект OpenVPN скриптов easy-rsa (скрипт build-ca). Затем генерируешь ключ TLS (openvpn --genkey --secret). Корневой сертификат CA, а так же этот ключ копируешь на все сервера. Далее, для каждого сервера генерируешь свой сертификат сервера (build-key-server) и заливаешь соответственно на каждый сервер свой сертификат. На этом настройка серверов заканчивается. Потом для клиентов генерируешь сертификаты (build-key), отдаёшь им собственно сертификаты, ключи от них и ключ TLS. Как-то так.

Deleted
()
Ответ на: комментарий от Deleted

Спасибо. Я был уверен, что клиентский ключи должны находиться на серверах. (Еще не использовал openvpn) А как же тогда заблокировать пользователя, если он потерял свой сертификат?

alabalaev
() автор топика
Ответ на: комментарий от alabalaev

А как же тогда заблокировать пользователя, если он потерял свой сертификат?

Тут сложнее. При отзыве сертификатов easy-rsa обновляет файл crl.pem, путь до которого указывается опцией crl-verify в конфиге сервера. Нужно предусмотреть какой-нибудь механизм, с помощью которого OpenVPN-сервера будут периодически обновлять свой crl.pem с центрального сервера CA. Можно например выкладывать этот файл на веб-сервер, а OpenVPN-сервера будут периодически скачивать его по cron'у с помощью wget.

Deleted
()
Ответ на: комментарий от Deleted

> Нужно предусмотреть какой-нибудь механизм, с помощью которого OpenVPN-сервера будут периодически обновлять свой crl.pem с центрального сервера CA

В корневом сертификате можно при его генерации указать CRL distribution point, и клиент будет сам вытягивать его (CRL)с сервера. В теории. Лично проверить пока не сподобилась, увы :-)

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

В корневом сертификате можно при его генерации указать CRL distribution point, и клиент будет сам вытягивать его (CRL)с сервера.

OpenVPN это не умеет, к сожалению. Так что придётся мутить cron + wget =).

Deleted
()
Ответ на: комментарий от Deleted

чего и не хотел...

сабж... С каким-нибудь сервером аут. было бы куда элегантнее. Буду копать в эту сторону.

alabalaev
() автор топика
Ответ на: чего и не хотел... от alabalaev

С каким-нибудь сервером аут. было бы куда элегантнее.

На самом деле, централизованный сервер аутентификации - это гораздо менее элегантно, чем PKI. В случае с PKI тебе придётся синхронизировать только список отзыва сертификатов, а с централизованным сервером аутентификации тебе придётся налаживать какое-то постоянное взаимодействие либо для полной синхронизации списка логинов/паролей, либо для аутентификации «онлайн». Опять таки, отказоустойчивость у решения с PKI гораздо выше.

Буду копать в эту сторону.

Как вариант: всем клиентам выдавать один сертификат и аутентифицировать их отдельно по логину и паролю, храняющемуся в LDAP.

Deleted
()
Ответ на: комментарий от Deleted

Сертификат отозвать сложно, но в целом, поступил так: создал ccd директорию, если клиент мне не нужен, достаточно удалить его конфиг оттуда. Ну и потом можно и грохать сертификат.

DALDON ★★★★★
()

взять вместо «easy rsa» прилагающемуся в комплекте с OpenVPN любую другую PKI (посерьёзней). От Удостоверяющего Центра ЦентроБанка и VISA до Comodo и OpenDNS - они все предлагают услуги УЦ.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

взять вместо «easy rsa» прилагающемуся в комплекте с OpenVPN любую другую PKI (посерьёзней). От Удостоверяющего Центра ЦентроБанка и VISA до Comodo и OpenDNS - они все предлагают услуги УЦ.

А смысл?

Deleted
()
Ответ на: комментарий от Deleted

Потому я пользуюсь сертификатом Галактического Совета Безопасности.

anonymous
()
Ответ на: комментарий от MKuznetsov

> От Удостоверяющего Центра ЦентроБанка

Нахрен-нахрен-нахрен!!! Их «Сигнатура» это такая жопа была, когда я ее разворачивал в тестовых целях, что мама не горюй...

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.