Введение в IPsec VPN на оборудовании Cisco
IPsec (Internet Protocol Security) — это набор протоколов для защиты передачи данных по IP-сетям. На маршрутизаторах Cisco IPsec VPN используется для создания защищённых туннелей между двумя точками (site-to-site) или для удалённого доступа. В отличие от простых GRE-туннелей, IPsec обеспечивает шифрование, аутентификацию и проверку целостности пакетов.
Cisco IOS поддерживает два основных протокола для установки ключей: IKEv1 (Internet Key Exchange version 1) и IKEv2. IKEv1 является более старым и широко распространённым, в то время как IKEv2 предлагает улучшенную производительность и безопасность. В данной статье мы сосредоточимся на IKEv1, так как он всё ещё используется в большинстве корпоративных сетей.
Процесс установки IPsec VPN делится на две фазы:
- Фаза 1 (ISAKMP) — создание защищённого канала для обмена ключами.
- Фаза 2 (IPsec) — создание туннеля для передачи пользовательских данных.
Понимание этих этапов критически важно для правильной настройки и диагностики VPN.
Предварительные требования и ограничения
Перед началом настройки необходимо убедиться, что выполнены следующие условия:
- Маршрутизаторы Cisco с поддержкой IPsec и установленной лицензией на VPN (обычно входит в пакет Security).
- Наличие статического или динамического публичного IP-адреса на каждом конце туннеля.
- Возможность маршрутизации между локальными сетями через VPN (например, через статические маршруты или динамическую маршрутизацию).
- Отсутствие блокировок портов UDP 500 (ISAKMP) и UDP 4500 (NAT-T) на межсетевых экранах.
Ограничения:
- IKEv1 не поддерживает некоторые современные алгоритмы шифрования (например, AES-GCM) без дополнительных настроек.
- При использовании динамических IP-адресов на удалённой стороне туннель может быть инициирован только с той стороны, которая знает IP-адрес другой стороны.
- NAT может нарушить работу IPsec, если не настроить исключения для VPN-трафика.
Фаза 1: Настройка ISAKMP (IKE)
ISAKMP (Internet Security Association and Key Management Protocol) отвечает за установку защищённого канала между двумя устройствами. Настройка начинается с создания политики ISAKMP с помощью команды crypto isakmp policy.
Пример настройки на головном маршрутизаторе (R1):
crypto isakmp policy 1
encryption aes
hash md5
authentication pre-share
group 10
lifetime 86400- encryption — алгоритм шифрования (DES, 3DES, AES).
- hash — алгоритм хеширования (MD5, SHA).
- authentication — метод аутентификации (pre-share, rsa-sig).
- group — группа Диффи-Хеллмана (1, 2, 5, 14, 19, 20, 24).
- lifetime — время жизни ключа в секундах (по умолчанию 86400).
Затем задаётся предварительный общий ключ для аутентификации с удалённым пиром:
crypto isakmp key OurKey address 20.20.20.20Если удалённый пир имеет динамический IP, можно использовать маску 0.0.0.0 0.0.0.0, что позволит принимать соединения от любого адреса:
crypto isakmp key OurKey address 0.0.0.0 0.0.0.0На удалённом маршрутизаторе (R2) настройка аналогична, но указывается IP-адрес головного маршрутизатора.
Фаза 2: Настройка IPsec (Transform Set и Crypto Map)
После установки ISAKMP-канала переходим к настройке IPsec. Сначала создаётся transform-set — набор протоколов для защиты данных:
crypto ipsec transform-set IPCiscoSet esp-aes esp-md5-hmac- esp-aes — шифрование ESP с AES.
- esp-md5-hmac — аутентификация ESP с MD5.
Далее необходимо определить, какой трафик будет шифроваться. Для этого создаётся расширенный ACL (access-list), который разрешает трафик между локальной и удалённой сетями:
ip access-list extended IPCiscoVPN
permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.0.255Затем создаётся crypto map, который связывает transform-set, ACL и пира:
crypto map MyMap 10 ipsec-isakmp
set peer 20.20.20.20
set transform-set IPCiscoSet
match address IPCiscoVPNCrypto map применяется к внешнему интерфейсу маршрутизатора:
interface GigabitEthernet0/1
crypto map MyMapНа удалённом маршрутизаторе настройка зеркальна, но ACL разрешает трафик в обратном направлении.
Работа с динамическими IP-адресами удалённых пиров
Если удалённый маршрутизатор получает IP-адрес динамически (например, от провайдера), стандартная настройка crypto map с фиксированным peer не подходит. В этом случае используются динамические crypto maps.
На головном маршрутизаторе создаётся динамическая crypto map, которая не требует указания IP-адреса пира:
crypto dynamic-map hq-vpn 10
set transform-set TS
match address VPN1-TRAFFICЗатем эта динамическая карта включается в статическую crypto map:
crypto map VPN 1 ipsec-isakmp dynamic hq-vpnНа удалённом маршрутизаторе настройка остаётся обычной, с указанием статического IP-адреса головного маршрутизатора. Туннель инициируется только с удалённой стороны.
Важно: При использовании динамических crypto map необходимо убедиться, что ACL на головном маршрутизаторе разрешает трафик от всех возможных удалённых сетей.
Совместимость IPsec VPN и NAT
NAT (Network Address Translation) может нарушить работу IPsec, так как изменяет IP-адреса в заголовках пакетов, что приводит к сбою проверки целостности. Для решения этой проблемы необходимо:
- Настроить исключение NAT для VPN-трафика.
- Включить поддержку NAT-Traversal (NAT-T) на маршрутизаторах.
Настройка исключения NAT: Создаётся ACL, который запрещает NAT для пакетов, направляемых в удалённую VPN-сеть:
access-list 100 deny ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255
access-list 100 permit ip 10.10.10.0 0.0.0.255 anyЗатем этот ACL используется в команде ip nat inside source list 100 interface ... overload.
NAT-Traversal: Cisco IOS автоматически включает NAT-T, если обнаруживает NAT между пирами. Для принудительного включения можно использовать команду:
crypto ipsec nat-transparency udp-encapsulationNAT-T инкапсулирует IPsec-пакеты в UDP (порт 4500), что позволяет им проходить через NAT-устройства.
Проверка и диагностика IPsec VPN
После настройки необходимо убедиться, что туннель работает корректно. Для этого используются следующие команды:
- show crypto isakmp sa — показывает состояние ISAKMP (фаза 1). Статус
QM_IDLEозначает успешное завершение. - show crypto ipsec sa — отображает IPsec SA (фаза 2), количество зашифрованных/расшифрованных пакетов.
- show crypto map — выводит конфигурацию crypto map.
- show crypto session remote detail — детальная информация о сессии.
Пример вывода show crypto ipsec sa:
#pkts encaps: 21, #pkts encrypt: 21, #pkts digest: 21
#pkts decaps: 21, #pkts decrypt: 21, #pkts verify: 21Если количество encaps и decaps растёт, туннель работает. Если нет — проверьте ACL, маршруты и наличие блокировок на файрволах.
Типичные проблемы:
- Несовпадение параметров ISAKMP (алгоритмы, группы).
- Неправильный ACL (трафик не попадает под интересный трафик).
- NAT блокирует IPsec (проверьте исключения).
- Истекло время жизни ключа (lifetime).
Пример полной конфигурации для site-to-site VPN
Ниже приведён пример настройки site-to-site IPsec VPN между двумя маршрутизаторами Cisco с использованием IKEv1.
Головной маршрутизатор (R1):
! Фаза 1
crypto isakmp policy 1
encryption aes
hash md5
authentication pre-share
group 10
lifetime 86400
crypto isakmp key OurKey address 20.20.20.20
! Фаза 2
crypto ipsec transform-set TS esp-aes esp-md5-hmac
! ACL для интересного трафика
ip access-list extended VPN-TRAFFIC
permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.0.255
! Crypto map
crypto map MyMap 10 ipsec-isakmp
set peer 20.20.20.20
set transform-set TS
match address VPN-TRAFFIC
! Применение к интерфейсу
interface GigabitEthernet0/1
crypto map MyMapУдалённый маршрутизатор (R2):
! Фаза 1
crypto isakmp policy 1
encryption aes
hash md5
authentication pre-share
group 10
lifetime 86400
crypto isakmp key OurKey address 10.10.10.10
! Фаза 2
crypto ipsec transform-set TS esp-aes esp-md5-hmac
! ACL для интересного трафика
ip access-list extended VPN-TRAFFIC
permit ip 172.16.0.0 0.0.0.255 192.168.1.0 0.0.0.255
! Crypto map
crypto map MyMap 10 ipsec-isakmp
set peer 10.10.10.10
set transform-set TS
match address VPN-TRAFFIC
! Применение к интерфейсу
interface GigabitEthernet0/1
crypto map MyMapПосле настройки проверьте туннель командами show crypto isakmp sa и show crypto ipsec sa.
Расширенные возможности: DMVPN и FlexVPN
Для крупных сетей с множеством удалённых офисов Cisco предлагает более гибкие решения: DMVPN (Dynamic Multipoint VPN) и FlexVPN.
DMVPN позволяет создавать динамические туннели между любыми узлами (hub-and-spoke или spoke-to-spoke) без необходимости настройки каждого пира вручную. Использует mGRE (multipoint GRE) и NHRP (Next Hop Resolution Protocol) для автоматического обнаружения пиров.
FlexVPN — это более современная реализация на базе IKEv2, которая поддерживает различные топологии (site-to-site, remote access, hub-and-spoke). FlexVPN упрощает конфигурацию за счёт использования шаблонов и профилей.
Оба решения интегрируются с IPsec и могут быть использованы для построения масштабируемых VPN-сетей. Однако их настройка требует более глубоких знаний и выходит за рамки данной статьи.
Вопросы и ответы
В чём разница между IKEv1 и IKEv2 в контексте Cisco VPN?
IKEv1 — более старый протокол, который использует две фазы для установки туннеля. IKEv2 — более современный, с улучшенной производительностью, поддержкой мобильности (MOBIKE) и меньшим количеством сообщений. Cisco IOS XE поддерживает оба протокола, но IKEv2 рекомендуется для новых развёртываний.
Как настроить IPsec VPN на Cisco, если удалённый пир имеет динамический IP?
Используйте динамические crypto maps на головном маршрутизаторе. Вместо указания фиксированного IP-адреса пира, создайте динамическую crypto map с помощью команды crypto dynamic-map. Затем включите её в статическую crypto map. Туннель будет инициироваться только с удалённой стороны.
Почему IPsec VPN не работает через NAT?
NAT изменяет IP-адреса в заголовках пакетов, что нарушает проверку целостности IPsec. Для решения используйте NAT-Traversal (NAT-T), который инкапсулирует IPsec-пакеты в UDP. Также необходимо настроить исключение NAT для VPN-трафика с помощью ACL.
Какие команды используются для проверки состояния IPsec VPN на Cisco?
Основные команды:
show crypto isakmp sa— статус фазы 1.show crypto ipsec sa— статус фазы 2 и статистика пакетов.show crypto map— конфигурация crypto map.show crypto session remote detail— детальная информация о сессии.
Что такое transform-set в конфигурации IPsec Cisco?
Transform-set — это набор протоколов, определяющих, как будет защищаться трафик. Он включает алгоритм шифрования (например, esp-aes) и алгоритм аутентификации (например, esp-md5-hmac). Transform-set применяется в crypto map для фазы 2.
Как настроить исключение NAT для VPN-трафика на Cisco?
Создайте ACL, который запрещает NAT для пакетов, направляемых в удалённую VPN-сеть, и разрешает NAT для всего остального трафика. Затем используйте этот ACL в команде ip nat inside source list interface ... overload. Например:
access-list 100 deny ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255
access-list 100 permit ip 10.10.10.0 0.0.0.255 anyВ чём преимущество DMVPN перед обычным site-to-site IPsec VPN?
DMVPN позволяет автоматически устанавливать туннели между любыми узлами сети (spoke-to-spoke) без ручной настройки каждого пира. Это упрощает масштабирование и снижает административные затраты. DMVPN также поддерживает динамические IP-адреса и может использовать mGRE для мультиточковых соединений.