На примере следующей топологии (рисунок 1), настроим IPSec туннель между брандмауэром USG6000, который находится в штаб-квартире и маршрутизатором AR2220 в филиале.
Рисунок 1. Топология сети
Перейдем к настройке оборудования:
1. Настроим IP адреса на интерфейсах и привяжем их к зонам безопасности.
[FW] interface GigabitEthernet 1/0/3
[FW-GigabitEthernet1/0/3] ip address 10.1.1.1 24
[FW] interface GigabitEthernet 1/0/1
[FW-GigabitEthernet1/0/1] ip address 1.1.4.1 24
[FW] firewall zone trust
[FW-zone-trust] add interface GigabitEthernet 1/0/3
[FW] firewall zone untrust
[FW-zone-untrust] add interface GigabitEthernet 1/0/1
2. Далее настроим маршрут по умолчанию с FW в интернет.
[FW] ip route-static 0.0.0.0 0.0.0.0 1.1.4.2
3. Настроим политики безопасности.
[FW] security-policy
[FW-policy-security] rule name 1
[FW-policy-security-rule-1] source-zone untrust
[FW-policy-security-rule-1] destination-zone trust
[FW-policy-security-rule-1] source-address 10.1.3.0 24
[FW-policy-security-rule-1] destination-address 10.1.1.0 24
[FW-policy-security-rule-1] action permit
[FW-policy-security] rule name 2
[FW-policy-security-rule-2] source-zone trust
[FW-policy-security-rule-2] destination-zone untrust
[FW-policy-security-rule-2] source-address 10.1.1.0 24
[FW-policy-security-rule-2] destination-address 10.1.3.0 24
[FW-policy-security-rule-2] action permit
[FW-policy-security] rule name 3
[FW-policy-security-rule-3] source-zone local
[FW-policy-security-rule-3] destination-zone untrust
[FW-policy-security-rule-3] source-address 1.1.4.1 32
[FW-policy-security-rule-3] destination-address 1.1.2.1 32
[FW-policy-security-rule-3] action permit
[FW-policy-security] rule name 4
[FW-policy-security-rule-4] source-zone untrust
[FW-policy-security-rule-4] destination-zone local
[FW-policy-security-rule-4] source-address 1.1.2.1 32
[FW-policy-security-rule-4] destination-address 1.1.4.1 32
[FW-policy-security-rule-4] action permit
4. Настройка IPSec.
a.
[FW] acl 3000
[FW-acl-adv-3000] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.3.0 0.0.0.255
b.
[FW] ipsec proposal tran1
[FW-ipsec-proposal-tran1] transform esp
[FW-ipsec-proposal-tran1] encapsulation-mode tunnel
[FW-ipsec-proposal-tran1] esp authentication-algorithm sha2-256
[FW-ipsec-proposal-tran1] esp encryption-algorithm aes-128
c.
[FW] ike proposal 1
[FW-ike-proposal-1] encryption-algorithm aes-128
[FW-ike-proposal-1] authentication-algorithm sha1
[FW-ike-proposal-1] dh group2
d.
[FW] ike peer AR
[FW-ike-peer-AR] undo version 2
[FW-ike-peer-AR] exchange-mode main
[FW-ike-peer-AR] ike-proposal 1
[FW-ike-peer-AR] pre-shared-key Key123
[FW-ike-peer-AR] remote-address 1.1.2.1
e.
[FW] ipsec policy map1 1 isakmp
[FW-ipsec-policy-isakmp-map1-1] ike-peer AR
[FW-ipsec-policy-isakmp-map1-1] proposal tran1
[FW-ipsec-policy-isakmp-map1-1] security acl 3000
f. И теперь привязываем IPSec политику к интерфейсу GigabitEthernet 1/0/1.
[FW] interface GigabitEthernet 1/0/1
[FW-GigabitEthernet1/0/1] ipsec policy map1
Далее настроим маршрутизатор AR.
1.
[AR] interface GigabitEthernet 0/0/3
[AR-GigabitEthernet0/0/3] ip address 10.1.3.1 24
[AR] interface GigabitEthernet 0/0/1
[AR-GigabitEthernet0/0/1] ip address 1.1.2.1 24
2.
[AR] ip route-static 0.0.0.0 0.0.0.0 1.1.2.2
3.
[AR] acl 3000
[AR-acl-adv-3000] rule permit ip source 10.1.3.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
b.
[FW] ipsec proposal tran1
[FW-ipsec-proposal-tran1] transform esp
[FW-ipsec-proposal-tran1] encapsulation-mode tunnel
[FW-ipsec-proposal-tran1] esp authentication-algorithm sha2-256
[FW-ipsec-proposal-tran1] esp encryption-algorithm aes-128
c.
[FW] ike proposal 1
[FW-ike-proposal-1] encryption-algorithm aes-128
[FW-ike-proposal-1] authentication-algorithm sha1
[FW-ike-proposal-1] dh group2
d.
[AR] ike peer FW v1
[AR-ike-peer-FW] exchange-mode main
[AR-ike-peer-FW] ike-proposal 1
[AR-ike-peer-FW] pre-shared-key cipher Key123
[AR-ike-peer-FW] remote-address 1.1.4.1
e.
[AR] ipsec policy map1 1 isakmp
[AR-ipsec-policy-isakmp-map1-1] ike-peer FW
[AR-ipsec-policy-isakmp-map1-1] proposal tran1
[AR-ipsec-policy-isakmp-map1-1] security acl 3000
f.
[AR] interface GigabitEthernet 0/0/1
[AR-GigabitEthernet0/0/1] ipsec policy map1
Проверка конфигурации
1. Пропингуем компьютер в HQ, с компьютера, находящегося в филиале.
2. В обычном случае, такой трафик заставит оборудование поднять IPSec туннель. Наберем команды display ike sa и display ipsec sa. Следующий вывод показывает, что туннель был успешно установлен:
<FW> display ike sa
15:53:30 2018/12/26
current ike sa number: 2
--------------------------------------------------------------------------------------------------
conn-id peer flag phase vpn
--------------------------------------------------------------------------------------------------
179 1.1.2.1 RD|ST|A v1:2 public
178 1.1.2.1 RD|ST|D|A v1:1 public
flag meaning
RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT
TD--DELETING NEG--NEGOTIATING D--DPD M--ACTIVE S--STANDBY
A--ALONE
<FW> display ipsec sa
15:53:53 2018/12/26
===============================
Interface: GigabitEthernet1/0/1
path MTU: 1500
===============================
-----------------------------
IPsec policy name: "map1"
sequence number: 1
mode: isakmp
vpn: public
-----------------------------
connection id: 179
encapsulation mode: tunnel
holding time: 0d 0h 1m 53s
tunnel local : 1.1.4.1 tunnel remote: 1.1.2.1
flow source: 10.1.1.0/255.255.255.0 0/0
flow destination: 10.1.3.0/255.255.255.0 0/0
[inbound ESP SAs]
spi: 112877185 (0x6ba5e81)
vpn: public said: 36 cpuid: 0x0000
proposal: ESP-ENCRYPT-AES ESP-AUTH-SHA2-256
sa remaining key duration (kilobytes/sec): 1843199/3487
max received sequence-number: 17
udp encapsulation used for nat traversal: N
[outbound ESP SAs]
spi: 1572321462 (0x5db7b8b6)
vpn: public said: 37 cpuid: 0x0000
proposal: ESP-ENCRYPT-AES ESP-AUTH-SHA2-256
sa remaining key duration (kilobytes/sec): 1843199/3487
max sent sequence-number: 18
udp encapsulation used for nat traversal: N
Туннель был установлен, но как определить, что служебный трафик идет через IPSec туннель? Можно воспользоваться одним из двух следующих способов.
1. В выводе display ipsec sa проверить значение в строке max sent sequence-number. Значение будет увеличиваться каждый раз, когда пакет проходит через туннель. Например, если мы запустили пинг, устройство передаст 5 icmp пакетов, если они прошли через туннель, то значение в строке увеличится на 5. Если значение увеличилось не на 5, или вовсе не изменилось, значит трафик прошел не через туннель, либо есть проблема с туннелем.
2. Ввести команду display ipsec statistics. Значение в строке input/output security packets показывает количество пакетов, прошедших через туннель.
<FW> display ipsec statistics
15:54:21 2018/12/26
the security packet statistics:
input/output security packets: 3/3
input/output security bytes: 252/252
input/output dropped security packets: 0/0
the encrypt packet statistics
send sae:3, recv sae:3, send err:0
local cpu:3, other cpu:0, recv other cpu:0
intact packet:2, first slice:0, after slice:0
the decrypt packet statistics
send sae:3, recv sae:3, send err:0
local cpu:0, other cpu:0, recv other cpu:0
reass first slice:0, after slice:0, len err:0
....
Первый способ показывает статистику трафика для определенного туннеля, в то время как второй способ показывает глобальную статистику для всех IPSec туннелей, поднятых на оборудовании. Поэтому, если на оборудовании поднято несколько туннелей, то предпочтительней пользоваться первым способом.
Полезные команды для траблшутинга:
1. Включаем дебаг.
<FW> terminal monitor
<FW> terminal debugging
<FW> debugging ike error
2. Запускаем пинг чтобы началась процедура поднятий туннеля и проверяем дебаг вывод. Например, в следующем выводе ошибка происходит на первой фазе IKE. Необходимо сравить IKE настройки на обоих устройствах.
2018-12-26 10:47 NGFW %IKE/4/WARNING(l): phase1: proposal mismatch, please check ike proposal configuration.
Следующий вывод показывает, что ошибка происходит на второй фазе IKE. Причиной является неправильно настроенный acl на одном из устройств, они должны быть зеркальны.
2018-12-26 10:47 NGFW %IKE/4/WARNING(l): phase2: security acl mismatch.