Организация IPSec туннелей на Cisco

Памятка по поднятию защищенных туннелей между организациями или удаленными офисами.
Имеем два маршрутизатора Cisco с поддержкой IPSec и GRE, по одному с каждой стороны. Допустим адресация локальной сети с одной стороны 10.10.0.0/20 (255.255.240.0) а с другой стороны 192.168.1.0/24 (255.255.255.0)
Выбираем подсеть для туннеля. Она должна быть вне пределов имеющихся туннелей и имеющихся подсетей, дабы избежать ошибок в маршрутизации. Пусть это будет подсеть 10.11.0.0/30 (255.255.255.252)
Так же, на обоих маршрутизаторах, есть интерфейс, смотрящий в интернет. Допустим на первом это будет FastEthernet1/0 210.85.1.100 а на втором FastEthernet2/0 60.110.85.5
Поднимаем туннели на обоих маршрутизаторах:

Первый маршрутизатор:
Допустим что в интернет смотрит интерфейс FastEthernet1/0
interface Tunnel1
bandwidth 10000
ip address 10.11.0.1 255.255.255.252
ip mtu 1500
tunnel source FastEthernet1/0
tunnel destination 60.110.85.5
В данном случае мы назначили отправлять все пакеты что пришли от FastEthernet1/0 на адрес в инете 60.110.85.5 коим является внешний адрес нашей удаленной второй Cisco. Вместо указания интерфейса, можно просто прописать IP адрес этого интерфейса: tunnel source 210.85.1.100
Команда bandwidth не обязательна, но иногда имеет смысл ограничить канал туннеля до нужных размеров.

Второй маршрутизатор:
interface Tunnel1
bandwidth 10000
ip address 10.11.0.2 255.255.255.252
ip mtu 1500
tunnel source 60.110.85.5
tunnel destination 210.85.1.100
В данном случае настройка зеркальна первому маршрутизатору, и как раз source указан в виде IP адреса. Далее проверяем поднялся ли туннель. На каждом маршрутизаторе выполняем show interfaces, которые в случае успеха покажут нам примерно следующее:
На первом маршрутизаторе:
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 10.11.0.1/30
MTU 1514 bytes, BW 2000 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 210.85.1.100, destination 60.110.85.5
Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled
Tunnel TTL 255

На втором маршрутизаторе:
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 10.11.0.2/30
MTU 1514 bytes, BW 2000 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 60.110.85.5, destination 210.85.1.100
Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled
Tunnel TTL 255

Далее, проверяем доступность интерфейсов туннеля пингуя от маршрутизаторов IP адреса противоположной стороны. Все должно пинговаться.
Теперь, чтобы закрыть туннель IPSec на каждом маршрутизаторе нужно создать isakmp policy, IPSec профиль, transform-set и задать ключ, которым будет закрыт туннель. Можно делать зеркально, а можно и по разному, через ключ и keyring, это не важно. Я покажу оба варианта по одному на каждый интерфейс:
На первом маршрутизаторе (вариант через keyring):
crypto keyring kr-ipsec2
local-address FastEthernet1/0
pre-shared-key address 60.110.85.5 key key12345

crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share

crypto isakmp profile myprofile
keyring kr-ipsec2
self-identity address
match identity address 60.110.85.5 255.255.255.255
local-address FastEthernet1/0.98

crypto ipsec transform-set mytransform esp-3des esp-md5-hmac
crypto ipsec profile myprofile
set transform-set mytransform

На втором маршрутизаторе (вариант через обычный ключ без создания keyring):
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share

crypto isakmp key key12345 address 210.85.1.100 no-xauth
crypto ipsec security-association idle-time 3600
crypto ipsec transform-set mytransform esp-3des esp-md5-hmac
crypto ipsec profile myprofile
set transform-set mytransform

Когда все настройки IPSec завершены, можно закрывать им сам туннель:
На первом маршрутизаторе в настройки интерфейса Tunnel1 добавляем:
tunnel protection ipsec profile myprofile
можно изменить режим работы туннеля с GRE на IPSec командой
tunnel mode ipsec ipv4
но это лишь в том случае, если оба маршрутизатора поддерживают такой режим работы туннельных интерфейсов. Если нет, то оставляем GRE, так как он есть везде. Если нужно назначить GRE принудительно, то:
tunnel mode gre

На втором маршрутизаторе в настройки интерфейса Tunnel1 добавляем:
tunnel protection ipsec profile myprofile shared
и так же, если интерфейс поддерживает режим ipsec то
tunnel mode ipsec ipv4

Проверяем закрылся ли туннель IPSec:
на обоих маршрутизаторах вводим команду show interfaces и смотрим результат. В описании туннеля появится строка
для первого маршрутизатора:
Tunnel protection via IPSec (profile "myprofile")

для второго маршрутизатора:
Tunnel protection via IPSec (profile "myprofile")

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

Далее, если мы хотим пробросить пакеты на внутренние сети противоположных концов туннеля, то нам надо поднять маршрутизацию. Для нашего случая, интерфейсы смотрящие в интернет являются для NAT стороной outside, а туннельные интерфейсы стороной inside. Так их и обозначим:
Первый маршрутизатор:
в конфигурацию интерфейса FastEthernet1/0 с адресом 210.85.1.100 допишем
ip nat outside
а в конфигурацию интерфейса Tunnel1
ip nat inside
Далее в таблицу маршрутизации прописываем маршрут:
ip route 192.168.1.0 255.255.255.0 Tunnel1

Второй маршрутизатор:
в конфигурацию интерфейса FastEthernet2/0 с адресом 60.110.85.5 допишем
ip nat outside
а в конфигурацию интерфейса Tunnel1
ip nat inside
Далее в таблицу маршрутизации прописываем маршрут:
ip route 10.0.0.0 255.255.240.0 Tunnel1

Все, пакеты для удаленных локальных сетей будут отправляться на интерфейсы туннеля обоих маршрутизаторов.
IPSec туннель построен.

Поделиться

Опубликовать в Facebook
Опубликовать в LiveJournal

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>