Связка через IPSEC DFL 860E и Cisco

Posted by

Задача: Настроить связь через между и

Сейчас я на новом рабочем месте и у меня новые задачи, вот одна поставленная, как “проработать как будет время” вылилась в то, что нужно уже сейчас, а после покуда она была сделана стала не нужной. Я много руководств перелопатил, один раз даже потерял доступ к 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 –

вкладка 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