Центр сертификатов на маршрутизаторе Cisco
Материал из Xgu.ru
- Автор: Наташа Самойленко
На этой странице описывается как настроить маршрутизатор Cisco:
- для работы в качестве центра сертификатов (Certificate Authority, CA);
- для получения сертификатов от:
- центра сертификатов на Windows Server 2003,
- центра сертификатов на маршрутизаторе Cisco,
- самого себя, если маршрутизатор сам является центром сертификатов.
[править] Основные понятия
Основные понятия относящиеся к центрам сертификатов и инфраструктуре открытого ключа на странице Криптография
[править] Настройка CA-сервера на маршрутизаторе
[править] Начальная настройка маршрутизатора
При настройке CA-сервера необходимо обратить внимание на время на самом сервере, а также на время, настроенное на клиентах, которые будут к нему обращаться. Время должно быть одинаковым. Простейший вариант использовать команду:
r3ca#clock set 21:32:00 02 October 2007
Можно поднять NTP сервер.
r3ca(config)#ntp master <номер страты>
Настройки на маршрутизаторах-клиентах для синхронизации времени с СА
dyn3(config)#ntp server <IP_адрес сервера NTP>
Задайте имя маршрутизатора и имя домена:
r3ca(config)#hostname r3ca r3ca(config)#ip domain name cisco.com
Cisco IOS CA Server для выдачи сертификатов использует протокол SCEP (Simple Certificate Enrollment Protocol). Для того чтобы этот протокол работал, необходимо включить встроенный в IOS HTTP server:
r3ca(config)#ip http server
[править] Создание пары RSA ключей
Сначала необходимо сгенерировать пару ключей, которую будет использовать CA-сервер:
r3ca(config)#crypto key generate rsa general-keys label r3ca exportable
Имя r3ca (метка пары ключей) должно соответствовать имени сервера (используется при выполнении команды crypto pki server cs-label, которая рассматривается далее)
Экспорт ключей в NVRAM память:
r3ca(config)#crypto key export rsa r3ca pem url nvram: 3des cisco123
- r3ca — название сгенерированной ранее пары ключей
- pem — privacy-enhanced mail (PEM). Формат файла для передачи и запроса сертификатов
- cisco123 — пароль, который используется для защиты приватного ключа
Увидеть сгенерированную пару ключей можно выполнив команду:
r3ca#show crypto key mypubkey rsa
[править] Обязательные настройки и значения по умолчанию
Для того чтобы запустить CA-сервер с настройками по умолчанию достаточно зайти в режим настройки сервера и включить его:
r3ca(config)#crypto pki server r3ca r3ca(cs-server)#no shut
Имя сервера должно соответствовать имени пары ключей, сгенерированных ранее.
Конфигурация по умолчанию:
r3ca#show crypto pki server Certificate Server r3ca: Status: enabled Server's configuration is locked (enter "shut" to unlock it) Issuer name: CN=r3ca CA cert fingerprint: F3203FCB 8D7ABC51 96896E62 206E22B0 Granting mode is: manual Last certificate issued serial number: 0x1 CA certificate expiration timer: 15:03:04 UTC Nov 29 2010 CRL NextUpdate timer: 21:03:04 UTC Nov 30 2007 Current storage dir: nvram: Database Level: Minimum - no cert data written to storage
После включения сервера одноименная trustpoint создается автоматически:
r3ca#show crypto pki trustpoints Trustpoint r3ca: Subject Name: cn=r3ca Serial Number: 01 Certificate configured.
Настройки применимые к CA-серверу:
r3ca(cs-server)#? CA Server configuration commands: cdp-url CRL Distribution Point to be included in the issued certs database Certificate Server database config parameters default Set a command to its defaults exit Exit from Certificate Server entry mode grant Certificate granting options issuer-name Issuer name lifetime Lifetime parameters mode Mode no Negate a command or set its defaults shutdown Shutdown the Certificate Server
- cdp-url — позволяет указать url по которому будет доступен CRL.
По умолчанию эта команда не настроена и клиенты Cisco IOS PKI будут автоматически использовать SCEP для получения CRL с сервера.
- database url — указывает где будут храниться записи базы данных сервера сертификатов. По умолчанию — NVRAM
- database level — контролирует какого рода информация будет храниться в базе данных выдачи сертификатов. По умолчанию — minimal.
- issuer-name — как будет указываться в сертификате имя сервера выдавшего сертификат. По умолчанию имя сервера.
- lifetime ca-certificate — время жизни (в днях) сертификата сервера. По умолчанию 3 года. Возможный диапазон значений от 1 дня до 1825 дней.
- lifetime certificate — время жизни (в днях) сертификатов выданных клиентам. Значение по умолчанию — 1 год.
- lifetime crl — время жизни (в часах) CRL. Значение по умолчанию - 168 часов (1 неделя). Максимальное значение 336 часов (2 недели).
- grant — режим выдачи сертификатов.
[править] Выдача сертификатов
По умолчанию сервер требует ручного подтверждения запросов на сертификаты (режим manual). В этом случае для того чтобы ответить на все текущие запросы необходимо в режиме enable выполнить команду:
r3ca# crypto pki server r3ca grant all
Можно выбрать конкретный запрос и ответить только на него. Для это необходимо сначала посмотреть какие запросы сейчас есть (в некоторых IOS для этого используется команда crypto pki server r3ca info requests):
r3ca#sh crypto pki server r3ca requests Enrollment Request Database: Subordinate CA certificate requests: ReqID State Fingerprint SubjectName -------------------------------------------------------------- RA certificate requests: ReqID State Fingerprint SubjectName -------------------------------------------------------------- Router certificates requests: ReqID State Fingerprint SubjectName -------------------------------------------------------------- 2 pending 901F7F846E00EB107CC70C587818189C hostname=dyn5.cisco.com 1 pending 8861015F613D8B142FB7FDFB7CC8A028 hostname=dyn3.cisco.com
И выполнить команду (где 2 — это номер запроса, на который необходимо ответить):
r3ca# crypto pki server r3ca grant 2
[править] Опциональные настройки
В качестве базового места для хранения данных СА-сервера укажите flash (по умолчанию — NVRAM, также может использоваться TFTP-сервер):
r3ca(cs-server)#database url flash:
Можно указать расположение различных типов файлов с помощью команды "database url {cnm|crl|crt|p12|pem|ser} root-url"
Установите какой тип данных будет храниться в базе данных выдачи сертификатов:
r3ca(cs-server)#database level minimum
- minimum — хранится информация достаточная для выдачи новых сертификатов без возникновения конфликтов. Значение по умолчанию.
- names — в дополнение к информации уровня minimum, хранится серийный номер и subject name каждого сертификата.
- complete — в дополнение к информации уровней minimum и names, каждый выданный сертификат хранится в базе данных.
Задайте параметры для идентификации сервера в сети:
r3ca(cs-server)#issuer-name CN=r3ca
CN - common name.
Задайте время обновления списка отозванных сертификатов (crl), время (первый в часах, второй и третий — в сутках), в течение которого сертификат клиента и сертификат сервера будут действительны:
r3ca(cs-server)# lifetime crl 24 r3ca(cs-server)# lifetime certificate 200 r3ca(cs-server)# lifetime ca-certificate 365
Настройка сервера для автоматической генерации ответов на запросы сертификатов:
r3ca(cs-server)# grant auto
Данная команда приведет к тому, что любой запрос на получение сертификата будет выполнен автоматически и злоумышленник сможет получить себе полноценный сертификат от вашего CA-сервера. |
[править] Настройка trustpoint
Настройки генерируются автоматически при поднятии СА-сервера. Они могут быть изменены, но до включения сервера сертификатов (до выполнения команды no shutdown в контексте настройки сервера).
Выйдите из режима настройки СА-сервера и задайте необходимые параметры:
r3ca(cs-server)#ex r3ca(config)#crypto pki trustpoint r3ca r3ca(ca-trustpoint)# enrollment url http://r3ca:80 r3ca(ca-trustpoint)# revocation-check crl
Включение CA-сервера:
r3ca(config)#crypto pki server r3ca r3ca(cs-server)#no shut
[править] Настройка маршрутизаторов для получения сертификатов от CA-сервера на маршрутизаторе
Задайте имя маршрутизатора и имя домена:
Router(config)#hostname dyn3 dyn3(config)#ip domain name cisco.com
Создание статической записи хост-ip address:
dyn3(config)# ip host r3ca 192.168.2.1
Необходимо сгенерировать пару ключей:
dyn3(config)# crypto key generate rsa
Необходимо создать trustpoint и зайти в режим настройки:
dyn3(config)# crypto pki trustpoint r3ca
Указать url для запроса сертификатов:
dyn3(ca-trustpoint)# enrollment url http://r3ca:80
Получить сертификат CA-сервера:
dyn3(config)# crypto pki authenticate r3ca
Запросите собственный сертификат:
dyn3(config)# crypto pki enroll r3ca
В зависимости от настроек сервера запрос будет подтвержден автоматически или администратором.
[править] Настройка маршрутизатора, на котором находится CA, для получения сертификата
Создаем статическую запись хост-ip address:
r3ca(config)# ip host r3ca 192.168.2.1
Для того чтобы сервер мог получить сертификат необходимо создать на нем еще одну trustpoint, так как trustpoint созданная автоматически при создании CA-сервера не может использоваться для выдачи сертификата сервером самому себе:
r3ca(config)# crypto pki trustpoint TEST r3ca(ca-trustpoint)#enrollment url http://r3ca:80
Получить сертификат CA-сервера:
r3ca(config)# crypto pki authenticate TEST
Запросите сертификат:
r3ca(config)# crypto pki enroll TEST
Теперь сервер может участвовать в работе PKI и в качестве клиента.
[править] Настройка маршрутизатора для получения сертификата от MS CA
В качестве корневого CA используется Windows Server 2003.
Задайте имя маршрутизатора и имя домена:
Router(config)#hostname R_2 R_2(config)#ip domain name unix.nt
Создание статической записи соответствия имени хоста IP-адресу:
R_2(config)# ip host winca 192.168.25.100
Необходимо сгенерировать пару ключей:
R_2(config)# crypto key generate rsa
Необходимо создать trustpoint и зайти в режим настройки:
R_2(config)#crypto pki trustpoint winca
Указать url для запроса сертификатов:
R_2(ca-trustpoint)#enrollment url http://winca/certsrv/mscep/mscep.dll
R_2(ca-trustpoint)#crl optional
Получить сертификат CA-сервера:
R_2(config)# crypto pki authenticate winca
Запросить собственный сертификат:
R_2(config)# crypto pki enroll winca
[править] Настройка CA на маршрутизаторе для работы в режиме RA
Если сервер сертификатов Cisco IOS на маршрутизаторе работает в режиме RA, то CA выдающий сертификаты должен быть сервером сертификатов Cisco IOS. |
crypto pki server RArouter mode ra ! crypto pki trustpoint RArouter enrollment mode ra enrollment url http://iosca subject-name cn=RArouter revocation-check crl rsakeypair RArouter !
[править] Пример конфигурации
Конфигурация сервера r3ca:
! hostname r3ca ! ! ! ip domain name cisco.com ip host r3ca 192.168.2.1 ! ! ! crypto pki server r3ca grant auto lifetime crl 24 lifetime certificate 200 lifetime ca-certificate 365 ! crypto pki trustpoint r3ca enrollment url http://r3ca:80 revocation-check crl rsakeypair r3ca ! crypto pki trustpoint TEST enrollment url http://r3ca:80 revocation-check crl ! crypto pki certificate chain r3ca certificate ca 01 30820172 3082011C A0030201 02020101 300D0609 2A864886 F70D0101 04050030 0F310D30 0B060355 04031304 72336361 301E170D 30373130 30343135 34373434 5A170D30 38313030 33313534 3734345A 300F310D 300B0603 55040313 04723363 61305C30 0D06092A 864886F7 0D010101 0500034B 00304802 4100BA45 AE249F21 60B376F8 4B1C0A45 D6916465 0488BAEF 6ABF2C2B 2F567395 25E258C2 FB06BB9C F3FC679B 69665321 6E7E4F14 FD592DED 5C98F880 19CD638F C0810203 010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01 01FF0404 03020186 301F0603 551D2304 18301680 1435DA9B 01CC2874 E5F1E64F A3695D1B CCCA8207 3D301D06 03551D0E 04160414 35DA9B01 CC2874E5 F1E64FA3 695D1BCC CA82073D 300D0609 2A864886 F70D0101 04050003 41001C0B 232EFDB5 D9EC3662 B6075A76 47955C9D FA673691 8450A15C 9C420C9F 04EA2E70 D1394D7E 20FB91DF 3987F216 5B7B84A1 B6023DBE D9464AD0 F6289C99 0D4C quit crypto pki certificate chain TEST certificate 04 3082016F 30820119 A0030201 02020104 300D0609 2A864886 F70D0101 04050030 11310F30 0D060355 04031306 43415345 5256301E 170D3037 31323031 31353136 34375A17 0D303831 31333031 35313634 375A301E 311C301A 06092A86 4886F70D 01090216 0D64796E 312E6E61 74612E63 6F6D305C 300D0609 2A864886 F70D0101 01050003 4B003048 024100B0 462630CF 2969B6E1 6C616679 FEB6948A D5D11031 8A0384EC 7F18C99E 366587EA 405CCCAB C267D3A9 D3A904BF DD2084D1 2AEAEE0A C7056D41 E7CA0C35 C22A6502 03010001 A34F304D 300B0603 551D0F04 04030205 A0301F06 03551D23 04183016 8014F208 6746E378 9C261EF0 ECD40B4D 8C91B2AE B39B301D 0603551D 0E041604 14FF7414 E524AEC4 F20FE7FE 4A6F1B87 B0C78658 8A300D06 092A8648 86F70D01 01040500 0341004A 2F068197 AB680572 41A2460D 15C8E3A2 BD1C7C35 38CF44A8 90BA2073 852AD718 18ED23AB 111DD4F1 14E662AE CBFE2579 8F60682D 8F53BDC5 B6750F92 678B58 quit certificate ca 01 30820176 30820120 A0030201 02020101 300D0609 2A864886 F70D0101 04050030 11310F30 0D060355 04031306 43415345 5256301E 170D3037 31313330 31353033 30345A17 0D313031 31323931 35303330 345A3011 310F300D 06035504 03130643 41534552 56305C30 0D06092A 864886F7 0D010101 0500034B 00304802 4100DA5A B917730A 5D8BBF73 C5C1F4D4 0DAA0438 647A9031 5702D68B 317FD0BA E2FAD957 7415874B 03A87CF8 EA85351B A1C6D310 C2281A92 C6F581BE 9AC05E87 FCD70203 010001A3 63306130 0F060355 1D130101 FF040530 030101FF 300E0603 551D0F01 01FF0404 03020186 301F0603 551D2304 18301680 14F20867 46E3789C 261EF0EC D40B4D8C 91B2AEB3 9B301D06 03551D0E 04160414 F2086746 E3789C26 1EF0ECD4 0B4D8C91 B2AEB39B 300D0609 2A864886 F70D0101 04050003 41005796 B8BF1DE3 8137E559 C3315442 81A5D70E 811542B6 494E8C04 A851DC28 8C7BED12 7F5A4EAE 6D40DAA0 357F0CF8 23E182D0 639BB71B D0C87B0F A637B885 CAA1 quit ! ! ! ip http server no ip http secure-server ! !
[править] Как поднять сервер сертификатов не на Cisco
- http://docs.google.com/Doc?id=dhdxn2g6_2h2xnz6
- http://www.debian-administration.org/articles/563 (англ.)