...
Конфигурирование HUB:
Предварительно настроим протокол OSPF:Блок кода esr(config)# router ospf log-adjacency-changes esr(config)# router ospf 1 esr(config-ospf)# router-id 77.77.77.77 esr(config-ospf)# area 10.10.0.0 esr(config-ospf-area)# enable esr(config-ospf-area)# exit esr(config-ospf)# enable esr(config-ospf)# exit
Настроим интерфейс и определим принадлежность к зоне безопасности:
Блок кода esr(config)# security zone untrusted esr(config-zone)# exit esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# security-zone untrusted esr(config-if-gi)# ip address 150.115.0.5/30 esr(config-if-gi)# exit
Scroll Pagebreak
Настроим GRE-туннель, определим принадлежность к зоне безопасности, настроим OSPF на GRE-туннеле, настроим NHRP и включим туннель и NHRP командой enable. Чтобы HUB стал DR, необходимо выставить максимальный приоритет:Блок кода esr(config)# tunnel gre 1 esr(config-gre)# ttl 16 esr(config-gre)# mtu 1416 esr(config-gre)# multipoint esr(config-gre)# security-zone untrusted esr(config-gre)# local address 150.115.0.5 esr(config-gre)# ip address 10.10.0.1/28 esr(config-gre)# ip ospf instance 1 esr(config-gre)# ip ospf area 10.10.0.0 esr(config-gre)# ip ospf priority 255 esr(config-gre)# ip ospf esr(config-gre)# ip nhrp multicast dynamic esr(config-gre)# ip nhrp enable esr(config-gre)# enable esr(config-gre)# exit
Создадим статические маршруты для подсетей интерфейсов spoke 180.100.0.8/30 и 140.114.0.4/30:
Блок кода esr(config)# ip route 180.100.0.8/30 150.115.0.6 esr(config)# ip route 140.114.0.4/30 150.115.0.6
Произведём настройку IPsec для HUB:
Блок кода esr(config)# security ike proposal ike_prop1 esr(config-ike-proposal)# authentication algorithm md5 esr(config-ike-proposal)# encryption algorithm aes128 esr(config-ike-proposal)# dh-group 2 esr(config-ike-proposal)# exit
Блок кода esr(config)# security ike policy ike_pol1 esr(config-ike-policy)# pre-shared-key ascii-text password esr(config-ike-policy)# proposal ike_prop1 esr(config-ike-policy)# exit
Блок кода esr(config)# security ike gateway ike_spoke esr(config-ike-gw)# ike-policy ike_pol1 esr(config-ike-gw)# local address 150.115.0.5 esr(config-ike-gw)# local network 150.115.0.5/32 protocol gre esr(config-ike-gw)# remote address any esr(config-ike-gw)# remote network any esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# exit
Блок кода esr(config)# security ipsec proposal ipsec_prop1 esr(config-ipsec-proposal)# authentication algorithm md5 esr(config-ipsec-proposal)# encryption algorithm aes128 esr(config-ipsec-proposal)# pfs dh-group 2 esr(config-ipsec-proposal)# exit
Блок кода esr(config)# security ipsec policy ipsec_pol1 esr(config-ipsec-policy)# proposal ipsec_prop1 esr(config-ipsec-policy)# exit
Блок кода esr(config)# security ipsec vpn ipsec_spoke esr(config-ipsec-vpn)# mode ike esr(config-ipsec-vpn)# type transport esr(config-ipsec-vpn)# ike establish-tunnel route esr(config-ipsec-vpn)# ike gateway ike_spoke esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1 esr(config-ipsec-vpn)# enable esr(config-ipsec-vpn)# exit
Привяжем IPsec к GRE-туннелю, чтобы клиенты могли устанавливать шифрованное соединение:
Блок кода esr(config)# tunnel gre 1 esr(config-gre)# ip nhrp ipsec ipsec_spoke dynamic esr(config-gre)# exit
Конфигурирование SPOKE:
Предварительно настроим протокол OSPF с анонсированием подсети LAN1:Блок кода esr(config)# router ospf log-adjacency-changes esr(config)# router ospf 1 esr(config-ospf)# router-id 1.1.1.1 esr(config-ospf)# area 10.10.0.0 esr(config-ospf-area)# network 192.168.1.0/24 esr(config-ospf-area)# enable esr(config-ospf-area)# exit esr(config-ospf)# enable esr(config-ospf)# exit
Настроим интерфейс и определим принадлежность к зоне безопасности:
Блок кода esr(config)# security zone untrusted esr(config-zone)# exit esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# security-zone untrusted esr(config-if-gi)# ip address 180.100.0.10/30 esr(config-if-gi)# exit
Scroll Pagebreak
Настроим GRE-туннель, определим принадлежность к зоне безопасности, настроим OSPF на GRE-туннеле, настроим NHRP и включим туннель и NHRP командой enable. Чтобы HUB стал DR, необходимо выставить минимальный приоритет на spoke:Блок кода esr(config)# tunnel gre 1 esr(config-gre)# ttl 16 esr(config-gre)# mtu 1416 esr(config-gre)# multipoint esr(config-gre)# security-zone untrusted esr(config-gre)# local address 180.100.0.10 esr(config-gre)# ip address 10.10.0.2/28 esr(config-gre)# ip ospf instance 1 esr(config-gre)# ip ospf area 10.10.0.0 esr(config-gre)# ip ospf priority 0 esr(config-gre)# ip ospf esr(config-gre)# ip nhrp holding-time 300 esr(config-gre)# ip nhrp map 10.10.0.1 150.115.0.5 esr(config-gre)# ip nhrp nhs 10.10.0.1/28 esr(config-gre)# ip nhrp multicast nhs esr(config-gre)# ip nhrp enable esr(config-gre)# enable esr(config-gre)# exit
Создадим статические маршруты для подсетей интерфейсов spoke 180.100.0.8/30 и 140.114.0.4/30:
Блок кода esr(config)# ip route 150.115.0.4/30 180.100.0.9 esr(config)# ip route 140.114.0.4/30 180.100.0.9
Произведём настройку IPsec для SPOKE:
Блок кода esr(config)# security ike proposal ike_prop1 esr(config-ike-proposal)# authentication algorithm md5 esr(config-ike-proposal)# encryption algorithm aes128 esr(config-ike-proposal)# dh-group 2 esr(config-ike-proposal)# exit
Блок кода esr(config)# security ike policy ike_pol1 esr(config-ike-policy)# pre-shared-key ascii-text password esr(config-ike-policy)# proposal ike_prop1 esr(config-ike-policy)# exit
Блок кода esr(config)# security ike gateway ike_spoke esr(config-ike-gw)# ike-policy ike_pol1 esr(config-ike-gw)# local address 180.100.0.10 esr(config-ike-gw)# local network 180.100.0.10/32 protocol gre esr(config-ike-gw)# remote address any esr(config-ike-gw)# remote network any esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# exit esr(config)# security ike gateway ike_hub esr(config-ike-gw)# ike-policy ike_pol1 esr(config-ike-gw)# local address 180.100.0.10 esr(config-ike-gw)# local network 180.100.0.10/32 protocol gre esr(config-ike-gw)# remote address 150.115.0.5 esr(config-ike-gw)# remote network 150.115.0.5/32 protocol gre esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# exit
Блок кода esr(config)# security ipsec proposal ipsec_prop1 esr(config-ipsec-proposal)# authentication algorithm md5 esr(config-ipsec-proposal)# encryption algorithm aes128 esr(config-ipsec-proposal)# pfs dh-group 2 esr(config-ipsec-proposal)# exit
Блок кода esr(config)# security ipsec policy ipsec_pol1 esr(config-ipsec-policy)# proposal ipsec_prop1 esr(config-ipsec-policy)# exit
Блок кода esr(config)# security ipsec vpn ipsec_spoke esr(config-ipsec-vpn)# mode ike esr(config-ipsec-vpn)# type transport esr(config-ipsec-vpn)# ike establish-tunnel route esr(config-ipsec-vpn)# ike gateway ike_spoke esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1 esr(config-ipsec-vpn)# enable esr(config-ipsec-vpn)# exit esr(config)# security ipsec vpn ipsec_hub esr(config-ipsec-vpn)# mode ike esr(config-ipsec-vpn)# type transport esr(config-ipsec-vpn)# ike establish-tunnel route esr(config-ipsec-vpn)# ike gateway ike_hub esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1 esr(config-ipsec-vpn)# enable esr(config-ipsec-vpn)# exit
Привяжем IPsec к GRE-туннелю, для возможности установления шифрованного соединения с сервером и с другими клиентами сети:
Блок кода esr(config)# tunnel gre 1 esr(config-gre)# ip nhrp ipsec ipsec_hub static esr(config-gre)# ip nhrp ipsec ipsec_spoke dynamic esr(config-gre)# exit
Scroll Pagebreak Состояние NHRP-записей можно посмотреть командой:
Блок кода esr# show ip nhrp
Дополнительно в security zone-pair untrusted self необходимо разрешить протоколы для GRE over IPSec-туннеля, а также для протокола OSPF:
Блок кода esr(config)# object-group service ISAKMP_PORT esr(config-object-group-service)# port-range 500 esr(config-object-group-service)# port-range 4500 esr(config-object-group-service)# exit esr(config)# security zone-pair untrusted self esr(config-zone-pair)# rule 1 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol udp esr(config-zone-pair-rule)# match destination-port object-group ISAKMP_PORT esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# rule 2 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol gre esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# rule 3 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol esp esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# rule 4 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol ospf esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# exit
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать VTI-туннель и перейти в режим его конфигурирования. | esr(config)# tunnel vti <TUN> | <TUN> – имя туннеля устройства. |
| 2 | Указать локальный IP-адрес VTI-туннеля. | esr(config-vti)#local address <ADDR> | <ADDR> – IP-адрес локального шлюза. |
| 3 | Указать удаленный IP-адрес VTI-туннеля. | esr(config-vti)#remote address <ADDR> | <ADDR> – IP-адрес удаленного шлюза. |
| 4 | Установить IP-адрес локальной стороны VTI-туннеля. | esr(config-vti)# ip address <ADDR/LEN> [unit <ID>] или esr(config-vti)# ip address <ADDR/LEN> secondary [unit <ID>] | <ADDR/LEN> – IP-адрес и префикс подсети задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]; <ID> – номер юнита, принимает значения [1..4]. Ключ secondary указывает, что настроенный адрес является дополнительным IP-адресом. Если это ключевое слово отсутствует, настроенный адрес является основным IP-адресом. Возможно указать до 7 дополнительных IP-адресов. |
| 5 | Включить VTI-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall для VTI-туннеля. | esr(config-vti)# security-zone<NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 12 символов. |
esr(config-vti)# ip firewall disable | |||
| 6 | Включить туннель. | esr(config-vti)#enable | |
| 7 | Создать IKE-профиль и перейти в режим его конфигурирования. | esr(config)# security ike proposal <NAME> | <NAME> – имя профиля протокола IKE, задаётся строкой до 31 символа. |
| 8 | Указать описание конфигурируемого IKE-профиля (необязательно). | esr(config-ike-proposal)# description<DESCRIPTION> | <DESCRIPTION> – описание туннеля, задаётся строкой до 255 символов. |
| 9 | Определить алгоритм аутентификации для IKE (необязательно). | esr(config-ike-proposal)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации, принимает значения: md5, sha1, sha2-256, sha2‑384, sha2-512. Значение по умолчанию: sha1. |
| 10 | Определить алгоритм шифрования для IKE (необязательно). | esr(config-ike-proposal)# encryption algorithm <ALGORITHM> | <ALGORITHM> – протокол шифрования, принимает значения: des, 3des, blowfish128, blowfish192, blowfish256, aes128, aes192, aes256, aes128ctr, aes192ctr, aes256ctr, camellia128, camellia192, camellia256. Значение по умолчанию: 3des. |
11 | Определить номер группы Диффи-Хэллмана (необязательно). | esr(config-ike-proposal)# dh-group <DH-GROUP> | <DH-GROUP> – номер группы Диффи-Хэллмана, принимает значения [1, 2, 5, 14, 15, 16, 17, 18]. Значение по умолчанию: 1. |
12 | Создать IKE-политику и перейти в режим её конфигурирования. | esr(config)# security ike policy <NAME> | <NAME> – имя политики IKE, задаётся строкой до 31 символа. |
13 | Определить режим аутентификации IKE (необязательно). | esr(config-ike-policy)# authentication method <METHOD> | <METHOD> <METHOD> – метод аутентификации ключаIKE-сессии. Может принимать значения:
|
14 | Задать время жизни соединения протокола IKE (необязательно). | esr(config-ike-policy)# lifetime seconds <SEC> | <SEC> – период времени, принимает значения Значение по умолчанию: 10800. |
15 | Привязать IKE-профиль к IKE-политике. | esr(config-ike-policy)# proposal <NAME> | <NAME> – имя профиля протокола IKE, задаётся строкой до 31 символа. |
16 | Указать ключ аутентификации (обязательно, если в качестве режима аутентификации выбран pre-shared-key). | esr(config-ike-policy)# pre-shared-key ascii-text<TEXT> | <TEXT> – строка [1..64] ASCII-символов. |
17 | Создать IKE-шлюз и перейти в режим его конфигурирования. | esr(config)# security ike gateway <NAME> | <NAME> – имя шлюза протокола IKE, задаётся строкой до 31 символа. |
18 | Привязать IKE-политику к IKE-шлюзу. | esr(config-ike-gw)# ike-policy <NAME> | <NAME> – имя политики протокола IKE, задаётся строкой до 31 символа. |
19 | Указать версию IKE (необязательно). | esr(config-ike-gw)# version <VERSION> | <version> – версия IKE-протокола: v1-only или v2-only. Значение по умолчанию: v1-only. |
20 | Установить режим перенаправления трафика в туннель – route-based. | esr(config-ike-gw)# mode route-based | |
21 | Указать действие для DPD (необязательно). | esr(config-ike-gw)# dead-peer-detection action <MODE> | <MODE> – режим работы DPD:
Значение по умолчанию: none. |
22 | Указать интервал между отправкой сообщений механизмом DPD (необязательно). | esr(config-ike-gw)# dead-peer-detection interval <SEC> | <SEC> – интервал между отправкой сообщений механизмом DPD, принимает значения [1..180] секунд. Значение по умолчанию: 2. |
23 | Указать период времени ожидания ответа на сообщения механизма DPD (необязательно). | esr(config-ike-gw)# dead-peer-detection timeout <SEC> | <SEC> – период времени ожидания ответа на сообщения механизма DPD принимает значения [1..180] секунд. Значение по умолчанию: 30 секунд. |
| 24 | Указать базовый период времени ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit timeout <SEC> | <SEC> – базовый период времени ожидания ответа на сообщения принимает значения [1..30] секунд. Значение по умолчанию: 4 секунды. |
| 25 | Указать количество попыток повторной отправки сообщений после наступления таймаута ожидания ответа (необязательно). | esr(config-ike-gw)# retransmit tries <TRIES> | <TRIES> – количество попыток повторной отправки сообщений механизма DPD в случае наступления таймаута ожидания ответа принимает значения от 1 до 10. "retransmit timeout" * 1.8 ^ (N-1), где N - номер попытки. Значение по умолчанию: 5 попыток. |
| 26 | Указать уровень случайного разброса периода ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit jitter <VALUE> | <VALUE> – максимальный процент разброса значений, принимает значения [0..100]. Значение по умолчанию: 0 % |
| 27 | Указать ограничение максимального периода времени ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit limit <SEC> | <SEC> – максимальный период времени ожидания ответа на сообщения принимает значения [15..300] секунд. Значение по умолчанию: 0 секунд, у периода нет верхнего предела. |
| 28 | Данная команда отключает расширение MOBIKE IKEv2, которое позволяет инициатору ike-сессии изменять local address в соответствии с RFC 4555. | esr(config-ike-gw)# mobike disable | |
29 | Привязать VTI-туннель к IKE-шлюзу. | esr(config-ike-gw)# bind-interface vti <VTI> | <VTI> – идентификационный номер интерфейса VTI. |
30 | Создать в IPsec-профиль. | esr(config)# security ipsec proposal <NAME> | <NAME> – имя профиля протокола IPsec, задаётся строкой до 31 символа. |
31 | Определить алгоритм аутентификации для IPsec (необязательно). | esr(config-ipsec-proposal)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации, принимает значения: md5, sha1, sha2-256, sha2‑384, sha2-512. Значение по умолчанию: sha1. |
32 | Определить алгоритм шифрования для IPsec (необязательно). | esr(config-ipsec-proposal)# encryption algorithm <ALGORITHM> | <ALGORITHM> – протокол шифрования, принимает значения: des, 3des, blowfish128, blowfish192, blowfish256, aes128, aes192, aes256, aes128ctr, aes192ctr, aes256ctr, camellia128, camellia192, camellia256. Значение по умолчанию: 3des. |
33 | Указать протокол инкапсуляции для IPsec (необязательно). | esr(config-ipsec-proposal)# protocol <PROTOCOL> | <PROTOCOL> – инкапсулирующий протокол, принимает значения:
Значение по умолчанию: esp. |
34 | Создать IPsec-политику и перейти в режим её конфигурирования. | esr(config)# security ipsec policy <NAME> | <NAME> – имя политики IPsec, задаётся строкой до 31 символа. |
35 | Привязать IPsec-профиль к IPsec-политике. | esr(config-ipsec-policy)# proposal <NAME> | <NAME> – имя профиля протокола IPsec, задаётся строкой до 31 символа. |
36 | Задать время жизни IPsec-туннеля (необязательно). | esr(config-ipsec- policy)# lifetime { seconds <SEC> | | <SEC> – период времени жизни IPsec-туннеля, по истечении происходит пересогласование. Принимает значения [1140..86400] секунд. <PACKETS> – количество пакетов, после передачи которого происходит пересогласование IPsec-туннеля. Принимает значения [4..86400]. <KB> – объем трафика, после передачи которого происходит пересогласование IPsec-туннеля. Принимает значения [4..4608000] секунд. Значение по умолчанию: 28800 секунд. |
37 | Отключить реаутентификацию IKE-сессии (необязательно). | esr(config-ipsec- policy)# reauthentication disable | |
38 | Создать IPsec VPN и перейти в режим конфигурирования. | esr(config)# security ipsec vpn <NAME> | <NAME> – имя VPN, задаётся строкой до 31 символа. |
39 | Определить режим согласования данных, необходимых для активации VPN. | esr(config-ipsec-vpn)# mode <MODE> | <MODE> – режим работы VPN. |
40 | Привязать IPsec-политику к IPsec-VPN. | esr(config-ipsec-vpn)# ike ipsec-policy <NAME> | <NAME> – имя IPsec-политики, задаётся строка до 31 символа. |
41 | Задать значение DSCP для использования в IP-заголовке исходящих пакетов IKE-протокола (необязательно). | esr(config-ipsec-vpn)# ike dscp <DSCP> | DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 63. |
42 | Установить режим активации VPN. | esr(config-ipsec-vpn)# ike establish-tunnel <MODE> | <MODE> – режим активации VPN:
|
43 | Осуществить привязку IKE-шлюза к IPsec-VPN. | esr(config-ipsec-vpn)# ike gateway <NAME> | <NAME> – имя IKE-шлюза, задаётся строкой до 31 символа. |
44 | Установить значение временного интервала в секундах, по истечению которого соединение закрывается, если не было принято или передано ни одного пакета через SA (необязательно). | esr(config-ipsec-vpn)# ike idle-time <TIME> | <TIME> – интервал в секундах, принимает значения [4..86400]. |
45 | Отключить пересогласование ключей до разрыва IKE-соединения по истечению времени, количеству переданных пакетов или байт (необязательно). | esr(config-ipsec-vpn)# ike rekey disable | |
46 | Настроить начало пересогласования ключей IKE-соединения до истечения времени жизни (необязательно). | esr(config-ipsec-vpn)# ike rekey margin { seconds <SEC> | | <SEC> – интервал времени в секундах, оставшийся до закрытия соединения (задается командой lifetimeseconds, см. 22.2.13). Принимает значения [4..86400]. <PACKETS> – количество пакетов, оставшихся до закрытия соединения (задается командой lifetimepackets). Принимает значения [4..86400] <KB> – объем трафика в килобайтах, оставшийся до закрытия соединения (задается командой lifetimekilobytes). Принимает значения [4..86400] Значение по умолчанию:
|
47 | Установить уровень случайного разброса значений параметров margin seconds, margin packets, margin kilobytes (необязательно). | esr(config-ipsec-vpn)# ike rekey randomization <VALUE> | <VALUE> – максимальный процент разброса значений, принимает значения [1..100]. Значение по умолчанию: 100% |
48 | Указать описание для IPsec-VPN (необязательно). | esr(config-ipsec-vpn)# description <DESCRIPTION> | <DESCRIPTION> – описание профиля, задаётся строкой до 255 символов. |
49 | Активировать IPsec VPN. | esr(config-ipsec-vpn)# enable |
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать IKE-экземпляр и перейти в режим его конфигурирования. | esr(config)# security ike proposal <NAME> | <NAME> – имя профиля протокола IKE, задаётся строкой до 31 символа. |
| 2 | Указать описание конфигурируемого туннеля (необязательно). | esr(config-ike-proposal)# description<DESCRIPTION> | <DESCRIPTION> – описание туннеля, задаётся строкой до 255 символов. |
| 3 | Определить алгоритм аутентификации для IKE. | esr(config-ike-proposal)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации, принимает значения: md5, sha1, sha2-256, sha2‑384, sha2-512. |
| 4 | Определить алгоритм шифрования для IKE. | esr(config-ike-proposal)# encryption algorithm <ALGORITHM> | <ALGORITHM> – протокол шифрования, принимает значения: des, 3des, blowfish128, blowfish192, blowfish256, aes128, aes192, aes256, aes128ctr, aes192ctr, aes256ctr, camellia128, camellia192, camellia256. |
| 5 | Определить номер группы Диффи-Хэллмана. | esr(config-ike-proposal)# dh-group <DH-GROUP> | <DH-GROUP> – номер группы Диффи-Хэллмана, принимает значения [1, 2, 5, 14, 15, 16, 17, 18]. |
| 6 | Создать политику для профиля IKE и перейти в режим её конфигурирования. | esr(config)# security ike policy <NAME> | <NAME> – имя политики IKE, задаётся строкой до 31 символа. |
| 7 | Определить режим аутентификации. | esr(config-ike-policy)# authentication method <METHOD> | <METHOD> <METHOD> – метод аутентификации ключаIKE-сессии. Может принимать значения:
|
| 8 | Задать время жизни соединения протокола IKE (необязательно). | esr(config-ike-policy)# lifetime seconds <SEC> | <SEC> – период времени, принимает значения [4 ..86400] секунд. Значение по умолчанию: 10800. |
| 9 | Привязать политику к профилю. | esr(config-ike-policy)# proposal <NAME> | <NAME> – имя профиля протокола IKE, задаётся строкой до 31 символа. |
| 10 | Указать ключ аутентификации. | esr(config-ike-policy)#pre-shared-key ascii-text<TEXT> | <TEXT> – строка [1..64] ASCII-символов. |
| 11 | Создать шлюз для IKE и перейти в режим его конфигурирования. | esr(config)# security ike gateway <NAME> | <NAME> – имя шлюза протокола IKE, задаётся строкой до 31 символа. |
| 12 | Привязать политику IKE. | esr(config-ike-gw)# ike-policy <NAME> | <NAME> – имя политики протокола IKE, задаётся строкой до 31 символа. |
| 13 | Указать версию IKE (необязательно). | esr(config-ike-gw)# version <VERSION> | <version> – версия IKE-протокола: v1-only или v2-only. |
| 14 | Установить режим перенаправления трафика в туннель. | esr(config-ike-gw)#mode<MODE> | <MODE> – режим перенаправления трафика в туннель, принимает значения:
|
| 15 | Указать действие для DPD (необязательно). | esr(config-ike-gw)# dead-peer-detection action <MODE> | <MODE> – режим работы DPD:
|
| 16 | Указать интервал между отправкой сообщений механизмом DPD (необязательно). | esr(config-ike-gw)#dead-peer-detection interval <SEC> | <SEC> – интервал между отправкой сообщений механизмом DPD, принимает значения [1..180] секунд. |
17 | Указать период времени ожидания ответа на сообщения механизма DPD (необязательно). | esr(config-ike-gw)# dead-peer-detection timeout <SEC> | <SEC> – период времени ожидания ответа на сообщения механизма DPD принимает значения [1..180] секунд. Значение по умолчанию: 30 секунд. |
| 18 | Указать базовый период времени ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit timeout <SEC> | <SEC> – базовый период времени ожидания ответа на сообщения принимает значения [1..30] секунд. Значение по умолчанию: 4 секунды. |
| 19 | Указать количество попыток повторной отправки сообщений после наступления таймаута ожидания ответа (необязательно). | esr(config-ike-gw)# retransmit tries <TRIES> | <TRIES> – количество попыток повторной отправки сообщений в случае наступления таймаута ожидания ответа принимает значения от 1 до 10. "retransmit timeout" * 1.8 ^ (N-1), где N - номер попытки. Значение по умолчанию: 5 попыток. |
| 20 | Указать уровень случайного разброса периода ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit jitter <VALUE> | <VALUE> – максимальный процент разброса значений, принимает значения [0..100]. Значение по умолчанию: 0 % |
| 21 | Указать ограничение максимального периода времени ожидания ответа на сообщения (необязательно). | esr(config-ike-gw)# retransmit limit <SEC> | <SEC> – максимальный период времени ожидания ответа на сообщения принимает значения [15..300] секунд. Значение по умолчанию: 0 секунд, у периода нет верхнего предела. |
22 | Установить IP-адрес удаленного шлюза IPsec-туннеля. | esr(config-ike-gw)#remote address <ADDR> | <ADDR> – IP-адрес удаленного шлюза. |
23 | Установить IP-адрес подсети получателя, а также IP-протокол и порт. | esr(config-ike-gw)# remote network <ADDR/LEN> | <ADDR/LEN> – IP-адрес и маска подсети отправителя. Параметр задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]; <TYPE> – тип протокола, принимает значения: esp, icmp, ah, eigrp, ospf, igmp, ipip, tcp, pim, udp, vrrp, rdp, l2tp, gre; <ID> – идентификационный номер IP-протокола, принимает значения [0x00-0xFF]; <PORT> – TCP/UDP-порт, принимает значения [1..65535]. |
| Установить | |||
24 | Создать в профиль IPsec. | esr(config)# security ipsec proposal <NAME> | <NAME> – имя профиля протокола IPsec, задаётся строкой до 31 символа. |
25 | Определить алгоритм аутентификации для IPsec. | esr(config-ipsec-proposal)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации, принимает значения: md5, sha1, sha2-256, sha2‑384, sha2-512. |
26 | Определить алгоритм шифрования для IPsec. | esr(config-ipsec-proposal)# encryption algorithm <ALGORITHM> | <ALGORITHM> – протокол шифрования, принимает значения: des, 3des, blowfish128, blowfish192, blowfish256, aes128, aes192, aes256, aes128ctr, aes192ctr, aes256ctr, camellia128, camellia192, camellia256. |
27 | Указать протокол (необязательно). | esr(config-ipsec-proposal)#protocol <PROTOCOL> | <PROTOCOL> – инкапсулирующий протокол, принимает значения
Значение по умолчанию: esp. |
28 | Создать политику для профиля IPsec и перейти в режим её конфигурирования. | esr(config)# security ipsec policy <NAME> | <NAME> – имя политики IPsec, задаётся строкой до 31 символа. |
29 | Привязать политику к профилю. | esr(config-ipsec-policy)# proposal <NAME> | <NAME> – имя профиля протокола IPsec, задаётся строкой до 31 символа. |
30 | Задать время жизни IPsec-туннеля (необязательно). | esr(config-ipsec-policy)# lifetime { seconds <SEC> | | <SEC> – период времени жизни IPsec-туннеля, по истечении которого происходит пересогласование. Принимает значения [1140..86400] секунд. <PACKETS> – количество пакетов, после передачи которых происходит пересогласование IPsec-туннеля. Принимает значения [4..86400]. <KB> – объем трафика, после передачи которого происходит пересогласование IPsec-туннеля. Принимает значения [4..4608000] секунд. |
31 | Отключить реаутентификацию IKE-сессии (необязательно). | esr(config-ipsec-policy)# reauthentication disable | |
32 | Создать IPsec VPN и перейти в режим конфигурирования. | esr(config)# security ipsecvpn <NAME> | <NAME> – имя VPN, задаётся строкой до 31 символа. |
33 | Определить режим согласования данных, необходимых для активации VPN. | esr(config-ipsec-vpn)# mode <MODE> | <MODE> – режим работы VPN. |
34 | Привязать IPsec политику к VPN. | esr(config-ipsec-vpn)#ike ipsec-policy <NAME> | <NAME> – имя IPsec-политики, задаётся строка до 31 символа. |
35 | Задать значение DSCP для использования в IP-заголовке исходящих пакетов IKE-протокола (необязательно). | esr(config-ipsec-vpn)#ike dscp <DSCP> | DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. |
36 | Установить режим активации VPN. | esr(config-ipsec-vpn)#ike establish-tunnel <MODE> | <MODE> – режим активации VPN:
|
37 | Осуществить привязка IKE-шлюза к VPN. | esr(config-ipsec-vpn)# ike gateway <NAME> | <NAME> – имя IKE-шлюза, задаётся строкой до 31 символа. |
38 | Установить значение временного интервала в секундах, по истечению которого соединение закрывается, если не было принято или передано ни одного пакета через SA (необязательно). | esr(config-ipsec-vpn)# ike idle-time <TIME> | <TIME> – интервал в секундах, принимает значения [4..86400]. |
39 | Отключить пересогласование ключей до разрыва IKE-соединения по истечению времени, количеству переданных пакетов или байт (необязательно). | esr(config-ipsec-vpn)#ike rekey disable | |
40 | Настроить начало пересогласования ключей IKE-соединения до истечения времени жизни (необязательно). | esr(config-ipsec-vpn)# Ike rekey margin { seconds <SEC> | | <SEC> – интервал времени в секундах, оставшийся до закрытия соединения (задается командой lifetimeseconds) . Принимает значения [4..86400]. <PACKETS> – количество пакетов, оставшихся до закрытия соединения (задается командой lifetimepackets). Принимает значения [4..86400]. <KB> – объем трафика в килобайтах, оставшийся до закрытия соединения (задается командой lifetimekilobytes). Принимает значения [4..86400] |
41 | Установить уровень случайного разброса значений параметров marginseconds, marginpackets, marginkilobytes (необязательно). | esr(config-ipsec-vpn)# ike rekey randomization <VALUE> | <VALUE> – максимальный процент разброса значений, принимает значения [1..100]. |
42 | Описать VPN (необязательно). | esr(config-ipsec-vpn)# description <DESCRIPTION> | <DESCRIPTION> – описание профиля, задаётся строкой до 255 символов. |
43 | Активировать IPsec VPN. | esr(config-ipsec-vpn)# enable |
| Якорь | ||||
|---|---|---|---|---|
|
Задача:
Настроить IPsec-туннель между R1 и R2.
...
- группа Диффи-Хэллмана: 2;
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5;
- аутентификация по общему известному ключу.
IPsec:
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
Решение:
| Примечание |
|---|
Предварительно в В firewall необходимо разрешить протокол ESP и ISAKMP (, UDP-порт 500 (для протокола ISAKMP), 4500).UDP-порт 4500 (для IPsec трафика при наличии NAT между IPsec соседями). |
1) Конфигурирование R1
Настроим
...
IP-адрес на внешнем сетевом интерфейсе:
| Блок кода |
|---|
esr# configure
esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)# ip address 198.51.100.1/24 |
...
esr(config-if-gi |
...
Для настройки правил зон безопасности потребуется создать профиль порта протокола ISAKMP:
...
)# exit |
Создадим
...
набор алгоритмов для протокола IKE. В
...
наборе укажем группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IKE-соединения:
| Блок кода |
|---|
esr(config)# security ike proposal ike_prop1
esr(config-ike-proposal)# dh-group 2
esr(config-ike-proposal)# authentication algorithm md5
esr(config-ike-proposal)# encryption algorithm aes128
esr(config-ike-proposal)# exit |
Создадим политику протокола IKE. В политике
...
укажем ранее созданный набор алгоритмов, а также укажем общий известный ключ, который будет использован при аутентификации IKE-сессии:
| Блок кода |
|---|
esr(config)# security ike policy ike_pol1
esr(config-ike-policy)# pre-shared-key hexadecimal 123FFF
esr(config-ike-policy)# proposal ike_prop1
esr(config-ike-policy)# exit |
| Scroll Pagebreak |
|---|
Создадим шлюз протокола IKE. В данном
...
разделе привяжем раннее созданную политику протокола IKE, укажем IP-адреса для построения IPsec туннеля и набор локальных и удаленных сетей, трафик между которыми необходимо будет шифровать. Также укажем версию протокола IKE и "policy-based" в качестве режима перенаправления трафика в туннель:
| Блок кода |
|---|
esr(config)# security ike gateway ike_gw1
esr(config-ike-gw)# ike-policy ike_pol1
esr(config-ike-gw)# local address 198.51.100.1
esr(config-ike-gw)# local network 10.0.0.0/16
esr(config-ike-gw)# remote address 203.0.113.1
esr(config-ike-gw)# remote network 192.0.2.0/24
esr(config-ike-gw)# mode policy-based
esr(config-ike-gw)# exit |
Создадим
...
набор алгоритмов для IPsec-туннеля. В
...
нем укажем алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IPsec-туннеля:
| Блок кода |
|---|
esr(config)# security ipsec proposal ipsec_prop1
esr(config-ipsec-proposal)# authentication algorithm md5
esr(config-ipsec-proposal)# encryption algorithm aes128
esr(config-ipsec-proposal)# exit |
Создадим политику для IPsec-туннеля. В политике указывается
...
раннее описанный набор алгоритмов для IPsec-туннеля
...
.
| Блок кода |
|---|
esr(config)# security ipsec policy ipsec_pol1
esr(config-ipsec-policy)# proposal ipsec_prop1
esr(config-ipsec-policy)# exit |
Создадим IPsec VPN. В VPN указывается шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения. После ввода всех параметров включим туннель командой enable:
| Блок кода |
|---|
esr(config)# security ipsec vpn ipsec1
esr(config-ipsec-vpn)# mode ike
esr(config-ipsec-vpn)# ike establish-tunnel route
esr(config-ipsec-vpn)# ike gateway ike_gw1
esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1
esr(config-ipsec-vpn)# enable
esr(config-ipsec-vpn)# exit
esr(config)# exit |
2) Конфигурирование R2
Настроим
...
IP-адрес на внешнем сетевом интерфейсе:
| Блок кода |
|---|
esr# configure
esr(config)# interface gi 1/0/1
esr(config-if)# ip address 203.0.113.1/24 |
...
esr(config-if |
...
Для настройки правил зон безопасности потребуется создать профиль порта протокола ISAKMP:
...
)# exit |
Создадим
...
набор алгоритмов для протокола IKE. В
...
наборе укажем группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IKE-соединения:
| Блок кода |
|---|
esr(config)# security ike proposal ike_prop1
esr(config-ike-proposal)# dh-group 2
esr(config-ike-proposal)# authentication algorithm md5
esr(config-ike-proposal)# encryption algorithm aes128
esr(config-ike-proposal)# exit
esr(config)# |
Создадим политику протокола IKE. В политике
...
укажем ранее созданный набор алгоритмов, а также укажем общий известный ключ, который будет использован при аутентификации IKE-сессии:
| Блок кода |
|---|
esr(config)# security ike policy ike_pol1
esr(config-ike-policy)# pre-shared-key hexadecimal 123FFF
esr(config-ike-policy)# proposal ike_prop1
esr(config-ike-policy) |
...
# exit |
Создадим шлюз протокола IKE. В данном разделе привяжем раннее созданную политику протокола IKE, укажем IP-адреса для построения IPsec туннеля и набор локальных и удаленных сетей, трафик между которыми необходимо будет шифровать. Также укажем версию протокола IKE и «policy-based» в качестве режима перенаправления трафика в туннель:
| Блок кода |
|---|
esr(config)# security ike gateway ike_gw1
esr(config-ike-gw)# ike-policy ike_pol1
esr(config-ike-gw)# remote address 198.51.100.1
esr(config-ike-gw)# remote network 10.0.0.0/16
esr(config-ike-gw)# local address 203.0.113.1
esr(config-ike-gw)# local network 192.0.2.0/24
esr(config-ike-gw)# mode policy-based
esr(config-ike-gw)# exit |
Создадим набор алгоритмов для IPsec-туннеля. В нем укажем алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IPsec-туннеля:
| Блок кода |
|---|
esr(config)# security ipsec proposal ipsec_prop1
esr(config-ipsec-proposal)# authentication algorithm md5
esr(config-ipsec-proposal)# encryption algorithm aes128
esr(config-ipsec-proposal)# exit |
Создадим политику для IPsec-туннеля. В политике указывается ранее описанный набор алгоритмов для IPsec-туннеля.
| Блок кода |
|---|
esr(config)# security ipsec policy ipsec_pol1
esr(config-ipsec-policy)# proposal ipsec_prop1
esr(config-ipsec-policy)# exit |
| Scroll Pagebreak |
|---|
Создадим IPsec VPN. В VPN указывается шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения. После ввода всех параметров включим туннель командой enable:
| Блок кода |
|---|
esr(config)# security ipsec vpn ipsec1
esr(config-ipsec-vpn)# mode ike
esr(config-ipsec-vpn)# ike establish-tunnel route
esr(config-ipsec-vpn)# ike gateway ike_gw1
esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1
esr(config-ipsec-vpn)# enable
esr(config-ipsec-vpn)# exit
esr(config)# exit |
Состояние туннеля можно посмотреть командой:
| Блок кода |
|---|
esr# show security ipsec vpn status ipsec1 |
Конфигурацию туннеля можно посмотреть командой:
| Блок кода |
|---|
esr# show security ipsec vpn configuration ipsec1 |
Пример настройки Policy-based IPsec VPN с аутентификацией сертификатам X.509, выписываемых PKI-клиентом
Задача:
Настроить IPsec-туннель между R1 и R2.
R1 IP-адрес – 198.51.100.1;
R2 IP-адрес – 203.0.113.1;
PKI:
- R1 выступает в роли PKI-сервера – удостоверяющего центра с самоподписанным сертификатом;
- На R1 и R2 настраиваются PKI-клиенты, запрашивающие выпуск сертификатов для IPsec VPN на R1.
IKE:
- группа Диффи-Хэллмана: 2;
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5;
- аутентификация по сертификатам X.509.
Scroll Pagebreak
IPsec:
- алгоритм шифрования: AES 128 bit;
- алгоритм аутентификации: MD5.
Решение:
| Примечание |
|---|
В firewall необходимо разрешить протокол ESP, UDP-порт 500 (для протокола ISAKMP), UDP-порт 4500 (для IPsec трафика при наличии NAT между IPsec соседями). Также на стороне R1 необходимо разрешить TCP-порт 80 для доступа PKI-клиентов к PKI-серверу. |
1) Конфигурирование R1
Настроим IP-адрес на внешнем сетевом интерфейсе:
| Блок кода |
|---|
esr# configure
esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)# ip address 198.51.100.1/24
esr(config-if-gi)# exit |
Настроим NTP-клиента на получение точного времени от шлюза Интернет-провайдера:
| Блок кода |
|---|
esr(config)# ntp enable
esr(config)# ntp server 198.51.100.15
esr(config-ntp-server)# exit
esr(config)# |
Настроим PKI-сервер. В нем заполним отличительное имя, challenge-password, время жизни выписываемых клиентских сертификатов и привяжем PKI-сервер к внешнему сетевому интерфейсу:
| Блок кода |
|---|
esr(config)# crypto pki server
esr(config-pki-server)# subject-name
esr(config-pki-server-subject-name)# country RU
esr(config-pki-server-subject-name)# state Moscow
esr(config-pki-server-subject-name)# locality Moscow
esr(config-pki-server-subject-name)# organization Company
esr(config-pki-server-subject-name)# common-name ca.company.loc
esr(config-pki-server-subject-name)# exit
esr(config-pki-server)# source-interface gi 1/0/1
esr(config-pki-server)# challenge-password password
esr(config-pki-server)# lifetime 7
esr(config-pki-server)# enable
esr(config-pki-server)# exit
esr(config)# |
| Scroll Pagebreak |
|---|
На этом этапе необходимо применить конфигурацию на маршрутизаторе, чтобы получить цифровой отпечаток сертификата PKI-сервера из вывода команды show crypto pki server, он понадобится в дальнейшей настройке PKI-клиентов:
| Блок кода |
|---|
esr# show crypto pki server
Status: Enabled
Lifetime days: 14
Certificate fingerprint: 79:D2:B6:7E:DF:77:2D:C5:27:68:99:10:BA:EC:D2:47
Source: gigabitethernet 1/0/1
Last issued serial number: --
Challenge password: Active
ESR.CA# |
Продолжим дальнейшую настройку PKI-клиента. Необходимо заполнить отличительное имя, URL для подключения к PKI-серверу (в случае маршрутизатора R1 – его собственный IP-адрес, назначенный на внешний интерфейс), ранее полученный цифровой отпечаток сертификата PKI-сервера и доменное имя маршрутизатора в качестве альтернативного имени клиентского сертификата:
| Блок кода |
|---|
esr(config)# crypto pki trustpoint TP_R1
esr(config-trustpoint)# subject-name
esr(config-trustpoint-subject-name)# country RU
esr(config-trustpoint-subject-name)# state Moscow
esr(config-trustpoint-subject-name)# locality Moscow
esr(config-trustpoint-subject-name)# organization Company
esr(config-trustpoint-subject-name)# common-name r1.company.loc
esr(config-trustpoint-subject-name)# exit
esr(config-trustpoint)# subject-alt-name
esr(config-trustpoint-san)# dns r1.company.loc
esr(config-trustpoint-san)# exit
esr(config-trustpoint)# url http://198.51.100.1/
esr(config-trustpoint)# fingerprint 79:D2:B6:7E:DF:77:2D:C5:27:68:99:10:BA:EC:D2:47
esr(config-trustpoint)# challenge-password password
esr(config-trustpoint)# enable
esr(config-trustpoint)# exit
esr(config)# |
Перейдем к настройке VPN.
Создадим набор алгоритмов для протокола IKE. В наборе укажем группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IKE-соединения:
| Блок кода |
|---|
esr(config)# security ike proposal ike_prop1
esr(config-ike-proposal)# dh-group 2
esr(config-ike-proposal)# authentication algorithm md5
esr(config-ike-proposal)# encryption algorithm aes128
esr(config-ike-proposal)# exit |
| Scroll Pagebreak |
|---|
Создадим политику протокола IKE. В политике указываем ранее созданный набор алгоритмов, в качестве метода аутентификации выбираем "trustpoint" и в команде crypto trustpoint указываем имя ранее созданного PKI-клиента, выписываемые им сертификаты будут использованы при аутентификации IKE-сессии:
| Блок кода |
|---|
esr(config)# security ike policy ike_pol1
esr(config-ike-policy)# proposal ike_prop1
esr(config-ike-policy)# authentication method trustpoint
esr(config-ike-policy)# crypto trustpoint TP_R1
esr(config-ike-policy)# exit |
Создадим шлюз протокола IKE. В данном разделе привяжем раннее созданную политику протокола IKE, укажем IP-адреса для построения IPsec туннеля и набор локальных и удаленных сетей, трафик между которыми необходимо будет шифровать. Также укажем версию протокола IKE и «policy-based» в качестве режима перенаправления трафика в туннель:
| Примечание |
|---|
Важным моментом при настройке аутентификации по сертификатам X.509 является указание корректных local id и remote id, присутствующих в сертификатах в качестве альтернативных имен сертификата. Поскольку ранее в настройках PKI-клиента в качестве альтернативного имени было указано полное доменное имя маршрутизатора – укажем его и в командах local id и remote id. |
| Блок кода |
|---|
esr(config)# security ike gateway ike_gw1
esr(config-ike-gw)# ike-policy ike_pol1
esr(config-ike-gw)# local address 198.51.100.1
esr(config-ike-gw)# local network 10.0.0.0/16
esr(config-ike-gw)# remote address 203.0.113.1
esr(config-ike-gw)# remote network 192.0.2.0/24
esr(config-ike-gw)# local id dns r1.company.loc
esr(config-ike-gw)# remote id dns r2.company.loc
esr(config-ike-gw)# mode policy-based
esr(config-ike-gw)# exit |
Создадим набор алгоритмов для IPsec-туннеля. В нем укажем алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IPsec-туннеля:
| Блок кода |
|---|
esr(config)# security ipsec proposal ipsec_prop1
esr(config-ipsec-proposal)# authentication algorithm md5
esr(config-ipsec-proposal)# encryption algorithm aes128
esr(config-ipsec-proposal)# exit |
Создадим политику для IPsec-туннеля. В политике указывается ранее описанный набор алгоритмов для IPsec-туннеля.
| Блок кода |
|---|
esr(config)# security ipsec policy ipsec_pol1
esr(config-ipsec-policy)# proposal ipsec_prop1
esr(config-ipsec-policy)# exit |
| Scroll Pagebreak |
|---|
Создадим IPsec VPN. В VPN указываются шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения. После ввода всех параметров включим туннель командой enable:
| Блок кода |
|---|
esr(config)# security ipsec vpn ipsec1
esr(config-ipsec-vpn)# mode ike
esr(config-ipsec-vpn)# ike establish-tunnel route
esr(config-ipsec-vpn)# ike gateway ike_gw1
esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1
esr(config-ipsec-vpn)# enable
esr(config-ipsec-vpn)# exit
esr(config)# exit |
2) Конфигурирование R2
Настроим IP-адрес на внешнем сетевом интерфейсе:
| Блок кода |
|---|
esr# configure
esr(config)# interface gi 1/0/1
esr(config-if)# ip address 203.0.113.1/24
esr(config-if)# exit |
Произведем настройку настройку PKI-клиента. Необходимо заполнить отличительное имя, URL для подключения к PKI-серверу (в случае маршрутизатора R2 – внешний IP-адрес маршрутизатора R1), ранее полученный цифровой отпечаток сертификата PKI-сервера и доменное имя маршрутизатора в качестве альтернативного имени клиентского сертификата:
| Блок кода |
|---|
esr(config)# crypto pki trustpoint TP_R2
esr(config-trustpoint)# subject-name
esr(config-trustpoint-subject-name)# country RU
esr(config-trustpoint-subject-name)# state Moscow
esr(config-trustpoint-subject-name)# locality Moscow
esr(config-trustpoint-subject-name)# organization Company
esr(config-trustpoint-subject-name)# common-name r2.company.loc
esr(config-trustpoint-subject-name)# exit
esr(config-trustpoint)# subject-alt-name
esr(config-trustpoint-san)# dns r2.company.loc
esr(config-trustpoint-san)# exit
esr(config-trustpoint)# url http://198.51.100.1/
esr(config-trustpoint)# fingerprint 79:D2:B6:7E:DF:77:2D:C5:27:68:99:10:BA:EC:D2:47
esr(config-trustpoint)# challenge-password password
esr(config-trustpoint)# enable
esr(config-trustpoint)# exit
esr(config)# |
| Scroll Pagebreak |
|---|
Перейдем к настройке VPN.
Создадим набор алгоритмов для протокола IKE. В наборе укажем группу Диффи-Хэллмана 2, алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IKE-соединения:
| Блок кода |
|---|
esr(config)# security ike proposal ike_prop1
esr(config-ike-proposal)# dh-group 2
esr(config-ike-proposal)# authentication algorithm md5
esr(config-ike-proposal)# encryption algorithm aes128
esr(config-ike-proposal)# exit
esr(config)# |
Создадим политику протокола IKE. В политике указываем ранее созданный набор алгоритмов, в качестве метода аутентификации выбираем «trustpoint» и в команде crypto trustpoint указываем имя ранее созданного PKI-клиента, выписываемые им сертификаты будут использованы при аутентификации IKE-сессии:
| Блок кода |
|---|
esr(config)# security ike policy ike_pol1
esr(config-ike-policy)# proposal ike_prop1
esr(config-ike-policy)# authentication method trustpoint
esr(config-ike-policy)# crypto trustpoint TP_R2
esr(config-ike-policy)# exit |
Создадим шлюз протокола IKE. В данном разделе привяжем ранее созданную политику протокола IKE, укажем IP-адреса для построения IPsec туннеля и набор локальных и удаленных сетей, трафик между которыми необходимо будет шифровать. Также укажем версию протокола IKE и «policy-based» в качестве режима перенаправления трафика в туннель:
| Примечание |
|---|
Важным моментом при настройке аутентификации по сертификатам X.509 является указание корректных «local id» и «remote id», присутствующих в сертификатах в качестве альтернативных имен сертификата. Поскольку ранее в настройках PKI-клиента в качестве альтернативного имени было указано полное доменное имя маршрутизатора – укажем его и в командах local id и remote id. |
| Блок кода |
|---|
esr(config)# security ike gateway ike_gw1 esr(config-ike-gw)# ike-policy ike_pol1 esr(config-ike-gw)# remote address 198.51.100.1 esr(config-ike-gw)# remote network 10.0.0.0/16 esr(config-ike-gw)# local address 203.0.113.1 esr(config-ike-gw)# local network 192.0.2.0/24 esr(config-ike-gw)# local id dns r2.company.loc esr(config-ike-gw)# remote id dns r1.company.loc esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# exit |
...
| Scroll Pagebreak |
|---|
Создадим набор алгоритмов для IPsec-туннеля. В
...
нем укажем алгоритм шифрования AES 128 bit, алгоритм аутентификации MD5. Данные параметры безопасности используются для защиты IPsec-туннеля:
| Блок кода |
|---|
esr(config)# security ipsec proposal ipsec_prop1
esr(config-ipsec-proposal)# authentication algorithm md5
esr(config-ipsec-proposal)# encryption algorithm aes128
esr(config-ipsec-proposal)# exit |
Создадим политику для IPsec-туннеля. В политике указывается
...
ранее описанный набор алгоритмов для IPsec-туннеля
...
.
| Блок кода |
|---|
esr(config)# security ipsec policy ipsec_pol1
esr(config-ipsec-policy)# proposal ipsec_prop1
esr(config-ipsec-policy)# exit |
| Scroll Pagebreak |
|---|
...
Создадим IPsec VPN. В VPN
...
указываются шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и способ установления соединения. После ввода всех параметров включим туннель командой enable:
| Блок кода |
|---|
esr(config)# security ipsec vpn ipsec1
esr(config-ipsec-vpn)# mode ike
esr(config-ipsec-vpn)# ike establish-tunnel route
esr(config-ipsec-vpn)# ike gateway ike_gw1
esr(config-ipsec-vpn)# ike ipsec-policy ipsec_pol1
esr(config-ipsec-vpn)# enable
esr(config-ipsec-vpn)# exit
esr(config)# exit |
Состояние туннеля можно посмотреть командой:
| Блок кода |
|---|
esr# show security ipsec vpn status ipsec1 |
Конфигурацию туннеля можно посмотреть командой:
| Блок кода |
|---|
esr# show security ipsec vpn configuration ipsec1 |
Состояние PKI-клиента и время следующей процедуры автоматического перевыпуска сертификата можно посмотреть командой:
| Блок кода |
|---|
esr# show crypto pki trustpoint TP_R1 |
Алгоритм настройки Remote Access IPsec VPN
...
<MODE> – режим переподключения, принимает следующие значения:
- no – установленное подключение XAUTH будет удалено, если для нового подключения XAUTH инициатором соединения будет отправлено уведомление "INITIAL_CONTACT", будет назначен ранее использованный IP-адрес. В противном случае, установленное соединение XAUTH будет удержано. Для нового подключения XAUTH будет назначен новый IP-адрес.
- never – установленное подключение XAUTH будет удержано. Для нового подключения XAUTH будет назначен новый IP-адрес. Уведомление "INITIAL_CONTACT" будет в любом случае проигнорировано.
- replace – установленное подключение XAUTH будет удалено. Для нового подключения XAUTH будет использован ранее использованный IP-адрес.
- keep – установленное подключение XAUTH будет удержано. Новое подключение XAUTH будет отклонено.
Пример настройки Remote Access IPsec VPN
Задача:
Настроить Remote Access IPsec VPN между R1 и R2 с использованием второго фактора аутентификации IPsec - XAUTH. В качестве сервера IPsec VPN настроить маршрутизатор R1, а маршрутизатор R2 в качестве клиента IPsec VPN.
...
- логин: client1;
- пароль: password123.
Решение:
| Примечание |
|---|
Предварительно в firewall необходимо разрешить протокол ESP и ISAKMP (UDP-порт 500, 4500). |
Конфигурирование R1
Настроим внешний сетевой интерфейс и определим принадлежность к зоне безопасности:Блок кода esr# configure esr(config)# security zone untrusted esr(config-zone)# exit esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# security-zone untrusted esr(config-if-gi)# ip address 180.100.0.1/24 esr(config-if-gi)# exit
Для настройки правил зон безопасности потребуется создать профиль порта протокола ISAKMP:
Блок кода esr(config)# object-group service ISAKMP esr(config-object-group-service)# port-range 500,4500 esr(config-object-group-service)# exit
Создадим профиль протокола IKE. В профиле укажем группу Диффи-Хэллмана 2, алгоритм шифрования 3 DES, алгоритм аутентификации SHA1. Данные параметры безопасности используются для защиты IKE-соединения:
Блок кода esr(config)# security ike proposal IKEPROP esr(config-ike-proposal)# dh-group 2 esr(config-ike-proposal)# authentication algorithm sha1 esr(config-ike-proposal)# encryption algorithm 3des esr(config-ike-proposal)# exit
Создадим политику протокола IKE. В политике указывается список профилей протокола IKE, по которым могут согласовываться узлы, ключ аутентификации и метод аутентификации XAUTH по ключу:
Блок кода esr(config)# security ike policy IKEPOLICY esr(config-ike-policy)# pre-shared-key hexadecimal 123FFF esr(config-ike-policy)# authentication method xauth-psk-key esr(config-ike-policy)# proposal IKEPROP esr(config-ike-policy)# exit
Создадим профиль доступа и заведем в нем пару логин и пароль для клиента IPsec VPN:
Блок кода esr(config)# access profile XAUTH esr(config-access-profile)# user client1 esr(config-profile)# password ascii-text password123 esr(config-profile)# exit esr(config-access-profile)# exit
Создадим пул адресов назначения, из которого будут выдаваться IP клиентам IPsec VPN:
Блок кода esr-1000(config)# address-assignment pool CLIENT_POOL esr-1000(config-pool)# ip prefix 192.0.2.0/24 esr-1000(config-pool)# exit
Создадим шлюз протокола IKE. В данном профиле необходимо указать политику протокола IKE, указать локальную подсеть, в качестве удаленной подсети указать пул адресов назначения, задать режим перенаправления трафика в туннель по политике и использование второго фактора аутентификации XAUTH:
Блок кода esr(config)# security ike gateway IKEGW esr(config-ike-gw)# ike-policy IKEPOLICY esr(config-ike-gw)# local address 180.100.0.1 esr(config-ike-gw)# local network 10.0.0.0/16 esr(config-ike-gw)# remote address any esr(config-ike-gw)# remote network dynamic pool CLIENT_POOL esr(config-ike-gw)# dead-peer-detection action clear esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# access-profile XAUTH esr(config-ike-gw)# exit
Создадим профиль параметров безопасности для IPsec-туннеля. В профиле укажем алгоритм шифрования 3DES, алгоритм аутентификации SHA1. Данные параметры безопасности используются для защиты IPsec-туннеля:
Блок кода esr(config)# security ipsec proposal IPSECPROP esr(config-ipsec-proposal)# authentication algorithm sha1 esr(config-ipsec-proposal)# encryption algorithm 3des esr(config-ipsec-proposal)# exit
Создадим политику для IPsec-туннеля. В политике указывается список профилей IPsec-туннеля, по которым могут согласовываться узлы.
Блок кода esr(config)# security ipsec policy IPSECPOLICY esr(config-ipsec-policy)# proposal IPSECPROP esr(config-ipsec-policy)# exit
Создадим IPsec VPN. В VPN указывается шлюз IKE-протокола, политика IPsec-туннеля, режим обмена ключами и режим ожидания входящего соединения IPsec – by-request. После ввода всех параметров включим туннель командой enable:
Блок кода esr(config)# security ipsec IPSECVPN esr(config-ipsec-vpn)# mode ike esr(config-ipsec-vpn)# ike establish-tunnel by-request esr(config-ipsec-vpn)# ike gateway IKEGW esr(config-ipsec-vpn)# ike ipsec-policy IPSECPOLICY esr(config-ipsec-vpn)# enable esr(config-ipsec-vpn)# exit
Разрешим протокол esp и udp порты 500, 4500 в конфигурации firewall для установления IPsec VPN:
Блок кода esr(config)# security zone-pair untrusted self esr(config-zone-pair)# rule 1 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol udp esr(config-zone-pair-rule)# match destination-port object-group ISAKMP esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# rule 2 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol esp esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# endКонфигурирование R2
Настроим внешний сетевой интерфейс и определим принадлежность к зоне безопасности:Блок кода esr# configure esr(config)# interface gi 1/0/1 esr(config-if)# ip address 120.11.5.1/24 esr(config-if)# security-zone untrusted esr(config-if)# exit
Для настройки правил зон безопасности потребуется создать профиль порта протокола ISAKMP:
Блок кода esr(config)# object-group service ISAKMP esr(config-addr-set)# port-range 500,4500 esr(config-addr-set)# exit
Создадим профиль протокола IKE. В профиле укажем группу Диффи-Хэллмана 2, алгоритм шифрования 3 DES, алгоритм аутентификации SHA1. Данные параметры безопасности используются для защиты IKE-соединения:
Блок кода esr(config)# security ike proposal IKEPROP esr(config-ike-proposal)# dh-group 2 esr(config-ike-proposal)# authentication algorithm sha1 esr(config-ike-proposal)# encryption algorithm 3des esr(config-ike-proposal)# exit
Создадим политику протокола IKE. В политике указывается список профилей протокола IKE, по которым могут согласовываться узлы, ключ аутентификации, метод аутентификации XAUTH по ключу и режим аутентификации – клиент:
Блок кода esr(config)# security ike policy IKEPOLICY esr(config-ike-policy)# pre-shared-key hexadecimal 123FFF esr(config-ike-policy)# authentication method xauth-psk-key esr(config-ike-policy)# authentication mode client esr(config-ike-policy)# proposal IKEPROP esr(config-ike-policy)# exit
Создадим профиль доступа и заведем в нем пару логин и пароль:
Блок кода esr(config)# access profile XAUTH esr(config-access-profile)# user client1 esr(config-profile)# password ascii-text password123 esr(config-profile)# exit esr(config-access-profile)# exit
Создадим интерфейс loopback для терминации IP-адреса, полученного от IPsec VPN сервера:
Блок кода esr(config)# interface loopback 8 esr(config-loopback)# exit
Создадим шлюз протокола IKE. В данном профиле указывается политика, интерфейс терминации, режим динамического установления удаленной подсети, выбор профиля доступа для XAUTH и режим перенаправления трафика в туннель по политике:
Блок кода esr(config)# security ike gateway IKEGW esr(config-ike-gw)# ike-policy IKEPOLICY esr(config-ike-gw)# assign-interface loopback 8 esr(config-ike-gw)# local address 120.11.5.1 esr(config-ike-gw)# remote address 180.100.0.1 esr(config-ike-gw)# remote network dynamic client esr(config-ike-gw)# mode policy-based esr(config-ike-gw)# access-profile xauth client client1 esr(config-ike-gw)# exit
Создадим профиль параметров безопасности для IPsec-туннеля. В профиле укажем алгоритм шифрования 3DES, алгоритм аутентификации SHA1. Данные параметры безопасности используются для защиты IPsec-туннеля:
Блок кода esr(config)# security ipsec proposal IPSECPROP esr(config-ipsec-proposal)# authentication algorithm md5 esr(config-ipsec-proposal)# encryption algorithm aes128 esr(config-ipsec-proposal)# exit
Создадим политику для IPsec-туннеля. В политике указывается список профилей IPsec-туннеля, по которым могут согласовываться узлы:
Блок кода esr(config)# security ipsec policy IPSECPOLICY esr(config-ipsec-policy)# proposal IPSECPROP esr(config-ipsec-policy)# exit
Scroll Pagebreak
Создадим IPsec VPN. В VPN указывается шлюз IKE-протокола, политика IP sec-туннеля, режим обмена ключами и способ установления соединения. После ввода всех параметров включим туннель командой enable:Блок кода esr(config)# security ipsec vpn IPSECVPN esr(config-ipsec-vpn)# mode ike esr(config-ipsec-vpn)# ike establish-tunnel route esr(config-ipsec-vpn)# ike gateway IKEGW esr(config-ipsec-vpn)# ike ipsec-policy IPSECPOLICY esr(config-ipsec-vpn)# enable esr(config-ipsec-vpn)# exit
Разрешим протокол esp и udp порты 500,4500 в конфигурации firewall для установления IPsec VPN:
Блок кода esr(config)# security zone-pair untrusted self esr(config-zone-pair)# rule 1 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol udp esr(config-zone-pair-rule)# match destination-port object-group ISAKMP esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# rule 2 esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# match protocol esp esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# endСостояние туннеля можно посмотреть командой:
Блок кода esr# show security ipsec vpn status IPSECVPN
Конфигурацию туннеля можно посмотреть командой:
Блок кода esr# show security ipsec vpn configuration IPSECVPN
Пример настройки DPD (Dead Peer Detection)
Задача:
Настроить Dead Peed Detection на R1 для Policy-based Ipsec VPN между R1 и R2.
Исходную конфигурацию можно взять из примера настройки Policy-based IPsec VPN.
Решение:
На R1 в шлюзе протокола IKE укажем: режим работы DPD – restart, интервал опроса – 1 секунду, таймаут – 4 секунды:
...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать LT-туннели для каждого из существующих VRF. | esr(config)# tunnel lt <ID> | <ID> – идентификатор туннеля в диапазоне [1..128]. |
| 2 | Указать описание конфигурируемых туннелей (необязательно). | esr(config-lt)# description <DESCRIPTION> | <DESCRIPTION> – описание туннеля, задаётся строкой до 255 символов. |
3 | Включить каждый LT-туннель в соответствующий VFR. | esr(config-lt)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
4 | Включить каждый LT-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall для LT-туннеля. | esr(config-lt)# security-zone<NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 12 символов. |
esr(config-lt)# ip firewall disable | |||
5 | Для каждого LT-туннеля задать номер противоположный LT туннель (в другом VRF). | esr(config-lt)# peer lt <ID> | <ID> – идентификатор туннеля в диапазоне [1..128]. |
6 | Для каждого LT-туннеля указать IP-адрес для маршрутизации пакетов. Для взаимодействующих LT-туннелей, IP-адреса должны быть из одной IP-подсети. | esr(config-lt)# ip address <ADDR/LEN> [unit <ID>] или esr(config-lt)# ip address <ADDR/LEN> secondary [unit <ID>] | <ADDR/LEN> – IP-адрес и префикс подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]; <ID> – номер юнита, принимает значения [1..4]. Ключ secondary указывает, что настроенный адрес является дополнительным IP-адресом. Если это ключевое слово отсутствует, настроенный адрес является основным IP-адресом. Возможно указать до 7 дополнительных IP-адресов. |
7 | Включить туннели. | esr(config-lt)# enable | |
8 | Для каждого VRF настроить необходимые протоколы маршрутизации через LT-туннель. | ||
9 | Задать интервал времени, за который усредняется статистика о нагрузке на туннеле (необязательно). | esr(config-lt)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150]. Значение по умолчанию: 5. |
10 | Указать размер MTU (Maximum Transmition Unit) пакетов, которые может пропускать данный bridge (необязательно; возможно, если в bridge включен только VLAN). | esr(config-lt)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне:
Значение по умолчанию: 1500. |
Пример настройки
Задача:
Организовать взаимодействие между хостами, терминированными в двух VRF vrf_1 и vrf_2.
...
| Блок кода |
|---|
hostname esr ip vrf vrf_1 exit ip vrf vrf_2 exit interface gigabitethernet 1/0/1 ip vrf forwarding vrf_1 ip firewall disable ip address 10.0.0.1/24 exit interface gigabitethernet 1/0/2 ip vrf forwarding vrf_2 ip firewall disable ip address 10.0.1.1/24 exit |
| Scroll Pagebreak |
|---|
Решение:
Создадим LT-туннели для каждого VRF с указанием IP-адресов из одной подсети:
...

