Целью этой стати является чуть более глубокое чем поверхностное знакомство читателя с относительно новым методом построения VPN-соединений – flex vpn и протоколом согласования ключей IKEv2 как его основы. Здесь я постараюсь рассмотреть преимущества IKEv2 и flex vpn и приведу примеры конфигурирования site-to-site VPN.
Сам я не являюсь крупным специалистом в данной теме, поэтому прошу извинить, если что-то осветил не совсем точно.
Совсем короткое введение.
Internet Protocol Security – это набор протоколов, состоящий из:
o Authentication Headers (AH) – аутентификация источника и контроль целостности пакета
o Encapsulating Security Payloads (ESP) – собственно, шифрование данных
o Security Associations (SA) – протоколы, обеспечивающие AH и ESP необходимой информацией (эдакий саппорт).
IKEv2, как и IKEv1, ISAKMP и пара других, менее известных, как раз и входят в группу SA протоколов. Задача IKEv2 – обеспечить аутентифицированное согласование ключей в рамках фреймворка ISAKMP. Опубликован IETF в уже довольно далеком 2005 году (IKEv1 – 1998г.), полное описание со всеми внесенными дополнениями доступно в RFC 5996 (сентябрь 2010).
Преимущества IKEv2
Упрощенный обмен сообщениями
Для начала защищенного обмена данными требуется всего 4 (в простейшем случае):
IKE_SA_INIT инициатора содержит криптоалгоритм, предлагаемый инициатором, материалы ключевого обмена инициатора (по Диффи-Хеллману) и метку времени инициатора (initiator nonce).
IKE_SA_INIT ответчика содержит криптоалгоритм, выбранный ответчиком, материалы ключевого обмена ответчика, метку времени ответчика и, опционально, запрос сертификата.
IKE_AUTH инициатора/ответчика – уже в зашифрованном виде и с защитой целостности передаются идентификаторы, сертификаты и другая необходимая информация.
Повышенная надежность
Все операции теперь требуют подтверждения от другой стороны VPN-соединения. Таким образом, осуществляется DeadPeerDetection.
Улучшенная защита от DDoS-атак
Преимущество, которое в современных реалиях многие эксперты называют ключевым.
За счет того, что все операции теперь требуют подтверждения от другой стороны VPN-соединения, на атакуемом устройстве нельзя создать большое количество полуоткрытых сессий.
При этом используются т.н. anti-clogging cookies.
(картинка из материалов Cisco Expo 2012)
Эти же cookies повышают эффективность использования вычислительных ресурсов VPN-агентов.
И, наконец, смарт-дефолты (Smart Defaults) – плюшка, позволяющая минимизировать количество строк конфига за счет использования параметров по умолчанию, которые, к тому же, можно настроить под себя.
Кроме всего вышеперечисленного, к настоящему времени появился ряд расширений IKEv2, среди которых Mobility and Multihoming Protocol (MOBIKE), Redirect Mechanism, Quick Crash Detection Method и некоторые другие.
Теперь непосредственно о flex vpn
FlexVPN is on old friend with new clothes. It still allows you to do all the cool things but in a better way.
Снова картинка с Cisco Expo 2012 — возможности flex vpn:
Нагородив огород из разнообразных решений VPN, разумное человечество опомнилось, собрало все полезное в одну кучу и, вооружившись подоспевшим IKEv2, слепило единую, монолитную фигуру, без старья и грязи, причесанную и умытую. В этом суть и актуальность flex vpn. Под монолитностью я подразумеваю единый набор команд CLI.
Но отсюда же недостаток: абсолютная несовместимость с IKEv1.
Так как ничего принципиально нового flex vpn не дает, нет никакой необходимости бросаться переделывать уже внедренные решения. К тому же, реализация еще сыровата: не всякая IOS с заявленной поддержкой ikev2 корректно выполнит все варианты flex vpn взаимодействий.
Однако Cisco настоятельно рекомендует во всех новых инсталляциях использовать именно flex vpn.
Список железа, поддерживающего flex vpn:
— ISR второго поколения (19xx,29xx,39xx) с sec-k9 или hsec-k9 лицензией;
— 7200;
— ASR 1000.
Официально, flex vpn поддерживается, начиная с IOS 15.2(2)T.
Далее приведу пример конфига простейшего варианта – site-to-site vpn с использованием smart defaults.
Site1:
crypto ikev2 keyring ikev2-kr
peer Site2
address 172.16.2.2
pre-shared-key local cisco123
pre-shared-key remote 123cisco
crypto ikev2 profile default
match identity remote address 172.16.2.2 255.255.255.255
authentication local pre-share
authentication remote pre-share
keyring local ikev2-kr
interface Tunnel0
ip address 10.10.0.1 255.255.255.252
tunnel source Ethernet0/1
tunnel destination 172.16.2.2
tunnel protection ipsec profile default
ip route 192.168.2.0 255.255.255.0 Tunnel0
Конфиг Site2 симметричен.
Как мы видим, encryption, transform-set, acl, Diffie-Hellman group были заданы дефолтом – мечта айтишника, не знакомого и не желающего знакомиться с криптографией. Оборудование договаривается само.
При этом, если на одном конце соединения настройки выставлены смарт дефолтом, а на другом – руками трудолюбивого администратора, это вовсе не означает, что крипто сессия не сможет установиться.
Вот в чем тут дело.
Smart Defaults – это целый набор возможных параметров, который «обходят» устройства, прежде чем окончательно договориться.
Предустановленные значения:
Шифрование: AES-CBC 256, 192, 128, 3DES
Хэш: SHA-512,384,256, SHA-1, MD5
Diffy-Hellman group: group 5, 2
crypto ikev2 policy: match any
Transform-set: AES-128, 3DES / SHA, MD5
crypto ipsec profile default: default transform set, ikev2 profile default
Остается только прописать профиль IKEv2 с именем default.
Взаимодействующие стороны договариваются по алгоритму обхода дерева. Т.е. устройство с дефолтными значениями сначала попробует применить AES-CBC 256 + SHA-512 + group 5, затем AES-CBC 256 + SHA-512 + group 2, затем AES-CBC 256 + SHA-384 + group 5… и так далее, пока не подберет набор, соответствующий соседу.
Просто и удобно, не так ли?
На сайте Cisco есть документ «FlexVPN and Internet Key Exchange Version 2 Configuration Guide, Cisco IOS
Release 15.2M&T» с конфигами на все случаи жизни.
Автор: valodik