Задача: Настроить связь через IPSec между D-Link DFL-860E и Cisco ISR4331-SEC/K9
Сейчас я на новом рабочем месте и у меня новые задачи, вот одна поставленная, как “проработать как будет время” вылилась в то, что нужно уже сейчас, а после покуда она была сделана стала не нужной. Я много руководств перелопатил, один раз даже потерял доступ к Cisco, но меня спасло то что я между Cisco и Коммутатором L3 настроить транк и имея доступ к коммутатору, сделал себе vlan, сеть и назначил ее access портом на рабочий сервер где уже оттуда через telnet подключившись к Cisco отменил все свои неудавшиеся опыты. Но это нормально, когда что-то пытаешься сделать совершать ошибки, не совершает ошибки тот, кто никогда ничего не делает, а разглагольствует. Ну да ладно. Хоть я и использовал ipsec, но только в паре при поднятии VPN защиты до сети на Mikrotik (L2TP/IPSEC), а текущая задача для меня нова, если говорить о цели преследуемой задачи – организовать связь нового оборудование и сервисов со старым с целью последующего перевода инфраструктуры.
Cхема:
Сеть (<NETWORK_1>) –> DFL 860 E <-> интернет <-> Cisco ISR4331-SEC/K9 -> 172.33.111.0/24
Шаг №1: На D-Link DFL-860E (Прошивка: 2.60.02.02-24262 May 27 2014) нужно создать объекты текущей сети (lan,lannet) и объекты удаленной сети (remotenet,WAN-remote)
https://IP&DNS – user&pass – Objects – (General) Address Book – Add – IP4 Address
вкладка General
- Name: Cisco_net
- Address: 172.33.111.0/24
И нажимаю OK
https://IP&DNS – user&pass – Objects – (General) Address Book – Add – IP4 Address
вкладка General
- Name: Cisco_gw
- Address: <WAN_CISCO>
И нажимаю OK
Шаг №2: Создаю объект кодовой фразы: (Pre-Shared Key)
https://IP&DNS – user&pass – Objects – (General) Key Ring – Add – Pre-Shared Key
- Name: cisco
- Type: Passphrase
- Shared Secret: Aa12345 (Фразу в последствии заменить на что-то более неоднозначное)
- Confirm Secret: Aa12345 (Фразу в последствии заменить на что-то более неоднозначное)
И нажимаю OK
Шаг №3: Создаю подключение IPSec от D-Link DFL 860E к Cisco.
https://IP&DNS – user&pass – Network – Interfaces and VPN – (VPN and Tunnels) IPsec – Add – IPsec Tunnel
вкладка General
- Name: IT
- Local Network: lannet (<NETWORK_1>)
- Remote Network: Cisco_net (172.33.111.0/24)
- Remote Endpoint: Cisco_gw (<WAN_IP>)
- Encapsulation mode: Tunnel
- Local Gateway: (None)
- IKE Algorithms: Cisco (3DES(192), MD5)
- IKE Lifetime: 28800
- IPsec Algorithms: Cisco (3DES(192), MD5)
- IPsec Lifetime: 3600 (seconds)
- Ipsec Lifetime: 0 (kilobytes)
Вкладка Authentication
- Pre-shared Key: указываю свой созданный объект из списка, имя ему я задавал в Шаг №2, т.е. cisco
- Local ID Type: Auto
Вкладка IKE Settings:
- Main Mode: отмечаю галочкой
- IKE DH group: (Selected) 02 (1024-bit)
- Auto Establish: отмечаю галочкой
- PFS: PFS
- DH group: DH group 2 (1024-bit)
- Security Association: Per Net
- Nat Traversal: On if supported and NATed
- Dead Peer Detection: Use Dead Peer Detection
Вкладка Routing
- Dynamically add route to the remote network when a tunnel is established: отмечаю галочкой
И нажимаю OK, затем сохраняю изменения.
Шаг №4: Теперь нужно создать правила, разрешающие вход/выход соединения через Ipsec на D-Link DFL 860E:
https://IP&DNS – user&pass – Policies – Firewalling – (Rules) Main IP Rules – Add – IP Rule
вкладка General
- Name: DFL-TO-Cisco
- Action: Allow
- Source: (Interface) lan
- Source: (Network) lannet
- Destination: (Interface) IT
- Destination: (Network) Cisco_net
- Service: all_tcpudpicmp
- Schedule: (none)
И нажимаю OK
Создаю еще одно правило:
https://IP&DNS – user&pass – Policies – Firewalling – (Rules) Main IP Rules – Add – IP Rule
вкладка General
- Name: CISCO-DFL
- Action: Allow
- Source: (Interface) IT
- Source: (Network) Cisco_net
- Destination: (Interface) lan
- Destination: (Network) lannet
- Service: all_tcpudpicmp
- Schedule: (None)
И нажимаю OK
Шаг №5: Теперь подключаюсь к Cisco по SSH и произвожу следующие настройки:
Router#conf t
crypto isakmp policy 10
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key Aa12345 address <WAN_DFL>
crypto ipsec transform-set TUNNEL esp-3des esp-md5-hmac
(Это означает, что 3des будет использовано для шифрования, а md5-hmac для аутентификации.)
mode tunnel
crypto map DFL 10 ipsec-isakmp
description cisco_to_dfl
set peer WAN_DFL
set transform-set TUNNEL
set pfs group2
match address 101
exit
interface gigabitEthernet 0/0/0
crypto map DFL
Router(config-if)#end
Router#write memory
Теперь создаю расширенный Access-list где обозначаю, что сеть VLAN 111 может обращаться к сети за DFL:
Router (config)#ip access-list extended 101
10 permit ip 172.33.111.0 0.0.0.255 <NETWORK> 0.0.0.255
где 0.0.0.255 – это Wildcard маска, чтобы её получить нужно 255.255.255.255 – 255.255.255.224 = 31
у меня для сети 172.33.112.0 – маска подсети /27
Проверяю логи Cisco, а состоялось ли подключение
LTC-DC-IRS4K#show crypto ipsec sa
interface: GigabitEthernet0/0/0
Crypto map tag: DFL, local addr <WAN_CISCO>
protected vrf: (none)
local ident (addr/mask/prot/port): (172.33.111.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (<NETWORK>/255.255.255.0/0/0)
current_peer <WAN_DFL> port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
#pkts decaps: 6, #pkts decrypt: 6, #pkts verify: 6
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: <WAN_CISCO>, remote crypto endpt.: <WAN_DFL>
plaintext mtu 1446, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0/0
current outbound spi: 0x8354121C(2203324956)
PFS (Y/N): Y, DH group: group2
inbound esp sas:
spi: 0x5D434E48(1564692040)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2477, flow_id: ESG:477, sibling_flags FFFFFFFF80000048, crypto map: DFL
sa timing: remaining key lifetime (k/sec): (4607999/3560)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x8354121C(2203324956)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2478, flow_id: ESG:478, sibling_flags FFFFFFFF80000048, crypto map: DFL
sa timing: remaining key lifetime (k/sec): (4608000/3560)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
После не забывает сохранить внесенные изменения дабы не потерять их после перезагрузки:
Router#write memory
Building configuration...
[OK]
Проверяю на D-Link DFL 860E, что IPSec туннель до Cisco поднялся:
https://IP&DNS – user&pass – System – (Sub Systems) Ipsec – выбираю свой туннель: Ipsec Interface: IT и в самом низу должна быть строка между чем и чем организован туннель:
- Remote Gateway: <WAN_CISCO>
- Local Net: <NETWORK>
- Remote Net: 172.33.111.0/24
- Protocol: 3des-cbc
Вот что я ранее не знал, что, получив данный лог (show log on Cisco) в своем распоряжении я смог бы найти в чем проблема, по началу смотря логи на D-Link DFL 860E я видел ошибку, но не знал, как ее решить, как подступиться к решению, а вот логи Cisco были понятны. Мой затык был в том, что я не мог подобрать то шифрование и соотношение к шифрованию cisco, а все что находилось в интернете было не понятно и для другого оборудования. Правильнее теперь я считаю не подобрать, а уяснить что есть первая фраза, а что есть вторая:
- Isakmp – это первая фраза
- Ipsec – это вторая фраза
И если в логах говориться, что какая-то фраза согласования не проходит, то стоит смотреть нужный участок.
Теперь нужно проверить, что сеть <NETWORK>/24 видит сеть 172.33.111.0/24, но перед этим нужно на Cisco запретить NAT трафик из VLAN 111 в интернет:
Router#conf t
Router(config)#ip access-list extended NAT
21 deny ip 172.33.111.0 0.0.0.255 <NETWORK> 0.0.0.255
22 permit ip 172.33.111.0 0.0.0.255
Router(config-ext-nacl)#end
Router#wr mem
Building configuration...
[OK]
Теперь нужно проверить, что из <NETWORK>/24 я вижу 172.33.111.0/24:
C:\Users\ekzorchik>ping 172.33.111.1
Обмен пакетами с 172.33.111.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Ответ от 172.33.111.1: число байт=32 время=39мс TTL=125
Ответ от 172.33.111.1: число байт=32 время=37мс TTL=125
Ответ от 172.33.111.1: число байт=32 время=37мс TTL=125
Статистика Ping для 172.33.111.1:
Пакетов: отправлено = 4, получено = 3, потеряно = 1
(25% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 37мсек, Максимальное = 39 мсек, Среднее = 37 мсек
Проверил RDP подключение также работает.
На заметку: На дефолтной и вот этой прошивке туннель ipsec я поднять не смог.
Главное во всем этом это желание выполнить задачу пусть и долго, но после поняв, что за что отвечает. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik