Предположим, перед нами задача присоединения нескольких удалённых сегментов сети к центральной точке используя стороннего провайдера в качестве опоры для построения инфраструктуры. Провайдеру мы не доверяем; хотя бы и потому, что не доверяем никому. Нужно шифровать трафик. В применении туннелей и VPN нет необходимости, достаточно обойтись элементарным IPSEC.
Протестировано на следующих маршрутизаторах:
Cisco 1800 / 2800 / 3800.
Примем за данность следующее:
Адресация центральной сети: 192.168.1.0/24;
Адресация первого сегмента: 192.168.2.0/24;
Адресация второго сегмента: 192.168.3.0/24;
Адресация третьего сегмента: 192.168.4.0/24;
Адресация сегмента провайдера: 10.10.1.0/24.
Адресация первого сегмента: 192.168.2.0/24;
Адресация второго сегмента: 192.168.3.0/24;
Адресация третьего сегмента: 192.168.4.0/24;
Адресация сегмента провайдера: 10.10.1.0/24.
Дополняем конфигурацию центрального маршрутизатора следующими конструкциями:
!* Базовая конфигурация интерфейса, смотрящего в опорную сеть провайдера
interface FastEthernet0/1
!* Используем адрес из опорной сети провайдера
ip address 10.10.1.1 255.255.255.0
no shutdown
no ip route-cache
exit
!* Отключаем поддержку протокола "Spanning Tree" (на всякий случай, всё равно уходим в сеть провайдера)
no spanning-tree FastEthernet0/1
!* Включение и описание общих параметров политики шифрования: begin
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
!* Включение и описание общих параметров политики шифрования: end
!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): begin
access-list 2001 permit ip 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp any host 10.10.1.1
access-list 2001 permit icmp any host 10.10.1.2
access-list 2002 permit ip 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp any host 10.10.1.1
access-list 2002 permit icmp any host 10.10.1.3
access-list 2003 permit ip 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp any host 10.10.1.1
access-list 2003 permit icmp any host 10.10.1.4
!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): end
!* Создаём ключи для направлений ("пиров"): begin
crypto isakmp key strong.key.string1 address 10.10.1.2
crypto isakmp key strong.key.string2 address 10.10.1.3
crypto isakmp key strong.key.string3 address 10.10.1.4
!* Создаём ключи для направлений ("пиров"): end
!* Определение параметров туннелирования и протокола шифрования для направления: begin
!* В нашем случае ничего, кроме определения контекста как такового, мы не делаем
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
exit
!* Определение параметров туннелирования и протокола шифрования для направления: end
!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: begin
!* Где число после имени "карты шифрования" - значение "Sequence to insert into crypto map entry", определяющее последовательность отработки блоков описания "пиров" внутри "карты шифрования", наложенной на интерфейс
crypto map CryptoMapName 1 ipsec-isakmp
set peer 10.10.1.2
set transform-set CryptoPeer1
match address 2001
exit
crypto map CryptoMapName 2 ipsec-isakmp
set peer 10.10.1.3
set transform-set CryptoPeer2
match address 2002
exit
crypto map CryptoMapName 3 ipsec-isakmp
set peer 10.10.1.4
set transform-set CryptoPeer3
match address 2003
exit
!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: end
!* Применяем к интерфейсу, смотрящего в опорную сеть провайдера, описанную выше карту шифрования
interface FastEthernet0/1
!* Применяем к интерфейсу карту шифрования трафика
crypto map CryptoMapName
exit
interface FastEthernet0/1
!* Используем адрес из опорной сети провайдера
ip address 10.10.1.1 255.255.255.0
no shutdown
no ip route-cache
exit
!* Отключаем поддержку протокола "Spanning Tree" (на всякий случай, всё равно уходим в сеть провайдера)
no spanning-tree FastEthernet0/1
!* Включение и описание общих параметров политики шифрования: begin
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
!* Включение и описание общих параметров политики шифрования: end
!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): begin
access-list 2001 permit ip 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp 192.168.0.0 0.0.255.255 192.168.2.0 0.0.0.255
access-list 2001 permit icmp any host 10.10.1.1
access-list 2001 permit icmp any host 10.10.1.2
access-list 2002 permit ip 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
access-list 2002 permit icmp any host 10.10.1.1
access-list 2002 permit icmp any host 10.10.1.3
access-list 2003 permit ip 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp 192.168.0.0 0.0.255.255 192.168.4.0 0.0.0.255
access-list 2003 permit icmp any host 10.10.1.1
access-list 2003 permit icmp any host 10.10.1.4
!* Описываем области допущения трафика для последующего распределения по направлениям ("пирам"): end
!* Создаём ключи для направлений ("пиров"): begin
crypto isakmp key strong.key.string1 address 10.10.1.2
crypto isakmp key strong.key.string2 address 10.10.1.3
crypto isakmp key strong.key.string3 address 10.10.1.4
!* Создаём ключи для направлений ("пиров"): end
!* Определение параметров туннелирования и протокола шифрования для направления: begin
!* В нашем случае ничего, кроме определения контекста как такового, мы не делаем
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
exit
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
exit
!* Определение параметров туннелирования и протокола шифрования для направления: end
!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: begin
!* Где число после имени "карты шифрования" - значение "Sequence to insert into crypto map entry", определяющее последовательность отработки блоков описания "пиров" внутри "карты шифрования", наложенной на интерфейс
crypto map CryptoMapName 1 ipsec-isakmp
set peer 10.10.1.2
set transform-set CryptoPeer1
match address 2001
exit
crypto map CryptoMapName 2 ipsec-isakmp
set peer 10.10.1.3
set transform-set CryptoPeer2
match address 2002
exit
crypto map CryptoMapName 3 ipsec-isakmp
set peer 10.10.1.4
set transform-set CryptoPeer3
match address 2003
exit
!* Описываем карту направлений шифрования потоков трафика проходящего через интерфейс: end
!* Применяем к интерфейсу, смотрящего в опорную сеть провайдера, описанную выше карту шифрования
interface FastEthernet0/1
!* Применяем к интерфейсу карту шифрования трафика
crypto map CryptoMapName
exit
Теперь центральный маршрутизатор готов и будет шифровать на интерфейсе весь исходящий трафик удовлетворяющий описанию листов доступа и принимать только шифрованный трафик в соответствии с указанными "ключами".
На маршрутизаторах подключаемых сегментов сети конфигурацию приведём к ниже следующему виду.
Для маршрутизатора первого сегмента:
interface FastEthernet0/1
ip address 10.10.1.2 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2001 permit ip any any
access-list 2001 permit icmp any any
crypto isakmp key strong.key.string1 address 10.10.1.1
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
crypto map CryptoMapName 1 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer1
match address 2001
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
ip address 10.10.1.2 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2001 permit ip any any
access-list 2001 permit icmp any any
crypto isakmp key strong.key.string1 address 10.10.1.1
crypto ipsec transform-set CryptoPeer1 esp-des esp-md5-hmac
crypto map CryptoMapName 1 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer1
match address 2001
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
Для маршрутизатора второго сегмента:
interface FastEthernet0/1
ip address 10.10.1.3 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2002 permit ip any any
access-list 2002 permit icmp any any
crypto isakmp key strong.key.string2 address 10.10.1.1
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
crypto map CryptoMapName 2 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer2
match address 2002
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
ip address 10.10.1.3 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2002 permit ip any any
access-list 2002 permit icmp any any
crypto isakmp key strong.key.string2 address 10.10.1.1
crypto ipsec transform-set CryptoPeer2 esp-des esp-md5-hmac
crypto map CryptoMapName 2 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer2
match address 2002
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
Для маршрутизатора третьего сегмента:
interface FastEthernet0/1
ip address 10.10.1.4 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2003 permit ip any any
access-list 2003 permit icmp any any
crypto isakmp key strong.key.string3 address 10.10.1.1
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
crypto map CryptoMapName 3 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer3
match address 2003
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
ip address 10.10.1.4 255.255.255.0
no shutdown
no ip route-cache
exit
no spanning-tree FastEthernet0/1
crypto isakmp enable
crypto isakmp policy 1
encryption des
hash md5
authentication pre-share
group 2
exit
access-list 2003 permit ip any any
access-list 2003 permit icmp any any
crypto isakmp key strong.key.string3 address 10.10.1.1
crypto ipsec transform-set CryptoPeer3 esp-des esp-md5-hmac
crypto map CryptoMapName 3 ipsec-isakmp
set peer 10.10.1.1
set transform-set CryptoPeer3
match address 2003
exit
interface FastEthernet0/1
crypto map CryptoMapName
exit
Соединение с шифрованием IPSEC инициализируется после того, как по нему попытаются передать данные. Нужно иметь это в виду и, после настройки, хотя бы послать серию ICMP пакетов в присоединённую подсеть.
Отслеживать состояние подсистемы шифрования можно с помощью следующих запросов с "говорящим" выводом:
# show crypto isakmp sa
# show crypto ipsec sa
# show crypto engine connections active
# show crypto ipsec sa
# show crypto engine connections active
29 апреля 2011 в 17:17
29 апреля 2011 в 18:47
13 декабря 2011 в 11:55
13 декабря 2011 в 12:02
26 июля 2012 в 17:44
26 июля 2012 в 18:56
14 августа 2012 в 19:49
14 августа 2012 в 20:29
15 августа 2012 в 11:47
15 августа 2012 в 12:25
15 августа 2012 в 14:13
15 августа 2012 в 14:54
15 августа 2012 в 15:01