Поговорим о VPN-ах? Типы VPN соединений. Масштабирование VPN
Посетителей: 5417
| Просмотров: 7797 (сегодня 0)
Шрифт:
Надеюсь, данная статья станет справочным материалом, который может потребоваться при дизайне сети, либо при её апгрейде, либо для того, чтобы освежить в памяти принцип работы того или иного VPN-на. В начале статьи описаны основные моменты стека протоколов IPSec, так как использование данного стандарта далее будет весьма часто встречаться. В конце параграфа об IPSec были включены самые частые причины неработоспособности IPSec канала, а также основные шаги по их устранению.
Типы VPN соединений
Ниже систематизированы VPN-ы, которые доступны для настройки в корпоративной сети. Технологии распределены по уровню предоставляемых клиенту каналов по модели OSI (рис 1):
Как раз VPN-ы для корпоративных сетей будут рассмотрены в данной статье.
Схема VPN-ов относительно возможности пропуска мультикаста и работы протоколов маршрутизации (рис. 2):
Увеличить Дополнительно приводится структурированная схема VPN-ов (рис.3), которые могут предоставляться провайдером, но в данной статье подробно они не рассматриваются:
Итогом работы по систематизации VPN-ов и исследованию их масштабируемости послужила итоговая таблица, в которую заносилась общая информация по типу протокола VPN-а, его особенности, и самое важное, что необходимо сделать, если к существующим VPN-ам подключить еще один. В таблице представлены результаты настроек, исследование полученного формата пакета, настройка протокола маршрутизации (OSPF) через VPN-ы, а также рассмотрены вопросы масштабируемости протокола.
Таблица VPN
Тип VPN
Настройка HUB
Настройка Spoke
Настройка HUB при добавлении нового Spoke
Настройка Spoke при добавлении другого нового Spoke
Использование протоколов динамической маршрутизации OSPF, EIGRP
Да: isakmp, crypto-map: set peer, transform-set, crypto ACL
Да: Для обеспечения связности между Spoke-ми необходимо добавить маршруты нового Spoke-a в crypto ACL всех существующих Spoke-ах
Нет
Удобен в случае кол-ва Spoke <5-10. Для обеспечения связности между Spokе-ми через HUB требуется добавление в cryptoACLN сетей на Nspoke-ах Крайне немасштабируемый.
В конфигурации SVTI без IGP – крайне не масштабируемый. На каждый Spoke по SVTI. Nspoke – NVTI и своя подсеть. На Spoke требуется добавление маршрутов до удаленных Spoke-в. Пропускает multicast! По умолчанию на каждый SVTI только одна SA IPSec c traffic selector “IP any any.” Нет команды crypto ACL. В туннель заворачиваются те сети, которые определены через static route на SVTI.
Очень масштабируемый. Все spoke и hub находятся в одной сети! Dynamic VTI (DVTIs) также point-to-point интерфейс. В режиме point-to-multipoint соседство OSPF не устанавливается. Использование Unnumbered IP в качестве адреса DVTI обязательно
ААА – для авторизации клиентов Isakmp, isakmp policy, isakmp profile, ipsec profile, interface, Virtual-Template type tunnel DHCP для клиентов
Minimum IPsec client конфигурация, с указанием VPN-сервера, VPN группы, пользователя для ааа, Указание внутренних и внешний интерфейсов.
Нет
Нет
Да
Масштабируемый. Если ранее был настроен NAT/PAT, то перед внедрением EASY VPN должна быть эта конфигурация удалена. Есть особенности в настройке transform-set.
Vpdn-group, interface Virtual-Template, IP local pool, username/password для авториз-и, static route до сетей уд.офиса
service internal (для включения настроек pptp клиента), vpdn-group, interface Dialer, dialer-list, static route до сетей центр., удал. офиса
Да Static route для внутренних сетей за PPTP клиентом
Да Static route для новых внутренних сетей за новым PPTP клиентом
Да
Масштабируемый с ограничениями. Морально устаревший протокол, уязвимости в криптографии в протоколе авторизации MSCHAPv2. Чаще всего используется для создания удаленного доступа. Поддерживается множеством популярных версий ОС Windows. Исп только один протокол для шифрования -MPPE (RC4 со 128-битным ключом). Поддерживает мультикаст, т.к. PPP инкапсулируются в GRE.
IGP over PPTP
Vpdn-group, interface Virtual-Template, IP local pool, username/password для авториз-и, IGP protocol (router ospf process)
service internal (для включения настроек pptp клиента), vpdn-group, interface Dialer, dialer-list, IGP protocol (router ospf process)
Нет
Нет
Да
Масштабируемый с ограничениями. Поддерживает мультикаст, т.к. PPP инкапсулируются в GRE. Морально устаревший протокол -> альтернатива L2TP over IPSec
Не масштабируемый. Отлично подходит для разнесения «native» L2 vlan-а через IP сеть. Но, необходимо наличие резервного шлюза по умолчанию. Создавая xconnect на интерфейсе маршрутизатора мы должны удалить IP адрес с его интерфейса, тем самым удалив маршрут по умолчанию для всех устройств внутри этой сети.
aaa new-model, username для авторизации L2TP пира, VPDN-group, interface Virtual-Template, static route до сетей уд. офиса
username для авторизации L2TP HUBa, interface virtual-ppp, pseudowire class, static route до сетей центр., удал. офиса
Да: static route до внутренних сетей удаленного офиса
Да: static route до внутренних сетей удаленного офиса
Да
Масштабируемый. L2TPv3 дает большие преимущества, позволяя инкапсулировать не только PPP трафик, как L2TPv2, но и передавать метку VLANа и, а также инкапсулировать HDLC, Frame Relay.
Очень масштабируемый. Позволяет настраивать протоколы маршрутизации «по умолчанию», связь удаленных офисов осуществляется через L2TPv2/v3 HUB (в центральном офисе).
Установление IPSec, сообщения, режимы работы.
В процессе установления соединения через IPSec двум участникам защищенного канала необходимо согласовать значительный ряд параметров: по необходимости они должны аутентифицировать друг друга, сгенерировать и обменяться общими ключами (причем через недоверенную среду), установить какой трафик шифровать (от какого отправителя и к какому получателю), а также договориться с помощью каких протоколов шифровать, а с помощью каких — аутентифицировать. Служебной информации предполагается обменяться много, не правда ли? По этой причине IPSec и состоит из стека протоколов, обязанность которых обеспечить установление, работу и управление защищенным соединением. Процесс установления соединения состоит из 2 фаз: первая фаза устанавливается для того, чтобы обеспечить безопасный обмен ISAKMP сообщений во второй фазе. А ISAKMP (Internet Security Association and Key Management Protocol) служит для согласования политик безопасности (SA) между участниками VPN соединения, в который как раз и определяются с помощью какого протокола шифровать (AES, 3DES, DES), и с помощью чего аутентифицировать (HMAC SHA, MD5).
Режим работы IKE (Internet Key Exchange):
IKE Фаза 1
(опционально) аутентификация пиров
Согласование IKE SA между пирами
Main Mode (6 сообщений)
[First exchange] Начало согласований начинаются с отправки пиром друг другу предложений о поддерживаемом шифровании, протоколов аутентификации самих сообщений IKE, времени жизни ассоциаций безопасности. Пир выбирает предложенный SA и отправляет их предложившему пиру. Эти настройки определяются в ISAKMP Policy
[Second exchange] Генерация общих разделяемых ключей через обмен открытыми ключами по Diffie-Hellman. Дальнейший обмен сообщениями происходит уже зашифрованными сообщениями.
[Third exchange] Обмен сообщениями для аутентификации ISAKMP сессии (IKE_I_MM4)
После установки IKE SA (то есть установления 1-ой фазы), происходит согласование IPSEC в quick mode (QM). Сообщения режима Main Mode (MM): - IKE_READY New State = IKE_I_MM1 - IKE_I_MM1 New State = IKE_I_MM2 - IKE_I_MM2 New State = IKE_I_MM3 - IKE_I_MM3 New State = IKE_I_MM4 - IKE_I_MM4 New State = IKE_I_MM5 - IKE_I_MM5 New State = IKE_I_MM6 Aggressive Mode (3 сообщения) Инициатором в первое сообщение помещается предложение о шифровании, протоколе аутентификации самих сообщений IKE, времени жизни ключей, сообщения об обмене ключами Диффи-Хеллмана (DH), идентификатор сессии, её аутентификация. Команда для диагностики данной фазы на оборудовании Cisco **show crypto isakmp sa
IKE Фаза 1.5
Не используется в стандартном peer-to-peer VPN соединении, применяется при организации удаленных подключений. Имеет два режима: Xauth (User Authentication)
Дополнительная аутентификация пользователей в пределах IKE протокола. Для этого используется протокол Extended Authentication.
Mode config (Push Config)
Передается дополнительная информация клиенту о IP адресе, маске, DNS-серверах и т.д.
IKE Фаза 2
IPsec SAs/SPIs На этом этапе ISAKMP ответственен за обмен сессионными ключами и согласование политик безопасности (SA) для обеспечения конфиденциальности и целостности пользовательского трафика. В настройке (в Cisco IOS) за это отвечает transform-set. Quick mode QM делает все то, что и IPSec SAs/SPIs за меньшее количество служебных сообщений. По аналогии с Aggressive Mode. Рассмотрим пример обмена служебными сообщениями во время установления IPSec туннеля. Работающий вариант.
ISAKMP:(1007):Old State = IKE_I_MM6 New State = IKE_I_MM6 *Sep 3 08:59:27.539: ISAKMP:(1007):Input = IKE_MESG_INTERNAL, IKE_PROCESS_COMPLETE *Sep 3 08:59:27.543: ISAKMP:(1007):Old State = IKE_I_MM6 New State = IKE_P1_COMPLETE
ФАЗА 2
*Sep 3 08:59:27.559: ISAKMP:(1007):beginning Quick Mode exchange, M-ID of 2551719066 *Sep 3 08:59:27.563: ISAKMP:(1007):QM Initiator gets spi *Sep 3 08:59:27.575: ISAKMP:(1007): sending packet to 192.168.0.2 my_port 500 peer_port 500 (I) QM_IDLE *Sep 3 08:59:27.575: ISAKMP:(1007):Sending an IKE IPv4 Packet. *Sep 3 08:59:27.583: ISAKMP:(1007):Node 2551719066, Input = IKE_MESG_INTERNAL, IKE_INIT_QM *Sep 3 08:59:27.587: ISAKMP:(1007):Old State = IKE_QM_READY New State = IKE_QM_I_QM1
*Sep 3 08:59:27.803: ISAKMP:(1007):Checking IPSec proposal 1 *Sep 3 08:59:27.803: ISAKMP: transform 1, ESP_AES *Sep 3 08:59:27.807: ISAKMP: attributes in transform: *Sep 3 08:59:27.807: ISAKMP: encaps is 1 (Tunnel) *Sep 3 08:59:27.811: ISAKMP: SA life type in seconds *Sep 3 08:59:27.815: ISAKMP: SA life duration (basic) of 3600 *Sep 3 08:59:27.815: ISAKMP: SA life type in kilobytes *Sep 3 08:59:27.819: ISAKMP: SA life duration (VPI) of 0x0 0x46 0x50 0x0 *Sep 3 08:59:27.827: ISAKMP: authenticator is HMAC-SHA *Sep 3 08:59:27.827: ISAKMP: key length is 128 *Sep 3 08:59:27.831: ISAKMP:(1007):atts are acceptable. *Sep 3 08:59:27.855: ISAKMP:(1007):Old State = IKE_QM_I_QM1 New State = IKE_QM_IPSEC_INSTALL_AWAIT ISAKMP:(1007):Old State = IKE_QM_IPSEC_INSTALL_AWAIT New State = IKE_QM_PHASE2_COMPLETE
А теперь я предлагаю рассмотреть пару примеров неработоспособности IPSec.
Case1
“Old State = IKE_I_MM1 New State = IKE_I_MM1” Причина №1 Не договорились по IKE proposal (предложенным IKE) в Фазе 1. На одной стороне указан 3des, на другом aes.
Error while processing SA request: Failed to initialize SA *Sep 3 08:36:38.239: ISAKMP: Error while processing KMI message 0, error 2. *Sep 3 08:36:38.287: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE... *Sep 3 08:40:38.307: ISAKMP (0): incrementing error counter on sa, attempt 3 of 5: retransmit phase 1 *Sep 3 08:40:38.307: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE *Sep 3 08:37:08.339: ISAKMP:(0):deleting SA reason "Death by retransmission P1" state (I) MM_NO_STATE (peer 192.168.0.2) *Sep 3 08:41:08.359: ISAKMP:(0):Input = IKE_MESG_INTERNAL, IKE_PHASE1_DEL *Sep 3 08:41:08.359: ISAKMP:(0):Old State = IKE_I_MM1 New State = IKE_DEST_SA
На маршрутизаторе отображается следующее состояние:
R7#sh crypto isakmp sa IPv4 Crypto ISAKMP SA dst src state conn-id status 192.168.0.2 192.168.0.1 MM_NO_STATE 0 ACTIVE
Причина №2 ACL на физическом интерфейсе блокируется трафик ISAKMP.
Case2
Если transform set на одном роутере один
R7#sh run | i transform crypto ipsec transform-set TRANSFORM esp-aes esp-md5-hmac
…а на другом роутере другой
R10#sh run | i transform crypto ipsec transform-set TRANSFORM esp-aes esp-sha-hmac
, то не сойдется SA IPSEC (не будет увеличиваться количество зашифрованных и расшифрованных пакетов
*Sep 3 08:56:08.551: ISAKMP:(1006): IPSec policy invalidated proposal with error 256 *Sep 3 08:56:08.559: ISAKMP:(1006): phase 2 SA policy not acceptable! (local 192.168.0.1 remote 192.168.0.2) *Sep 3 08:56:08.563: ISAKMP: set new node -1456368678 to QM_IDLE *Sep 3 08:56:08.567: ISAKMP:(1006):Sending NOTIFY PROPOSAL_NOT_CHOSEN protocol 3 spi 1785687224, message ID = 2838598618 *Sep 3 08:56:08.575: ISAKMP:(1006): sending packet to 192.168.0.2 my_port 500 peer_port 500 (I) QM_IDLE *Sep 3 08:56:08.579: ISAKMP:(1006):Sending an IKE IPv4 Packet. *Sep 3 08:56:08.583: ISAKMP:(1006):purging node -1456368678 *Sep 3 08:56:08.587: ISAKMP:(1006):deleting node 1350414148 error TRUE reason "QM rejected" *Sep 3 08:56:08.591: ISAKMP:(1006):Node 1350414148, Input = IKE_MESG_FROM_PEER, IKE_QM_EXCH *Sep 3 08:56:08.595: ISAKMP:(1006):Old State = IKE_QM_READY New State = IKE_QM_READY
Case3
Если неправильно указали preshared key на IPSec пирах:
R7#sh run | i isakmp key crypto isakmp key cisco123 address 172.16.1.2
R10#sh run | i isakmp key crypto isakmp key cisco address 0.0.0.0 0.0.0.0
Тогда будет ошибка retransmitting phase 1 MM_KEY_EXCH
*Sep 3 09:14:30.659: ISAKMP:(1010): retransmitting phase 1 MM_KEY_EXCH... *Sep 3 09:14:30.663: ISAKMP (1010): incrementing error counter on sa, attempt 3 of 5: retransmit phase 1 *Sep 3 09:14:30.663: ISAKMP:(1010): retransmitting phase 1 MM_KEY_EXCH *Sep 3 09:14:30.663: ISAKMP:(1010): sending packet to 192.168.0.2 my_port 500 peer_port 500 (I) MM_KEY_EXCH *Sep 3 09:14:30.663: ISAKMP:(1010):Sending an IKE IPv4 Packet. *Sep 3 09:14:30.711: ISAKMP (1010): received packet from 192.168.0.2 dport 500 sport 500 Global (I) MM_KEY_EXCH *Sep 3 09:14:30.715: ISAKMP:(1010): phase 1 packet is a duplicate of a previous packet. *Sep 3 09:14:50.883: ISAKMP:(1011): retransmitting due to retransmit phase 1 *Sep 3 09:14:51.383: ISAKMP:(1011): retransmitting phase 1 MM_KEY_EXCH... *Sep 3 09:14:51.387: ISAKMP:(1011):peer does not do paranoid keepalives. *Sep 3 09:14:51.387: ISAKMP:(1011):deleting SA reason "Death by retransmission P1" state ® MM_KEY_EXCH (peer 192.168.0.2) *Sep 3 09:14:51.395: ISAKMP:(1011):Input = IKE_MESG_INTERNAL, IKE_PHASE1_DEL