суббота, 9 марта 2013 г.

IPSec Configuration Manual



Преамбула, или ради чего стоило вставать с дивана.
IPSec это логический туннель, который может шифровать трафик проходящий через него своими силами. В отличии, например, от PPTP тут, не создаётся виртуальных(или используя физические) интерфейсов с чётко выделенным адресом, которые должны строго подцепиться друг к другу по определённому регламенту. 
Заместо этого, задаётся правило идентификации базовых хостов перед началом инициации туннеля и вид шифрования трафика проходящего через туннель -- это раз. 
На втором этапе расписывается MAP(карта), трафик попадающий в эту карту будет перемещаться между хостами уже по регламенту IPSec со всей песней с припевом. 
В данном случае мы расписали, что карта для IPSec:
R1(config-crypto-map)#match address 110 (см номер ACL пункта 4)
смотрим в пункт 4
R1(config)#access-list 110 permit ip 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255
т.е. как показано на рисунке трафик пробегающий из 10.0.1.0/24 сети с одной стороны в сеть 10.0.2.0/24 на другую сторону -- будет перемещаться используя туннелирование IPSec с означенными параметрами.
После завершения кофигурирования IPSec туннеля он находится в состоянии DOWN. 
Чтобы дать стартовый пинок, достаточно пустить трафик через диапазон IPSec туннеля ( это может быть icmp пинг, http запрос  и тому подобное ) после чего, если включены
debug crypto isakmp 
debug crypto ipsec
можно наблюдать резвый лог установления туннеля.

Убедиться что пакеты прошли по туннелю можно через команду
R1#show crypto ipsec sa
    #pkts encaps: 15, #pkts encrypt: 15, #pkts digest: 15
    #pkts decaps: 11, #pkts decrypt: 11, #pkts verify: 11

Более подробно смотри развёрнутый бриф по IPSeс по тегу-метке IPSec.

P.S. Если туннель не работает, надо пересматривать конфиг до помутнения рассудка, ты где-то облажался. Если твёрдо уверен, что ошибок нет, а туннель не работает, всё стирай и пиши конфиг заново.





Шаг 1: Конфигурируем ACL для подачи "заинтересованного" трафика". 
Разрешаем протоколы AH(51), ESP(51) и UDP по порту эквивалентному ISAKMP (500)

R1(config)# access-list 102 permit ahp host 211.181.25.221 host 211.181.24.15 
R1(config)# access-list 102 permit esp host 211.181.25.221 host 211.181.24.15
R1(config)# access-list 102 permit udp host 211.181.25.221 host 211.181.24.15 eq isakmp


Применяем ACL к интерфейсу:
R1(config)# int fa 0/0

R1(config-if)# ip add 211.181.24.15 255.255.254.0
R1(config-if)# no sh
R1(config-if)# ip access-group 102 in


Проверяем:
R1#sh access-lists
Extended IP access list 102
    10 permit ahp host 211.181.25.221 host 211.181.24.15

    20 permit esp host 211.181.25.221 host 211.181.24.15
    30 permit udp host 211.181.25.221 host 211.181.24.15 eq isakmp



Шаг 2: Сконфигурируем ISAKMP:

а) Включаем и конфигурируем ISAKMP(Internet Security Association and Key Management Protocol) политики для регламентирования процедуры обмена ключами согласно выбору ESP
(Authentication, Confidential, Diffle-Hellmane and Integrity см. IPSec Framework)
(номер политики это приоритет её просмотра на предмет использования)
R1(config)# crypto isakmp enable
R1(config)# crypto isakmp policy 20
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# encryption des
R1(config-isakmp)# group 2
R1(config-isakmp)# hash sha
R1(config-isakmp)# lifetime 86400

R1(config-isakmp)# exit

б)  Задаём ключи для обмена ISAKMP IKE (Internet Key Exchange)

crypto isakmp key <0..6> если 0 ключ не шифрован, если 6-- шифрован
  0  Specifies an UNENCRYPTED password will follow
  6  Specifies an ENCRYPTED password will follow


R1(config)# crypto isakmp key 0 cisco111 address 211.181.25.221

Шаг 3: Задание трансформы, оно же вида и способа шифрования трафика в туннеле
имя значения не имеет и применяется только для локального удобства описания


R1(config)# crypto ipsec transform-set TransformOffice1 esp-aes 128
R1(cfg-crypto-trans)#mode tunnel
R1(cfg-crypto-trans)#exit

Шаг 4: Задаём ACL чтобы он пропускал трафик туннеля

R1(config)#access-list 110 permit ip 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255
 


Шаг 5: Даём установочный пинок создавая Crypto-Map и применяя на интерфейс

R1(config)#crypto map MapOffice1 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.

 

R1(config-crypto-map)#match address 110 (см номер ACL пункта 4)
R1(config-crypto-map)#set peer 211.181.25.221 default
R1(config-crypto-map)#set peer 172.30.3.2
(позволяет создать указание на резервного пира)
R1(config-crypto-map)#set pfs group1 (
Diffie-Hellman )
R1(config-crypto-map)#set transform-set
TransformOffice1 (см пункт 3)
R1(config-crypto-map)#set security-association lifetime seconds 86400


5) Применяем CryptoMap на интерфейс

R1(config)#int fa 0/0
R1(config-if)#cry
R1(config-if)#crypto map
MapOffice1
R1(config-if)#

*Mar  1 00:33:55.831: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON


6) Прописываем роутинг либо статический, либо через любой протокол маршрутизации, если у нас в середине провайдер, то дефолт шлюз на него естественно

R1(config)#int fa 0/0
R1(config-if)#cry
R1(config-if)#crypto map
MapOffice1
R1(config-if)#

*Mar  1 00:33:55.831: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON


R1(config)# ip route 0.0.0.0 0.0.0.0 211.181.25.221R1(config)# ip route 10.0.2.0 255.255.255.0 FastEthernet0/0

C другой стороны

R2(config)#access-list 122 permit ahp host 211.181.24.15 host 211.181.25.221
R2(config)#access-list 122 permit esp host 211.181.24.15 host 211.181.25.221
R2(config)#access-list 122 permit udp host 211.181.24.15 host 211.181.25.221 eq isakmp

R2(config)#int fa 0/0
R2(config-if)#ip add
211.181.25.221 255.255.254.0
R2(config-if)#no sh
R2(config-if)#ip access-group 122 in
R2(config-if)#exit


R2(config)#crypto isakmp policy 110
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#encryption des
R2(config-isakmp)#group 2
R2(config-isakmp)#hash sha
R2(config-isakmp)#lifetime 86400
R2(config-isakmp)#exit


R2(config)#crypto isakmp key 0 cisco111 address
211.181.24.15
 

R2(config)#crypto ipsec transform-set TransformOffice1 esp-aes 128
R2(cfg-crypto-trans)#exit

R2(config)#access-list 120 permit ip 10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255
 

R2(config)#crypto map MapOffice1 5 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.

R2(config-crypto-map)#match address 120
R2(config-crypto-map)#set peer
211.181.24.15 default
R2(config-crypto-map)#set pfs group1
R2(config-crypto-map)#set transform-set
TransformOffice1
R2(config-crypto-map)#set security-association lifetime seconds 86400
 

R2(config-crypto-map)#int fa 0/0
 R2(config-if)#crypto map
MapOffice1
 R2(config-if)#
*Mar  1 01:12:55.539: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R4(config-if)#exit


R2(config)# ip route 0.0.0.0 0.0.0.0 211.181.24.15
R2(config)# ip route 10.0.1.0 255.255.255.0 FastEthernet0/0



Комментариев нет:

Отправить комментарий