EcoRouter поддерживает протокол IKE (Internet Key Exchange) версий 1 и 2. IKEv1 и IKEv2 — это разные версии протокола IKE (Internet Key Exchange), который используется для автоматического установления защищённых туннелей IPsec. Хотя они решают одну и ту же задачу (создание SA — Security Associations), IKEv2 является значительной эволюцией, предлагая большую безопасность, эффективность и надёжность.
IKEv1 и IKEv2 настраиваются схожим образом. В примере настройки из следующего подраздела использованы обе версии протокола, в данном подразделе подробно разбирается настройка IKE версии 2.
Настройка протокола IKEv2
Для включения протокола IKE в конфигурационном режиме необходимо дать команду crypto-ipsec ike enable
.
Основные параметры туннеля задаются в профиле IPsec. Для перехода в режим настройки профиля необходимо в конфигурационном режиме ввести команду crypto-ipsec profile <NAME> ike-v2
, где NAME — имя профиля, а ключ ike-v2 означает, что в туннеле будет реализована вторая версия протокола IKE.
В контекстном режиме профиля IPsec задаётся режим работы протокола transport
или tunnel
.
Далее задаются параметры IPsec (ESP) туннеля для первой и второй фаз IKE. Для перехода в режим настройки каждой из фаз нужно дать соответствующую команду ike-phase1
или ike-phase2
.
Для IKE фазы 1 необходимо задать предложение proposal
по установке безопасного соединения. Предложение задаётся строкой вида aes128-sha256-modp2048s256
, где: aes128 — алгоритм шифрования; sha256 — алгоритм целостности (HMAC); modp2048s256 — группа и подгруппа (если есть) алгоритма Диффи-Хеллмана (DH). Полный набор комбинаций можно увидеть в выводе команды proposal ?
.
Также для IKE фазы 1 необходимо задать предустановленный (заранее согласованный) ключ (Pre-Shared Key, PSK): auth pre-shared-key <KEY>
. В качестве ключа рекомендуется задавать как минимум 20 случайных символов.
Альтернативным и более полным способом задать предустановленные ключи являются команды local-psk id <ID> data <KEY>
и remote-psk id <ID> data <KEY>
, где ID это идентификатор локального или удалённого маршрутизатора соответственно, а KEY — ключ аналогичный описанному в предыдущем абзаце. ID может быть задан в виде IP-адреса, доменного имени, адреса электронной почты или произвольной строки.
Для IKE фазы 2 прежде всего необходимо установить протокол ESP: protocol esp
. Необходимо также задать предложение с алгоритмом шифрования и алгоритмом целостности. Пример: proposal aes256-sha256
.
Команды local-ts <IP>
и remote-ts <IP>
являются селекторами трафика (Traffic Selectors), которые определяют, какой именно трафик должен быть защищён с помощью IPsec-туннеля. IP записывается в виде одного или нескольких (через запятую) адресов хостов или подсетей. Только трафик, соответствующий local-ts
и remote-ts
, будет направляться через шифрованный туннель. Значения local-ts
и remote-ts
должны быть идентичны адресам заданным командой match
в соответствующем списке контроля доступа filter-map
фильтрующим трафик для шифрования (см. далее по тексту).
Наконец команда rekey-time <0-75600>
задаёт таймер в секундах по истечению которого будет производиться обновление ключей шифрования.
Заданные для обоих направлений параметры SA должны совпадать на обоих концах туннеля.
Затем с помощью криптографических карт crypto-map необходимо указать, к какому пиру следует применять соответствующий профиль IPsec. Переход в режим конфигурирования криптографической карты производится командой crypto-map <NAME> <PRIORITY>
, где NAME — имя карты, а PRIORITY определяет порядок обработки карты.
В настройках карты необходимо указать профиль IPsec и соседа, к которому должен быть применён данный профиль:
match peer <ADDRESS>
, где ADDRESS — IPv4-адрес соседа;set crypto-ipsec profile <NAME>
, где NAME — имя профиля.
Далее следует настроить фильтр-карты. Для каждого маршрутизатора необходимо вычленить исходящий трафик который нужно зашифровать и входящий, который нужно дешифровать.
Исходящий (из локальной сети в туннель) трафик фильтруется по адресам локальной и удалённой подсети. Фильтруется любой тип трафика. К фильтр-карте привязана криптографическая карта crypto-map, которая, в свою очередь, ссылается на профиль crypto-ipsec. Трафик шифруется в соответствии с параметрами указанными в профиле IPsec и отправляется в туннель.
При работе с IKEv2 протоколом, используется только туннельный режим IPsec и технологию NAT-traversal которая инкапсулирует ESP в UDP. Такая инкапсуляция делается для преодоления NAT серверов.
Для дешифрации входящего трафика необходимо создать фильтр-карту с правилом match
, в котором должны быть указаны: адрес удалённого маршрутизатора в качестве источника данных, адрес локального маршрутизатора в качестве адресата, протокол UDP и порт 4500. Команда set
должна указывать на ту же криптографическую карту, с помощью которой трафик был зашифрован. После действия такой фильтр-карты будут сняты заголовки UDP и ESP, данные будут дешифрованы и отправлены в локальную сеть.
Последним действием — командой set
следует применить фильтр-карты к необходимым L3-интерфейсам во входящем направлении.
Пример конфигурации
Разберём сценарий объединения двух локальных сетей.
Постройте схему в соответствии с рисунком ниже.
Рисунок
Настройте туннели между двумя маршрутизаторами с использованием IKEv2, в соответствии с примерами конфигурации ниже.
Конфигурация ER1:
crypto-ipsec ike enable
!
crypto-ipsec profile CIPROFILE0 ike-v2
mode tunnel
ike-phase1
proposal aes256-sha256-modp2048
auth pre-shared-key ExamplePassword0
ike-phase2
protocol esp
proposal aes256-sha256
local-ts 172.16.0.0/24
remote-ts 172.16.1.0/24
!
crypto-map CMAP0 1
match peer 198.51.100.2
set crypto-ipsec profile CIPROFILE0
!
filter-map ipv4 FMAP0 10
match any 172.16.0.0/24 172.16.1.0/24
set crypto-map CMAP0 peer 198.51.100.2
!
filter-map ipv4 FMAP0 20
match udp host 198.51.100.2 eq 4500 host 192.0.2.2 eq 4500
set crypto-map CMAP0 peer 198.51.100.2
!
filter-map ipv4 FMAP0 30
match any any any
set accept
!
ip route 0.0.0.0/0 192.0.2.1
!
port te0
service-instance SIWAN
encapsulation untagged
!
port te1
service-instance SILAN
encapsulation untagged
!
interface IFWAN
connect port te0 service-instance SIWAN
ip address 192.0.2.2/30
set filter-map in FMAP0 10
!
interface IFLAN
connect port te1 service-instance SILAN
ip address 172.16.0.1/24
set filter-map in FMAP0 10
Конфигурация ER2:
crypto-ipsec ike enable
!
crypto-ipsec profile CIPROFILE0 ike-v2
mode tunnel
ike-phase1
proposal aes256-sha256-modp2048
auth pre-shared-key ExamplePassword0
ike-phase2
protocol esp
proposal aes256-sha256
local-ts 172.16.1.0/24
remote-ts 172.16.0.0/24
!
crypto-map CMAP0 1
match peer 192.0.2.2
set crypto-ipsec profile CIPROFILE0
!
filter-map ipv4 FMAP0 10
match any 172.16.1.0/24 172.16.0.0/24
set crypto-map CMAP0 peer 192.0.2.2
!
filter-map ipv4 FMAP0 20
match udp host 192.0.2.2 eq 4500 host 198.51.100.2 eq 4500
set crypto-map CMAP0 peer 192.0.2.2
!
filter-map ipv4 FMAP0 30
match any any any
set accept
!
ip route 0.0.0.0/0 198.51.100.1
!
port te0
service-instance SIWAN
encapsulation untagged
!
port te1
service-instance SILAN
encapsulation untagged
!
interface IFWAN
connect port te0 service-instance SIWAN
ip address 198.51.100.2/30
set filter-map in FMAP0 10
!
interface IFLAN
connect port te1 service-instance SILAN
ip address 172.16.1.1/24
set filter-map in FMAP0 10
Команды просмотра
Посмотреть настроенные подключения можно с помощью команды show crypto-ipsec ike connections
:
ER1>show crypto-ipsec ike connections
connections:
name: CIPROFILE0
local: %any
remote: 198.51.100.2
version: IKEv2
childrens:
name: CIPROFILE0
mode: TUNNEL
local-ts: 172.16.0.0/24
remote-ts: 172.16.1.0/24
rekey-time: 3600
ecorouter>
Посмотреть состояние туннелей можно с помощью команды show crypto-ipsec ike security-associations
:
ER1>show crypto-ipsec ike security-associations
IPSec security associations:
name: CIPROFILE0
uniqueid: 2
version: IKEv2
state: ESTABLISHED
local_host: 192.0.2.2
local_port: 4500
local_id: 192.0.2.2
remote_host: 198.51.100.2
remote_port: 4500
remote_id: 198.51.100.2
Is initiator: false
initiator_spi: bc7ba6ca3151919b
responder_spi: 9e05c52a6bb20a47
nat_local: false
nat_remote: true
nat_fake: false
nat_any: true
encr_alg: AES_CBC
encr_keysize: 256
integ_alg: HMAC_SHA2_256_128
prf_alg: PRF_HMAC_SHA2_256
dh_group: MODP_2048
established: 33
rekey_time: 12965
child-sas:
name: CIPROFILE0
uniqueid: 1
reqid: 1
state: INSTALLED
mode: TUNNEL
protocol: ESP
encap: true
spi_in: 3621fd07
spi_out: 41b7aa27
encr_alg: AES_CBC
encr_keysize: 256
integ_alg: HMAC_SHA2_256_128
esn: false
rekey_time: 3250
life_time: 3927
install_time: 33
local-ts: 172.16.0.0/24
remote-ts: 172.16.1.0/24
ecorouter>