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>