пятница, 13 июля 2018 г.

Центр сертификации на CISCO + IKEv2 VPN

Часть 1.
Создаём сервер сертификации и сами сертификаты


!! Создаём группу, в которую будут помещать пользователи, подключающиеся с помощью !!сертификатов
aaa authorization network grouplist local

!! Вводим имя домена
ip domain name yourdomain.local

!! Включаем сервер http. Если на нём есть ACL и авторизация, то придётся её временно отключить.
!! no ip http access-class 23
!! no ip http authentication local
ip http server

!! Проверяем чтобы на роутере было верное время
sh clock

!! Генерируем сертификат для сервера сертификации. Имя сертификата (label) должно совпадать с !!именем будущего сервера сертификации
crypto key generate rsa general-keys modulus 4096 label gwname-ca exportable

!! Экспортируем пару ключей в память, задаём пароль
crypto key export rsa gwname-ca pem url nvram: 3des Pa$$w0rd

!! Создаём сам сервер сертификации
crypto pki server gwname-ca
 database level names
  no database archive
 cdp-url http://ca.yourdomain.ru/cgi-bin/pkiclient.exe?operation=GetCRL
  eku server-auth client-auth
 issuer-name CN = gwname-ca, OU = yourdomain, O = yourdomain CJSC, L = Novosibirsk, ST = Lenina, C = RU
 lifetime crl 24
 no shutdown

!! Создаём сертификат для роутера
crypto key generate rsa general modulus 4096 exportable label router
!! Ассоциируем доменное имя с IP
 Ip host ca.yourdomain.ru 64.233.165.100

!! Создаём trustpoint для роутера
crypto pki trustpoint router
 source interface Gi0/0
 enrollment url http://ca.yourdomain.ru
 revocation-check none
 serial-number
 fqdn ca.yourdomain.ru
 ip-address 64.233.165.100
subject-name CN = ca.yourdomain.ru, OU = yourdomain, O = yourdomain CJSC, L = Novosibirsk, ST = Lenina, C = RU

!! Регистрируем сертификат на сервере сертификации
crypto pki authenticate router
crypto pki enroll router

!! Смотрим запросы на регистрацию на сервере сертификации
do show crypto pki server gwname-ca requests

!! Разрешаем регистрацию
do crypto pki server gwname-ca grant <номер запроса>

На этом настройки CA закончены. Создан сервер сертификации и выписан сертификат на роутер. Внимание! Сертификат роутера очень важен, если к нему не будет доверия со стороны клиента, то IKEv2 соединение не будет установлено. В Windows 10 ошибка 1380. Другие ошибки тут - https://technet.microsoft.com/ru-ru/library/dd941612%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

!! Создаём сертификат для пользователя
crypto key generate rsa general modulus 4096 exportable label user@example.com

!! Создаём trustpoint для пользователя, чтобы зарегистрировать его сертификат на сервере
crypto pki trustpoint user@example.com
 enrollment url http://ca.yourdomain.ru:80
 fqdn none
 ip-address none
  revocation-check none
auto-enroll
 hash sha512
subject-name CN = user@example.com, OU = yourdomain, O = yourdomain CJSC, L = Novosibirsk, ST = Lenina, C = RU
rsakeypair user@example.com


!! Регистрируем сертификат на сервере
crypto pki authenticate user@example.com
crypto pki enroll user@example.com

!! Смотрим запросы на регистрацию и регистрируем
do show crypto pki server gwname-ca requests
do crypto pki server gwname-ca grant <номер запроса>

!! Экспортируем цепочку сертификатов для пользователя на TFTP
crypto pki export user@example.com pkcs12 tftp://192.168.0.103/user.pfx password <password>
!! Или на флешку
crypto pki export user@example.com pkcs12 usbflash0:/user.pfx password <password>

!! Сертификат должен быть установлен на компьютере пользователя к контейнер Локальный компьютер!

!! После экспорта созданные сертификаты и трастпоинты можно удалить
crypto key zeroize rsa user@example.com
no crypto pki trustpoint user@example.com 

Часть 2.
Настраиваем IKEv2


!! Создаём крипто-карту, по которой будем проверять только то что сертификат выдан именно !!нашим сервером
crypto pki certificate map staff-certificate-map 10
 issuer-name co cn = gwname-ca

!! Создаём пул локальных адресов для выдачи пользователям VPN
ip local pool vpn-pool 192.168.6.100 192.168.6.200

!! Создаём политику авторизации ikev2
crypto ikev2 authorization policy ap-staff
 pool vpn-pool

!! Настраиваем proposal в котором указываем какие алгоритмы шифрования, кэширования и DH !!группы мы поддерживаем.
crypto ikev2 proposal SHA1
 encryption aes-cbc-256 aes-cbc-192 aes-cbc-128
 integrity sha1 sha256 sha512
 group 20 21 24 14 5 2

!! Привязываем proposal к политике ikev2
crypto ikev2 policy VPN
 proposal SHA1

!! Создаём профиль ikev2, который затем пропишем в профиле ipsec
crypto ikev2 profile staff
 match certificate staff-certificate-map
 identity local dn
 authentication remote rsa-sig
 authentication local rsa-sig
 pki trustpoint router
 dpd 60 2 on-demand
 aaa authorization group cert list grouplist ap-staff
 virtual-template 4

!! Создаём transform-set с именем aes256-sha1 который и будет шифровать данные. Режим !!туннельный, то есть мы будем шифровать пакеты целиком, вместе с заголовками
crypto ipsec transform-set aes256-sha1 esp-aes 256 esp-sha-hmac
 mode tunnel

!! Создаём профиль ipsec, который затем повесим на виртуальный интерфейс
crypto ipsec profile staff
 set transform-set aes256-sha1
 set ikev2-profile staff

!! Создаём виртуальный интерфейс. Указываем через какой интерфейс пускать трафик (в моём случае, это саб интерфейс VLAN 104). Переводим его в туннельный режим. И вешаем на него профиль ipsec.
interface Virtual-Template4 type tunnel
 ip unnumbered GigabitEthernet0/2.104
 ip nat inside
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile staff


Полезные команды для диагностики
show crypt pki server Показывает текущие настройки сервера CA
show crypt pk certificates Показывает сертификаты в наличии
show crypt ikev2 Включает вывод всех сообщений связанных с ikev2

Комментариев нет:

Отправить комментарий