Cisco. VPN-туннель IPSec (Tunnel)
Описание и входные данные
Предположим, что имеется Центральный офис и Филиал
ЦО:
Внутренняя сеть: 192.168.250.0/24
Адрес внутреннего интерфейса (направленного в локальную сеть): 192.168.250.8
Внешний интерфейс: 172.16.250.1/24 - FastEthernet 6/0
Шлюз провайдера: 172.16.250.8
Филиал:
Внутренняя сеть: 192.168.17.0/24
Адрес внутреннего интерфейса (направленного в локальную сеть): 192.168.17.8
Внешний интерфейс: 172.16.17.1/24 - FastEthernet 6/0
Шлюз провайдера: 172.16.17.8
Настройка
Настройка ЦО
Сначала настроим общую политику для фазы 1 – установление первого, вспомогательного туннеля: тип шифрования (по умолчанию DES) и аутентификации.
Аутентификацию можно делать на основе сертификатов, но мы рассмотрим простой пример с предварительным ключом:
crypto isakmp policy 1
encr aes
authentication pre-share
Часто задаются несколько таких политик с различными комбинациями шифрования, хеша и группы DH.
Чем больше номер политики, тем позже он будет рассмотрен (в зависимости от того, кто инициирует соединение).
То есть сначала выбирается политика с наименьшим номером – не совпали на обеих сторонах, выбирается следующая (с большим номером) и т.д. Логично, что самой безопасной должна быть первая.
Указываем pre-shared key для проверки подлинности соседа на другой стороне - 172.16.17.1
crypto isakmp key 0 CISCO address 172.16.17.1
Далее мы указываем параметры для обработки трафика. Алгоритм шифрования AES с использованием ESP-заголовка и алгоритм аутентификации.
crypto ipsec transform-set AES128-SHA esp-aes esp-sha-hmac
На самом деле мы указываем сразу набор протоколов, как вы видите, он и называется transform-set.
При установке IPSec-сессии маршрутизаторы обмениваются этими наборами. Они должны совпадать.
Для упрощения траблшутинга имена для transform-set обычно даются по применённым протоколам.
Теперь создаём карту шифрования
Вот именно тут и определяется адрес соседа IPSec, с которым потом будет устанавливаться туннель – 200.0.0.1
crypto map MAP1 10 ipsec-isakmp
set peer 172.16.17.1
set transform-set AES128-SHA
match address 101
Тут же привязывается набор протоколов и ACL, определяющий, какой трафик будет шифроваться и передаваться через туннель.
192.168.250.0 0.0.0.255 - локальная сеть ЦО за рутером
192.168.17.0 0.0.0.255 - локальная сеть Филиала за рутером
access-list 101 permit ip 192.168.250.0 0.0.0.255 192.168.17.0 0.0.0.255
Будьте внимательны при задании ACL. Он определяет параметры не только исходящего трафика, но и входящего (в отличие от ACL для NAT, например).
То есть если придут пакеты не от 192.168.17.0, а от 10.2.2.2, он не будет обработан и дешифрован.
То есть, если мы генерируем трафик с хоста с адресом 192.168.250.0 на 192.168.17.0, то он и только он будет шифроваться и отправляться именно в IPSec-туннель.
Любой другой пойдёт простым путём.
Заметим, что шифрование, происходит практически в самую последнюю очередь, после маршрутизации.
И это, кстати, очень важный момент. Вам недостаточно маршрута до публичного адреса пира (172.16.17.1).
Нужен маршрут до 192.168.17.0 пусть даже он дефолтный. Иначе пакет будет отброшен в соответствии с обычными правилами маршрутизации.
Как бы странно это ни казалось, но трафик в локальную сеть у вас должен быть “зарулен”, например, в Интернет.
При этом приватные пакет, которые уже вот-вот должны быть отправлены к провайдеру и там отброшены, в последний момент шифруется, получая публичные адреса.
172.16.250.8 - шлюз провайдера
ip route 0.0.0.0 0.0.0.0 172.16.250.8
Последний шаг – привязка карты шифрования к внешнему интерфейсу, на котором работает IPSec.
Пока вы этого не сделаете механизм не будет работать.
interface FastEthernet 6/0
crypto map MAP1
Настройка Филиала
crypto isakmp policy 1
encr aes
authentication pre-share
crypto isakmp key 0 CISCO address 172.16.250.1
crypto ipsec transform-set AES128-SHA esp-aes esp-sha-hmac
crypto map MAP1 10 ipsec-isakmp
set peer 172.16.250.1
set transform-set AES128-SHA
match address 101
192.168.250.0 0.0.0.255 - локальная сеть ЦО за рутером
192.168.17.0 0.0.0.255 - локальная сеть Филиала за рутером
access-list 101 permit ip 192.168.17.0 0.0.0.255 192.168.250.0 0.0.0.255
172.16.250.8 - шлюз провайдера
ip route 0.0.0.0 0.0.0.0 172.16.17.8
interface FastEthernet 6/0
crypto map MAP1
Теперь необходимо пустить в туннель трафик.
Например, с компьютера 192.168.250.36 из локальной сети ЦО до 192.168.17.36 в подсети Филиала:
ping 192.168.17.36
Проверка
show crypto session
show crypto isakmp sa
show crypto ipsec sa