Вопрос: Настройка IPSec туннелей на маршрутизаторах DI-1750/2630/3660

Ответ: 

Содержание:

 

Введение

Этот пример демонстрирует настройку IPSec туннелей на трех маршрутизаторах с использованием приватных ip подсетей.

Используемые технологии:

  • Протоколы ESP и AH
  • Алгоритмы шифрования des и 3des
  • Аутентификация с использованием pre-shared key
  • Приватные ip подсети за каждым маршрутизатором (192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24)
  • Конфигурирование политики isakmp и crypto map
  • Определение трафика, который необходимо пускать в туннель командами config-ip access-list и crypto map.

В версии D-Link IOS 1.3.1L доступна аутентификация только с использованием pre-shared key.

 

Несколько слов перед началом

Для работы необходимы 3 маршрутизатора D-Link DI-1750/2630/3660 с D-Link IOS 1.3.1L.
В принципе любой из маршрутизаторов в данном примере может быть заменен любым другим оборудованием, поддерживающим IPSec.

Замечание: тестирование данной схемы проводилось в условиях лаборатории. В начале работы все устройства имели конфигурацию по умолчанию. Если у Вас работающая сеть, убедитесь, что Вы представляете всю потенциальную угрозу ее работоспособности от выполнения каждой команды

 

Конфигурирование

В этом разделе содержится информация о том, как настроить и использовать технологии, указанные выше. Более детальную информацию обо всех параметрах настройки IPSec на маршрутизаторах DI-1750/2630/3660 можно получить в руководстве пользователя и в описании команд.

Диаграмма сети:

Файлы конфигураций:

Router 1: !version 1.3.1L
service timestamps log date
service timestamps debug date
no service password-encryption
!
!
no config-ip source-route
!
!
config-aaa authentication login default local

!--Задаем политику Internet Key Exchange (IKE) и preshared key
!--для каждого соседа по туннелю

!
!-Ключи для двух соседей, Router2 и Router3
crypto isakmp key router1_2 200.154.17.130 255.255.255.255
crypto isakmp key router1_3 100.22.202.154 255.255.255.255
!

!-Политика IKE для туннеля Router1->Router2
crypto isakmp policy 10
hash md5
!
!-Политика IKE для туннеля Router1->Router3
crypto isakmp policy 20
config-encryption 3des
hash md5
!

!!---Задаем параметры IPSec
!!---Они включают в себя соседей по туннелю, типы протоколов,
!!---криптографические алгоритмы и описание трафика
crypto ipsec transform-set first_set
config-transform-type esp-des esp-md5-hmac
!
crypto ipsec transform-set second_set
config-transform-type esp-3des esp-md5-hmac
!
crypto map common_map 10 ipsec-isakmp
set peer 200.154.17.130
set pfs group1
set security-association lifetime seconds 28800
set transform-set first_set
config-match address first_acl
!
crypto map common_map 20 ipsec-isakmp
set peer 100.228.202.154
set pfs group1
set security-association lifetime seconds 28800
set transform-set second_set
config-match address second_acl
!
!
config-interface FastEthernet0/0
no config-ip address
no config-ip directed-broadcast
config-ip rsvp bandwidth 1000 1000
!
config-interface FastEthernet0/0.1
config-ip address 192.168.1.1 255.255.255.0
no config-ip directed-broadcast
config-encap dot1Q 2
config-bw 100000
delay 1
config-ip nat inside
!
!---Прилагаем crypto map на исходящий интерфейс туннеля
config-interface FastEthernet0/0.2
config-ip address 100.232.202.210 255.255.255.252
no config-ip directed-broadcast
crypto map common_map
config-encap dot1Q 3
config-bw 100000
delay 1
config-ip nat outside
!
config-interface Serial3/0
no config-ip address
no config-ip directed-broadcast
!
config-interface Async0/0
no config-ip address
no config-ip directed-broadcast
!
!
config-ip route default 100.232.202.209 254
!
!
!
!
!
!
config-gw-cfg
disable
!
!
!-Этот access-list задает трафик, которые не должен
!-подвергаться трансляции адресов
config-ip access-list extended nat
deny ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0
deny ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
config-permit ip any any
!
!-Определяем трафик, который будет направляться в туннель к Router2
config-ip access-list extended first_acl
config-permit ip 192.168.1.0 255.255.255.0 192.168.3.0 255.255.255.0
!
!-Определяем трафик, который будет направляться в туннель к Router3
config-ip access-list extended second_acl
config-permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
!
!
config-voice-port 1/0
config-input-gain 0
set-timing offhook-delay 0
!
config-voice-port 1/1
config-input-gain 0
set-timing offhook-delay 0
!
ivr-cfg
!
config-cptone 1
dial-tone-pbx 450 2001
alert-tone-pbx 450 2001 100 400
busy-tone-pbx 450 2001 35 35
empty-tone-pbx 450 2001 40 40
!
!
!
!
config-ip nat pool nat_pool 100.232.202.210 100.232.202.210 255.255.255.252
config-ip nat inside source list nat pool nat_pool overload

Router 2:

!version 1.3.1L
service timestamps log date
service timestamps debug date
no service password-encryption
!
!
no config-ip source-route
!
!
config-aaa authentication login default local

!--Задаем политику Internet Key Exchange (IKE) и preshared key
!--для каждого соседа по туннелю
!
!-Ключи для двух соседей, Router1 и Router3
crypto isakmp key router1_2 100.232.202.210 255.255.255.255
crypto isakmp key router2_3 100.22.202.154 255.255.255.255
!

!-Политика IKE для туннеля Router1->Router2
crypto isakmp policy 10
hash md5
!
!-Политика IKE для туннеля Router2->Router3
crypto isakmp policy 20
config-encryption 3des
hash md5
!

!!---Задаем параметры IPSec
!!---Они включают в себя соседей по туннелю, типы протоколов,
!!---криптографические алгоритмы и описание трафика
crypto ipsec transform-set first_set
config-transform-type esp-des esp-md5-hmac
!
crypto ipsec transform-set second_set
config-transform-type ah-md5-hmac
!
crypto map common_map 10 ipsec-isakmp
set peer 100.232.202.210
set pfs group1
set security-association lifetime seconds 28800
set transform-set first_set
config-match address first_acl
!
crypto map common_map 20 ipsec-isakmp
set peer 100.228.202.154
set pfs group1
set security-association lifetime seconds 28800
set transform-set second_set
config-match address second_acl
!
!
config-interface FastEthernet0/0
no config-ip address
no config-ip directed-broadcast
config-ip rsvp bandwidth 1000 1000
!
config-interface FastEthernet0/0.1
config-ip address 192.168.1.1 255.255.255.0
no config-ip directed-broadcast
config-encap dot1Q 2
config-bw 100000
delay 1
config-ip nat inside
!
!---Прилагаем crypto map на исходящий интерфейс туннеля
config-interface FastEthernet0/0.2
config-ip address 100.232.202.210 255.255.255.252
no config-ip directed-broadcast
crypto map common_map
config-encap dot1Q 3
config-bw 100000
delay 1
config-ip nat outside
!
config-interface Serial3/0
no config-ip address
no config-ip directed-broadcast
!
config-interface Async0/0
no config-ip address
no config-ip directed-broadcast
!
!
config-ip route default 100.232.202.209 254
!
!
!
!
!
!
config-gw-cfg
disable
!
!
!-Этот access-list задает трафик, которые не должен
!-подвергаться трансляции адресов
config-ip access-list extended nat
deny ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0
deny ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0
config-permit ip any any
!
!-Определяем трафик, который будет направляться в туннель к Router1
config-ip access-list extended first_acl
config-permit ip 192.168.3.0 255.255.255.0 192.168.1.0 255.255.255.0
!
!-Определяем трафик, который будет направляться в туннель к Router3
config-ip access-list extended second_acl
config-permit ip 192.168.3.0 255.255.255.0 192.168.2.0 255.255.255.0
!
!
config-voice-port 1/0
config-input-gain 0
set-timing offhook-delay 0
!
config-voice-port 1/1
config-input-gain 0
set-timing offhook-delay 0
!
ivr-cfg
!
config-cptone 1
dial-tone-pbx 450 2001
alert-tone-pbx 450 2001 100 400
busy-tone-pbx 450 2001 35 35
empty-tone-pbx 450 2001 40 40
!
!
!
!
config-ip nat pool nat_pool 100.232.202.210 100.232.202.210 255.255.255.252
config-ip nat inside source list nat pool nat_pool overload

Router 3:

!version 1.3.1L
service timestamps log date
service timestamps debug date
no service password-encryption
!
!
no config-ip source-route
!
!
config-aaa authentication login default local

!--Задаем политику Internet Key Exchange (IKE) и preshared key
!--для каждого соседа по туннелю
!
!-Ключи для двух соседей, Router1 и Router2
crypto isakmp key router1_3 100.232.202.210 255.255.255.255
crypto isakmp key router2_3 200.154.17.130 255.255.255.255
!

!-Политика IKE для туннеля Router1->Router3
crypto isakmp policy 10
hash md5
config-encryption 3des
!
!-Политика IKE для туннеля Router2->Router3
crypto isakmp policy 20
config-encryption 3des
hash md5
!

!!---Задаем параметры IPSec
!!---Они включают в себя соседей по туннелю, типы протоколов,
!!---криптографические алгоритмы и описание трафика
crypto ipsec transform-set first_set
config-transform-type esp-3des esp-md5-hmac
!
crypto ipsec transform-set second_set
config-transform-type ah-md5-hmac
!
crypto map common_map 10 ipsec-isakmp
set peer 100.232.202.210
set pfs group1
set security-association lifetime seconds 28800
set transform-set first_set
config-match address first_acl
!
crypto map common_map 20 ipsec-isakmp
set peer 200.154.17.130
set pfs group1
set security-association lifetime seconds 28800
set transform-set second_set
config-match address second_acl
!
!
config-interface FastEthernet0/0
no config-ip address
no config-ip directed-broadcast
config-ip rsvp bandwidth 1000 1000
!
config-interface FastEthernet0/0.1
config-ip address 192.168.1.1 255.255.255.0
no config-ip directed-broadcast
config-encap dot1Q 2
config-bw 100000
delay 1
config-ip nat inside
!
!---Прилагаем crypto map на исходящий интерфейс туннеля
config-interface FastEthernet0/0.2
config-ip address 100.232.202.210 255.255.255.252
no config-ip directed-broadcast
crypto map common_map
config-encap dot1Q 3
config-bw 100000
delay 1
config-ip nat outside
!
config-interface Serial3/0
no config-ip address
no config-ip directed-broadcast
!
config-interface Async0/0
no config-ip address
no config-ip directed-broadcast
!
!
config-ip route default 100.232.202.209 254
!
!
!
!
!
!
config-gw-cfg
disable
!
!
!-Этот access-list задает трафик, которые не должен
!-подвергаться трансляции адресов

config-ip access-list extended nat
deny ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0
deny ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0
config-permit ip any any
!
!-Определяем трафик, который будет направляться в туннель к Router1
config-ip access-list extended first_acl
config-permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0
!
!-Определяем трафик, который будет направляться в туннель к Router2
config-ip access-list extended second_acl
config-permit ip 192.168.2.0 255.255.255.0 192.168.3.0 255.255.255.0
!
!
config-voice-port 1/0
config-input-gain 0
set-timing offhook-delay 0
!
config-voice-port 1/1
config-input-gain 0
set-timing offhook-delay 0
!
ivr-cfg
!
config-cptone 1
dial-tone-pbx 450 2001
alert-tone-pbx 450 2001 100 400
busy-tone-pbx 450 2001 35 35
empty-tone-pbx 450 2001 40 40
!
!
!
!
config-ip nat pool nat_pool 100.232.202.210 100.232.202.210 255.255.255.252
config-ip nat inside source list nat pool nat_pool overload

 

Проверка

Этот раздел содержит информацию о том, как проверить, корректно ли работает Ваша сеть.
Для проверки работоспособности используются следующие команды:

  • display crypto isakmp sa - показывает все IKE SA
  • display crypto ipsec sa - все IPSec SA

