Cisco. VPN-туннель IPSec (Tunnel): различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
(Создана пустая страница)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
[[Категория:Cisco]]
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__


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

Текущая версия на 08:08, 30 апреля 2022


Описание и входные данные

Предположим, что имеется Центральный офис и Филиал

ЦО:

Внутренняя сеть: 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