Курс по сетевым технологиям
A A A

Рассмотрим настройку сети. Но для начала разберемся как работает 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 для NAT на Headquarter

 

Настройки ACL для NAT на 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:

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

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

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

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

Неудачный ping

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

 

Чтобы исправить это настроим статический маршрут к сети 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