Задача.
Необходимо организовать обмен данными с удаленными сетями, не прибегая к услуге «Статический белый IP» сотового оператора (далее OpCoS), ввиду ее дороговизны.
Схема представлена на следующем рисунке:
Стоит отметить, что роутер РУХ2 (производства Radiofeed Systems) на данный момент снят с производства, но т.к.
несколько таких роутеров уже задействованы в организации обмена данными, я решил оптимизировать их работу.
Маршрутизатор работает на ОС Linux и для IPSec-туннелей содержит модуль Racoon, настройка которого осуществляется через веб-интерфейс.
Маршрутизатор Cisco (в моем случае CISCO1921/K9) со статическим внешним адресом (abcd) установлен в локальной сети предприятия.
OpCoS выдает динамические адреса устройствам RUH2; они разные при каждом установлении соединения, поэтому заранее узнать, с какого адреса будет установлено соединение, невозможно.
Более того, при перезагрузке роутера этот адрес, скорее всего, будет другим.
В сеансе IPSec аутентификация устройства может осуществляться по заранее заданным ключам, но так как заранее неизвестно, с какого адреса будет общаться устройство, то в роутере необходимо прописать такую строку: crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 no-xauth
Те.
ключ действителен для всех адресов, и это небезопасно, поскольку в случае компрометации ключа злоумышленник сможет установить зашифрованный канал и получить доступ к сети предприятия.
В этом случае рекомендуется использовать сертификаты X.509. На роутере необходимо настроить центр сертификации, который будет выдавать сертификаты для роутеров RUH2. Строго говоря, удостоверяющий центр не обязательно должен быть на маршрутизаторе CISCO, главное, чтобы этот центр выдавал сертификаты устройствам для установления соединений.
Подробнее о настройке центра сертификации на маршрутизаторах CISCO можно прочитать здесь.
Здесь .
Для установления соединения необходимо настроить на роутере точку доверия, которой будет выдан сертификат удостоверяющего центра.
В режиме включения нужно набрать команду: ESKO-main-gw(config)#crypto key generate rsa general-keys label VPN-key modulus 2048
Где VPN-ключ — это имя пары ключей для использования в точке доверия, модуль 2048 — это измерение ключа.
Далее настраиваем точку доверия и вводим команду: R1(config)#crypto pki trustpoint VPN-esko
Далее роутер входит в режим настройки точки доверия, в этом режиме даем следующие команды: enrollment url http://a.b.c.d:80
Путь к центру сертификации для запроса сертификата и проверки списка отзыва сертификатов.
serial-number none
Не указывайте серийный номер маршрутизатора в сертификате.
fqdn none
Не включайте в сертификат собственное доменное имя.
ip-address none
Не включайте IP-адрес маршрутизатора в сертификат. subject-name cn=ESKO-main-gw.esko.local,o=esko,l=spb,c=ru
Имя субъекта сертификата, указанное в соответствии с форматом X.500. Описание некоторых полей:
CN: Common Name – произвольное имя
О: Организация – название организации
L: Location – локация, город
С: Страна – страна revocation-check crl
Метод проверки списка отзыва сертификатов.
crl cache delete-after 5
Как быстро следует очищать кеш после проверки списка отзыва сертификатов? rsakeypair VPN-key
Имя используемой пары ключей.
После внесения данных настроек необходимо выйти из режима настройки точки доверия в режим глобальной конфигурации (exit) и выполнить команду: R1(config)#crypto pki authenticate VPN-esko
Маршрутизатор CISCO запросит корневой сертификат сервера сертификации и предложит вам подтвердить:
Сертификат имеет следующие атрибуты: Отпечаток пальца MD5: 4CDFCBCA 7807C4C9 5B054FA5 329301DB Отпечаток пальца SHA1: E0E35CC8 75C3639C 445D12D8 4BA298AB 2E4E7004 % Вы принимаете этот сертификат? [да нет]:Отвечаем да, cisco подтвердит, что корневой сертификат принят:
Сертификат центра сертификации Trustpoint принят.Далее мы попросим сервер выдать нам сертификат:
R1(config)#crypto pki enroll VPN-esko
% Начать регистрацию сертификата… % Создайте сложный пароль.В процессе запроса маршрутизатор запросит пароль для сертификата и запросит подтверждение.Вам нужно будет устно предоставить это пароль администратору ЦС, чтобы отозвать ваш сертификат. По соображениям безопасности ваш пароль не будет сохранен в конфигурации.
Пожалуйста, запишите это.
Пароль: Повторно введите пароль: % Имя субъекта в сертификате будет включать: cn=ESKO-main-gw.esko.local,o=esko,l=spb,c=ru. % Полное доменное имя не будет включено в сертификат. Запросить сертификат из CA? [да/нет]: да % запросов на сертификат отправлено в центр сертификации % Команда «show crypto pki certificate verbose VPN-esko» покажет отпечаток пальца.
Введите пароль (необязательно) и подтвердите создание запроса.
После этого на сервере сертификации появится запрос:
*15 октября, 13:53:45.367: CRYPTO_PKI: Отпечаток запроса сертификата MD5: F70432EB 59E791A6 48F301C4 B59C67EB *15 октября, 13:53:45.371: CRYPTO_PKI: отпечаток запроса сертификата SHA1: 18AA1D1A 1DD7BED2 FEA666FF 1D32F8BA B559FA07Посмотреть запрос на сервере сертификации (если он есть на CISCO) можно следующей командой:
R1#sh crypto pki server CA-esko
База данных запросов на регистрацию: Запросы сертификатов подчиненного ЦС: Имя субъекта отпечатка состояния ReqID — Запросы сертификатов РА: Имя субъекта отпечатка состояния ReqID — Запросы сертификатов маршрутизатора: Имя субъекта отпечатка состояния ReqID — 1 на рассмотрении F70432EB59E791A648F301C4B59C67EB cn=ESKO-main-gw.esko.local,o=esko,l=spb,c=ruДля подтверждения выдачи сертификата необходимо выполнить следующую команду:
R1#crypto pki server CA-esko grant 1
Через некоторое время точка доверия автоматически получит выданный сертификат:
*15 октября, 14:03:01.303: %PKI-6-CERTRET: сертификат получен от центра сертификации.Следующий шаг — выдача маршрутизатору RUH2 сертификата, подписанного тем же центром сертификации.
В отличие от CISCO, RUH2 не может автоматически запросить сертификат самостоятельно, поэтому сделаем это вручную.
Для всех манипуляций при создании сертификата для роутера я использую служебную библиотеку OpenSSL.
Сначала давайте создадим закрытый ключ: C:\OpenSSL\bin>Openssl genrsa -out c:\keys\private.key 2048
Генерация закрытого ключа RSA, модуль длиной 2048 бит. .В папке c:\keys появился файл Private.key примерно такого содержания:+++ .
+++ е — 65537 (0x10001)
-----НАЧАТЬ ЧАСТНЫЙ КЛЮЧ RSA----- MIIEogIBAAKCAQEAz1vjlthggHHmSBWVgcNf7aDDGPgik9xKZuJjEBgREr8x5RUa … GzmSg7cOhrzzTBWOUqTggMD5uKV4Cgei3cA+TKRXv2dRjfVCL3s= -----КОНЕЦ ЧАСТНОГО КЛЮЧА RSA-----Далее на основе этого ключа создадим запрос в центр сертификации:
C:\OpenSSL\bin>openssl.exe req -new -key c:\keys\private.key -out c:\keys\request.csr
Утилита OpenSSL задаст ряд вопросов относительно этого сертификата:
Вас попросят ввести информацию, которая будет включена в запрос сертификата.Эти поля аналогичны тем, которые мы установили в Cisco в точке доверия с помощью команды subject-name. После ввода значений в папке c:\keys появится файл запроса сертификата следующего содержания:То, что вы собираетесь ввести, — это то, что называется отличительным именем или DN. Полей довольно много, но вы можете оставить некоторые пустыми.
Для некоторых полей будет значение по умолчанию, Если вы введете «.
», поле останется пустым.
— Название страны (2-буквенный код) [RU]: Название штата или провинции (полное имя) []: Город [СПБ]: Название организации (например, компания) [ESKO]: Название организационного подразделения (например, раздел) []: Общее имя []:RUH2.esko.local электронная почта []: Пожалуйста, введите следующие «дополнительные» атрибуты будет отправлен вместе с запросом на сертификат Пароль вызова []: Необязательное название компании []:
-----НАЧАТЬ ЗАПРОС СЕРТИФИКАТА----- MIICiTCCAXECAQAwRDELMAkGA1UEBhMCulUxDDAKBgNVBAcMA1NQQjENMAsGA1UE … Q3H/EtMGltY1QS/9DsEnta+k7oCKPTeei3S2v9Y= -----ЗАВЕРШЕНИЕ ЗАПРОСА СЕРТИФИКАТА-----Вам нужно скопировать это в буфер обмена, и на CISCO, где работает удостоверяющий центр, ввести команду:
R1#crypto pki server CA-esko request pkcs10 terminal
CISCO отправит запрос
Запрос PKCS10 в base64 или pem % Введите запрос регистрации PKCS10 в кодировке Base64 или в формате PEM. % Заканчивается пустой строкой или «выходит» на отдельной строке.Далее вам нужно скопировать запрос из буфера обмена и в конце набрать quit. Теперь вы можете увидеть созданный запрос:
R1#sh crypto pki server CA-esko requests
База данных запросов на регистрацию: Запросы сертификатов подчиненного ЦС: Имя субъекта отпечатка состояния ReqID — Запросы сертификатов РА: Имя субъекта отпечатка состояния ReqID — Запросы сертификатов маршрутизатора: Имя субъекта отпечатка состояния ReqID — 2 на рассмотрении 4468493FA262890CC75EEF18AC5AF6DF cn=RUH2.esko.local,o=ESKO,l=SPB,c=RUМы увидим запрос с полями, заданными утилитой OpenSSL. Подтвердим выдачу сертификата по данному запросу; роутер сразу выдаст нам его в окне терминала:
R1#crypto pki server CA-esko grant 2
% предоставленного сертификата: -----НАЧАТЬ СЕРТИФИКАТ----- MIIEQjCCAiqgAwIBAgIBAzANBgkqhkiG9w0BAQQFADBBMQswCQYDVQQGEwJydTEM … jhHvAo/0oVfLPZ9dPdj9Y1efawXI4a/zGf0GTmEi+v7d8Psl9Wk= -----КОНЕЦ СЕРТИФИКАТА-----Вам необходимо скопировать сертификат в буфер обмена и сохранить его в файл.
Внимание: вам нужно скопировать все, включая первую и последнюю строки с надписью BEGIN CERTIFICATE и END CERTIFICATE.
Вам также необходимо запросить собственный сертификат точки доверия (в режиме глобальной конфигурации): R1(config)#crypto pki export VPN-esko pem terminal
Сертификат %CA: -----НАЧАТЬ СЕРТИФИКАТ----- MIIFYDCCA0igAwIBAgIBATANBgkqhkiG9w0BAQQFADBBMQswCQYDVQQGEwJydTEM … uQVU8GLro73NQ9Jo2JXt2qfZY9SFsomiqJugxReyM4umZ9oX -----КОНЕЦ СЕРТИФИКАТА----- % Сертификат общего назначения: -----НАЧАТЬ СЕРТИФИКАТ----- MIIEVzCCAj+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADBBMQswCQYDVQQGEwJydTEM … a0G+T+rXEYq2ywc= -----КОНЕЦ СЕРТИФИКАТА-----Маршрутизатор выдаст корневой сертификат сервера сертификации и сертификат точки доверия.
Каждый должен быть сохранен в отдельном файле.
Далее на роутере, с которым нужно установить соединение (и где настроена точка доверия), настроим ipsec. Все делается в режиме глобальной конфигурации.
Настроим 1-й этап: crypto isakmp policy 30
encr aes
hash sha256
group 14
lifetime 3600
authentication rsa-sig
Последняя команда указывает тип аутентификации с использованием сертификатов; он работает по умолчанию и может не отображаться при просмотре конфигурации в CISCO.
Давайте создадим карту сертификатов.
Он необходим для приема подключений от устройств с определенными атрибутами сертификата: crypto pki certificate map RUH2-cert-map 10
subject-name co ruh2.esko.local
Последняя строка указывает, что данной карте сертификатов соответствуют только те сертификаты, которые содержат строку ruh2.esko.local.
Давайте создадим профиль isakmp. crypto isakmp profile RUH2-isapr
self-identity address
ca trust-point VPN-esko
match certificate RUH2-cert-map
local-address GigabitEthernet0/0
Описание используемых команд self-identity address
Идентификатором маршрутизатора будет IP-адрес.
ca trust-point VPN-esko
Точка доверия, используемая для аутентификации match certificate RUH2-cert-map
Указывает на карту сертификатов, чтобы определить, к каким устройствам подключаться.
local-address GigabitEthernet0/0
Уточняющая команда для определения IP-адреса маршрутизатора CISCO
Далее давайте настроим 2-й этап: R1(config)#crypto ipsec transform-set RUH2-ts esp-aes esp-sha-hmac
R1 (cfg-crypto-trans)#mode tunnel
Последняя команда устанавливает туннельный режим и является командой по умолчанию; он может не отображаться при просмотре конфигурации маршрутизатора.
Теперь давайте создадим динамическую криптокарту: crypto dynamic-map RUH2-dyncm 1000
set security-association lifetime seconds 28800
set transform-set RUH2-ts
set pfs group2
set isakmp-profile RUH2-isapr
reverse-route
Описание используемых команд установить время жизни ассоциации безопасности, секунды 28800
Установка времени жизни сеанса 2-го этапа, т. е.
того, как часто будет меняться ключ шифрования.
set transform-set RUH2-ts
Указывает набор преобразований, т.е.
способ шифрования трафика.
set pfs group2
Для большей безопасности.
Не требуется.
Указывает дополнительный режим генерации ключа шифрования.
set isakmp-profile RUH2-isapr
Указывает, какой профиль isakmp использовать.
reverse-route
Важная команда.
Маршрутизатор добавит маршрут в таблицу маршрутизации для отправки пакетов в удаленную сеть.
Теперь давайте свяжем динамическую криптокарту со статической: R1(config)#crypto map ISP-statcm 500 ipsec-isakmp dynamic RUH2-dyncm
И давайте применим статическую криптокарту к интерфейсу, обращенному к Интернету: R1(config)#interface GigabitEthernet0/0
R1(config-if)#crypto map ISP-statcm
Настройка маршрутизатора Cisco завершена.
Приступим к настройке RUH2. Для этого заходим в веб-интерфейс роутера, в раздел Конфигурация, затем в раздел IPSec.
Настройки следующие:
Описание полей, указанных в роутере Описание
Название туннеля.
Может быть что угодно.
Удаленный IP-адрес Адрес удаленного маршрутизатора CISCO. Удаленная подсеть и маска удаленной подсети Указывает, какой сетевой трафик будет направляться в туннель.
Локальная подсеть и маска локальной подсети RUH2 передает эту информацию удаленному маршрутизатору CISCO, чтобы он понял, какой трафик следует отправлять в туннель.
Срок службы ключа (сек) «Время жизни» ключа, которым является CISCO, задается параметром Set Security-Association Life Life Seconds. Срок службы IKE (сек) Время жизни 1-й фазы (isakmp), которое устанавливается в CISCO параметром времени жизни в политике isakmp. Обход NAT Включает режим NAT-T, который необходим, если RUH2 работает за NAT OpCoS. Режим аутентификации Счетчик аутентификации.
Выберите режим сертификатов X.509. Проверить сертификат Режим проверки сертификата.
Его необходимо отключить.
В противном случае RUH2 выдает ошибки об отсутствии поля AltSubjectName, а в CISCO его можно задать только в самоподписанной точке доверия.
В свою очередь, нельзя использовать самозаверяющие точки доверия, т.к.
необходимо, чтобы все сертификаты были выданы одним центром сертификации.
Алгоритм шифрования Хэш-алгоритм Группа ДХ Настройки 1-го этапа на RUH2 должны соответствовать настройкам политики isakmp в CISCO. Алгоритм шифрования Алгоритм аутентификации Группа ПФС Настройки 2-й фазы на RUH2 должны соответствовать настройкам Transform-Set и PFS Group в CISCO. Мой тип идентификатора Указывает, как идентифицировать RUH2 на удаленной стороне, значения не имеет, т.к.
сертификат проверяется.
Тип идентификатора одноранговых узлов Указывает, как идентифицировать удаленную сторону.
Мы используем IP-адрес маршрутизатора CISCO. Проверить идентификатор Указывает, следует ли проверять удаленную сторону.
Можно включить для большей безопасности.
Ping-тест IP и интервал Ping-теста (мин) Его важно включить, поскольку туннель создается при наличии трафика, а CISCO не может инициировать соединение при наличии трафика в сети, поскольку RUH2 имеет динамический IP-адрес.
Сертификат ЦС Сертификат CA необходимо скопировать из сохраненного файла.
Удаленный сертификат Сертификат точки доверия удаленного маршрутизатора необходимо скопировать из сохраненного файла.
Локальный сертификат Сертификат RUH2, выданный удостоверяющим центром, необходимо скопировать из сохраненного файла.
Локальный закрытый ключ Закрытый ключ необходимо скопировать из сохраненного файла.
После внесения настроек нажмите «Применить» и проверьте установленное соединение.
Давайте проверим 1-й этап.
Отдаем команду CISCO R1#sh crypto isakmp sa
Среди прочего вы можете увидеть:
abcd 188.170.72.35 QM_IDLE 1014 АКТИВНЫЙВ моем случае RUH2 виден из интернета по адресу 188.170.72.35. Проверка 2-й фазы
R1#sh crypto ipsec sa interface g0/0
Результаты
интерфейс: Гигабитный Ethernet0/0 Тег криптографической карты: ISP-statcm, локальный адрес a.b.c.d. защищенный vrf: (нет) локальный идентификатор (адрес/маска/прот/порт): (192.168.1.0/255.255.255.0/0/0) удаленный идентификатор (адрес/маска/защита/порт): (172.16.0.0/255.255.255.128/0/0) current_peer 188.170.72.35 порт 48015 РАЗРЕШЕНИЕ, flags={} #pkts encaps: 133, #pkts encrypt: 133, #pkts дайджест: 133 #pkts decaps: 135, #pkts decrypt: 135, #pktsverify: 135 #pkts сжатый: 0, #pkts распакованный: 0 #pkts не сжат: 0, #pkts compr. не удалось: 0 #pkts не распакован: 0, #pkts не распакован: 0 #ошибки отправки 0, #ошибки приема 8 локальный конечный криптографический номер: abcd, удаленный конечный криптографический номер: 188.170.72.35 путь mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0 текущий исходящий spi: 0xEC8D5EF(248042991) PFS (Да/Нет): Да, группа DH: группа2 входящий esp sas: спи: 0x1231809D (305234077) преобразование: esp-aes esp-sha-hmac, используются настройки ={Tunnel UDP-Encaps, } идентификатор conn: 2019, flow_id: встроенный VPN: 19, sibling_flags 80000046, криптографическая карта: ISP-statcm Время sa: оставшееся время жизни ключа (к/сек): (4506190/27680) Размер IV: 16 байт поддержка обнаружения повторов: Да Статус: АКТИВНЫЙ входящий ах сас: входящий PCP Sas: исходящий esp sas: спи: 0xEC8D5EF (248042991) преобразование: esp-aes esp-sha-hmac, используются настройки ={Tunnel UDP-Encaps, } идентификатор conn: 2020, flow_id: встроенный VPN: 20, sibling_flags 80000046, криптографическая карта: ISP-statcm Время sa: оставшееся время жизни ключа (к/сек): (4506229/27680) Размер IV: 16 байт поддержка обнаружения повторов: Да Статус: АКТИВНЫЙ исходящий ах сас: исходящий ПКП САС: Проверяем таблицу маршрутизации: R1#sh IP-маршрут Среди прочего есть такие строки: 172.16.0.0/25 разбит на подсети, 1 подсеть S 172.16.0.0 [1/0] через 188.170.72.35Проверяем пинг:
R1#ping 172.16.0.1 source g0/1
Введите escape-последовательность для аборта.Для пинга мы используем внутренний интерфейс, обращенный к зданию.Отправка 5 100-байтовых сообщений ICMP на адрес 172.16.0.1, время ожидания составляет 2 секунды: Пакет отправлен с исходным адресом 192.168.1.1. !!! Вероятность успеха составляет 100 процентов (5/5), мин/среднее/максимум туда и обратно = 324/357/388 мс.
сеть.
На этом настройка роутеров завершена.
P.S.: Естественно, чтобы IPSec-трафик проходил, должны быть включены соответствующие протоколы и открыты порты на внешнем интерфейсе.
В моем случае это делается с использованием следующего списка доступа: ip access-list extended IPSEC-acl
permit esp any any
permit ahp any any
permit udp host a.b.c.d eq isakmp any
permit udp host a.b.c.d eq non500-isakmp any
permit udp any host a.b.c.d eq isakmp
permit udp any host a.b.c.d eq non500-isakmp
Теги: #cisco #cisco #Сетевые технологии #Администрирование серверов #vpn #ipsec
-
Начало Пути Геймдизайнера
19 Oct, 24 -
Больше Света
19 Oct, 24 -
Персонализация Для Поисковых Сервисов
19 Oct, 24