URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5264
[ Назад ]

Исходное сообщение
"Промежуточный центр сертификации для OpenVPN"

Отправлено Markoff , 25-Июл-14 12:41 
Добрый день коллеги!
В связи с производственной необходимостью (IT аутсорсинг), возникла задача по созданию собственного центра сертификации, дабы генерировать ключи к OpenVPN для своих сотрудников и сотрудников обслуживаемых организаций.
Идея такая:
Все (кому надо) мои сотрудники получают личный ключ, подписанный нашим СА, и с его помощью ходят по всем нашим организациям. Так же, во многих обслуживаемых нами организациях, руководство и не только, тоже желает подключаться к своей конторе из дома/командировки... Для этого на их сервере тоже стоит свой СА, но подписанный нашим СА (т.е. является как бы дочерним). Он собственно и выдает ключи для целей конкретной организации. Все дочерние организации периодически скачивают у нас список отозванных сертификатов, дабы блокировать скомпрометированные ключи.
Т.е. получается такая схема:

----------------------------           ----------------------------
|    СА0 наш               |-----> | СА1 организации1|
|самоподписанный  |--       | подписанный СА0 |
----------------------------    |      ----------------------------
   |                                     |                         |
User0                               |                      User1
                                          |                      ServerOVPN1
                                          |
                                          |         ----------------------------
                                             -->  | СА2 организации2|
                                                    | подписанный СА0 |
                                                     ----------------------------
                                                               |
                                                             User2
                                                             ServerOVPN2

(криво получилось... в редакторе один шрифт, предпросмотр другой, результат вообще третий :( )

СА0 - выдает моим сотрудникам ключи и с их помощью, наример User0, нормально подключается к ServerOVPN1 и ServerOVPN2.
СА1 - подписан нашим СА и выдает для сотрудников организации1, например User1, ключи для подключения к ServerOVPN1.
СА2 - подписан нашим СА и выдает для сотрудников организации2, например User2, ключи для подключения к ServerOVPN2.

Все замечательно работает...
Одно НО! Очень большое НО. User1 может подключиться к ServerOVPN2 и наоборот, User2 подключается к ServerOVPN1. Но этого не должно быть!... по задумке... и по фэншую.

Как генерирую ключи:
# Создание основного CA сертификации
openssl dhparam -out /etc/openvpn/keys/dh2048.pem 2048
openssl req -days 7000 -nodes -new -newkey rsa:4096 -x509 -keyout ca.key -out ca.crt

# Генерация СА1
openssl req -nodes -new -newkey rsa:3072 -keyout /etc/openvpn/keys/Test1/ca.key -out /etc/openvpn/keys/Test1/ca.csr -config /root/Scripts/ssl/openssl.cnf -batch
openssl ca -days 3650 -out /etc/openvpn/keys/Test1/ca.crt -in /etc/openvpn/keys/Test1/ca.csr -extensions v3_ca -config /root/Scripts/ssl/openssl.cnf -batch
cat /etc/openvpn/keys/ca.crt>>/etc/openvpn/keys/Test1/ca.crt

Далее копируем по scp Test1/ca.key,Test1/ca.csr, Test1/ca.crt на сервер клиента1, там стандартными средствами от OpenVPN создаем ключ сервера (ServerOVPN1) и клиента User1

Аналогично поступаем с CA2, ServerOVPN2, User2

openssl.cnf взят из OpenVPN, только дополнен несколькими переменными для автоматической генерации из скриптов.

Что я делаю не так? Может какие параметры надо дописать в openssl.cnf на СА0?


Содержание

Сообщения в этом обсуждении
"Промежуточный центр сертификации для OpenVPN"
Отправлено reader , 25-Июл-14 16:35 
>[оверквотинг удален]
> # Создание основного CA сертификации
> openssl dhparam -out /etc/openvpn/keys/dh2048.pem 2048
> openssl req -days 7000 -nodes -new -newkey rsa:4096 -x509 -keyout ca.key -out
> ca.crt
> # Генерация СА1
> openssl req -nodes -new -newkey rsa:3072 -keyout /etc/openvpn/keys/Test1/ca.key -out
> /etc/openvpn/keys/Test1/ca.csr -config /root/Scripts/ssl/openssl.cnf -batch
> openssl ca -days 3650 -out /etc/openvpn/keys/Test1/ca.crt -in /etc/openvpn/keys/Test1/ca.csr
> -extensions v3_ca -config /root/Scripts/ssl/openssl.cnf -batch
> cat /etc/openvpn/keys/ca.crt>>/etc/openvpn/keys/Test1/ca.crt

а если для генерации для User1 использовать только Test1/ca.crt, а не объединенный с keys/ca.crt, а объединенный использовать только для проверки в OpenVPN?

> Далее копируем по scp Test1/ca.key,Test1/ca.csr, Test1/ca.crt на сервер клиента1, там
> стандартными средствами от OpenVPN создаем ключ сервера (ServerOVPN1) и клиента User1
> Аналогично поступаем с CA2, ServerOVPN2, User2
> openssl.cnf взят из OpenVPN, только дополнен несколькими переменными для автоматической
> генерации из скриптов.
> Что я делаю не так? Может какие параметры надо дописать в openssl.cnf
> на СА0?


"Промежуточный центр сертификации для OpenVPN"
Отправлено Markoff , 28-Июл-14 06:37 
> а если для генерации для User1 использовать только Test1/ca.crt, а не объединенный
> с keys/ca.crt, а объединенный использовать только для проверки в OpenVPN?

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

>> на СА0?

Думаю, что да, так будет правильнее.


"Промежуточный центр сертификации для OpenVPN"
Отправлено pavlinux , 26-Июл-14 03:00 
> Что я делаю не так?

Вся схема неправильная.


"Промежуточный центр сертификации для OpenVPN"
Отправлено Markoff , 28-Июл-14 06:37 
>> Что я делаю не так?
> Вся схема неправильная.

А как правильно будет?


"Промежуточный центр сертификации для OpenVPN"
Отправлено Markoff , 30-Июл-14 06:48 
Как я понимаю, никто не знает как необходимо реализовать данную задачу, знают только, что так не правильно :)
Видимо сайт не посещают более Гуру. Жаль, это была последняя надежда.


"Промежуточный центр сертификации для OpenVPN"
Отправлено pavlinux , 20-Авг-14 03:19 
> Как я понимаю, никто не знает как необходимо реализовать данную задачу, знают
> только, что так не правильно :)
> Видимо сайт не посещают более Гуру. Жаль, это была последняя надежда.

Влом, писать много. :)


"Промежуточный центр сертификации для OpenVPN"
Отправлено Markoff , 29-Авг-14 12:11 
>> Как я понимаю, никто не знает как необходимо реализовать данную задачу, знают
>> только, что так не правильно :)
>> Видимо сайт не посещают более Гуру. Жаль, это была последняя надежда.
> Влом, писать много. :)

Спасибо, большое, это очень помогло.