Также в качестве проверки можно использовать icmp запрос, посылаемый сквозь туннель.

 

Поиск ошибок

Для поиска ошибок используются следующие команды:

  • display crypto ipsec transform-set - показывает все возможные transform-set (они должны совпадать на обеих сторонах туннеля)
  • display crypto map - показывает все crypto map

Для более детального изучения причин некорректной работы могут использоваться команды trace:

  • trace crypto ipsec
  • trace crypto isakmp
  • trace crypto packet

При включении всех этих опций процесс установление IPSec соединения выглядит примерно следующим образом:

2004-1-5 17:27:22 IPSEC_PACKET(capsulate):
2004-1-5 17:27:22 ISAKMP: received initiate-msg from core
2004-1-5 17:27:22 ISAKMP: initiate negotiation "6 common_map 20" with 100.228.202.154
2004-1-5 17:27:22 ISAKMP: new state 106
2004-1-5 17:27:22 ISAKMP: state 106 bind conn '6 common_map 20'
2004-1-5 17:27:22 ISAKMP(106): sending packet to 100.228.202.154
2004-1-5 17:27:22 ISAKMP: received packet from 100.228.202.154
2004-1-5 17:27:22 ISAKMP(106): a state in M_NO_STATE, (with conn "6 common_map 20")
2004-1-5 17:27:22 ISAKMP(106): processing ISAKMP-SA payload.
2004-1-5 17:27:22 ISAKMP(106): Checking ISAKMP transform 1
2004-1-5 17:27:22 encrypt: OAKLEY_3DES_CBC
2004-1-5 17:27:22 hash: OAKLEY_MD5
2004-1-5 17:27:22 auth: OAKLEY_PRESHARED_KEY
2004-1-5 17:27:22 group: OAKLEY_GROUP_MODP768
2004-1-5 17:27:22 life-seconds: 86400
2004-1-5 17:27:22 attrs accept again isakmp policy 20
2004-1-5 17:27:23 ISAKMP(106): sending packet to 100.228.202.154
2004-1-5 17:27:23 ISAKMP: received packet from 100.228.202.154
2004-1-5 17:27:23 ISAKMP(106): a state in M_SA_XCHG, (with conn "6 common_map 20")
2004-1-5 17:27:23 ISAKMP(106): sending packet to 100.228.202.154
2004-1-5 17:27:23 ISAKMP: received packet from 100.228.202.154
2004-1-5 17:27:23 ISAKMP(106): a state in M_KEY_XCHG, (with conn "6 common_map 20")
2004-1-5 17:27:23 ISAKMP: new state 107
2004-1-5 17:27:23 ISAKMP: state 107 bind conn '6 common_map 20'
2004-1-5 17:27:23 ISAKMP(107): initiating Quick Mode with "6 common_map 20"
2004-1-5 17:27:23 ISAKMP(107): sending packet to 100.228.202.154
2004-1-5 17:27:24 ISAKMP: received packet from 100.228.202.154
2004-1-5 17:27:24 ISAKMP(107): a state in Q_IDLE_1, (with conn "common_map 20")
2004-1-5 17:27:24 ISAKMP(107): processing IPsec-SA payload.
2004-1-5 17:27:24 transform: ESP_3DES
2004-1-5 17:27:24 encapsulation: ENCAPSULATION_MODE_TUNNEL
2004-1-5 17:27:24 auth: AUTH_ALGORITHM_HMAC_MD5
2004-1-5 17:27:24 group: OAKLEY_GROUP_MODP768
2004-1-5 17:27:24 life-seconds: 28800
2004-1-5 17:27:24 life-kliobytes: 4608000
2004-1-5 17:27:24 ISAKMP: attr accept again transform-set novosib_set
2004-1-5 17:27:24 ISAKMP(107): add inbound sa
2004-1-5 17:27:24
2004-1-5 17:27:24 ISAKMP(107): add outbound sa
2004-1-5 17:27:24
2004-1-5 17:27:24 ISAKMP(107): sending packet to 100.228.202.154

Команды:

  • delete crypto sa
  • delete crypto isakmp sa

используются для удаление существующих туннелей.