The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Промежуточный центр сертификации для 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, 16:35 , 25-Июл-14 (1)
    >[оверквотинг удален]
    > # Создание основного 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, 06:37 , 28-Июл-14 (3)
      > а если для генерации для User1 использовать только Test1/ca.crt, а не объединенный
      > с keys/ca.crt, а объединенный использовать только для проверки в OpenVPN?

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

      >> на СА0?

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

  • Промежуточный центр сертификации для OpenVPN, !*! pavlinux, 03:00 , 26-Июл-14 (2)
    > Что я делаю не так?

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру