Урок 45. Настройка IPSec Site-to-Site VPN

 

Рассмотрим настройку сети. Но для начала разберемся как работает VPN на основе IPSec. IPSec представляет собой стек протоколов для аутентификации и шифрования. Процесс создания туннеля состоит из 2-х фаз. 

 

1-я фаза - ISAKMP (Internet Security Association and Key Management Protocol)  

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

Но ведь данные могут быть перехвачены, канал же все еще не защищен? 

Верно, поэтому используется специальный алгоритм Диффи-Хеллмана (протокол Internet Key Exchange, IKE). С помощью него можно обмениваться секретными ключами по незащищенному каналу. Как только секретный ключ получен устанавливается защищенный мини-туннель и дальнейший обмен служебной информацией проходит в безопасном режиме. В 1-й фазе устройства должны договориться об использовании следующих параметров безопасности:

    • Алгоритм шифрования 
    • Метод аутентификации
    • Способ обмена секретными ключами
    • Срок жизни сессии (Security Association)

 Набор данных параметров определяет политику ISAKMP. 

Можно настроить различные политики ISAKMP? 

Конечно. Каждая политика имеет свой приоритет. Когда устройства начинают договариваться друг с другом, то последовательно перебирают все установленные  политики, начиная с высшего приоритета. Как только будет обнаружено, что устройства имеют одинаковые параметры в конкретной политике, то поиск прекращается.

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

Заметим, что в 1-й фазе никакие пользовательские данные не передаются - только служебная информация.

 

2-я фаза - установление IPSec туннеля

На данном этапе  создается сам IPSec туннель для передачи пользовательских данных. Поэтому маршрутизаторы снова договариваются какие протоколы шифрования и хэширования будут использоваться между ними. 

Но ведь в 1-й фазе маршрутизаторы уже договорились обо всех параметрах безопасности, зачем это делать повторно? 

В 1-й фазе шифровалась служебная информация, а во 2- й фазе - уже пользовательские данные. Поэтому в целях безопасности и создаются 2 разных канала. 

А что происходит с мини-туннелем ISAKMP? 

Он остается активным во время работы IPSec туннеля. У каждого туннеля есть

свое время “жизни”. Поэтому, если необходимо продлить сеанс связи, то мини-туннель ISAKMP обновит таймер туннеля, а также секретные ключи безопасности.

Теперь, когда с теорией немного разобрались, приступим к настройке необходимых параметров. Для начала настроим саму сеть, включая и NAT на конечных маршрутизаторах:

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

Настройки ACL мартшрутизатора Headquarter

Настройки ACL маршрутизатора Branch

Обратите внимание на список доступа для NAT. Мы указываем, что IP адреса трафика, предназначенного для диапазона 192.168.2.0 не должен транслироваться в глобальные адреса. Аналогичная ситуация и на маршрутизаторе Branch.

 

Настройка VPN 

Настроим политику ISAKMP на маршрутизаторе Headquarter: 

Headquarter(config)# crypto isakmp policy 1  

Headquarter(config-iakmp)# encryption aes  - метод шифрования aes 

Headquarter(config-isakmp)# authentication pre-share - метод аутентификации pre-share

Headquarter(config-isakmp)# group 2 - метод обмена секретными ключами (метод Диффи-Хеллмана)

Headquarter(config-isakmp)# lifetime 10000 - время жизни сессии 10 000 с.

 

Теперь укажем IP адрес конечной точки туннеля, то есть IP адрес маршрутизатора, а также их общий пароль для аутентификации: 

Headquarter(config)# crypto isakmp key  6 PASSWORD address 125.1.1.1

 

Настроим параметры туннеля IPSec: 

Headquarter(config)# crypto ipsec transform-set TUNNEL esp-3des esp-sha-hmac

 

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

Headquarter(config)# access-list 101  permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

 

Объединим  параметры IPSec, список доступа и укажем с кем надо создавать туннель. Для этого создадим карту шифрования: 

Headquarter(config)# crypto map MAP 1 ipsec-isakmp

Headquarter(config-crypto-map)# set peer 125.1.1.1

Headquarter(config-crypto-map)# set transform-set TUNNEL

Headquarter(config-crypto-map)# match address 101

 

В маршрутизаторе может существовать только одна карта шифрования, однако в самой карте можно создавать несколько наборов шифрования для нескольких туннелей. Например, мы создаем второй туннель. Тогда в самой карте поменяем порядковый номер: 

Headquarter(config)# crypto map MAP 2 ipsec-isakmp

 

И теперь можно добавлять параметры для второго туннеля. Завершающим этапом является привязка карты шифрования к внешнему интерфейсу: 

Headquarter(config)# interface fa1/0

Headquarter(config-int)# crypto map MAP

 

Вот как выглядят настройки маршрутизатора Headquarter:

Конфигурация VPN маршрутизатора Headquarter

То же самое проделываем и на втором маршрутизаторе, только в качестве конечной точки туннеля указываем адрес 100.1.1.1:

настройки VPN маршрутизатора Branch

Теперь проверим работу туннеля. Достаточно запустить ping:

Неуспешный Ping в VPN сети

Однако результат обескураживает. Выглядит так, как будто маршрутизатор не знает куда отправлять пакеты. 

Настроим статический маршрут к сети 192.168.2.0 через WAN интерфейс: 

Headquarter(config)# ip route 192.168.2.0 255.255.255.0  fa1/0 

 

После запуска утилиты PING туннель поднимается и начинает работать так, как надо. Для просмотра сведений о работе туннеля можно использовать команду: 

Headquarter# show crypto session

Отображение сведений о состоянии VPN туннеля

Будут также полезны и следующие команды: 

Router# show crypto isakmp sa 

Router# show crypto ipsec sa