Cisco. VPN-туннель IPSec (Tunnel): различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
[[Категория:Cisco]] | [[Категория: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