Пользователь
0,0
рейтинг
28 ноября 2012 в 15:03

Разработка → Коротко и ясно: Flex VPN из песочницы

Целью этой стати является чуть более глубокое чем поверхностное знакомство читателя с относительно новым методом построения 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.
image
(картинка из материалов 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:
image

Нагородив огород из разнообразных решений 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.

image

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
карма
18,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (6)

  • –1
    Сам я не являюсь крупным специалистом в данной теме, поэтому прошу извинить, если что-то осветил не совсем точно


    Если вы не специалист, то как вы можете судить о преимуществах и слабостях технологии? Есть ли ситуации, когда эта технология приведет к проблемам?
    • +1
      Конечно, практического опыта внедрения данной технологии у меня нет. Мое суждение о технологии основывается на анализе документации, публикаций и общении с системными инженерами Cisco.
      Проблемы две:
      1) несовместимость c IKEv1. При желании внедрить технологию придется переконфигурить много оборудования;
      2) пока еще не полная готовность Cisco IOS. Как я написал в посте, не всякая IOS с заявленной поддержкой ikev2 корректно выполнит все варианты flex vpn взаимодействий. Т.е. что-то, например site-to-site, работать будет, а что-то, например spoke-to-spoke — нет. Без каких-либо объективных причин.
      Чтобы не соврать, не буду приводить конкретные примеры с версией IOS и что конкретно не работало, но это реальная ситуация.
  • 0
    FlexVPN не совместим с Cisco VPN Client. Только AnyConnect.
    Ну и в общем — Cisco далее не собирается поддерживать VPN Client, переходя полностью именно на AnyConnect.
  • 0
    А FlexVPN поддерживается сейчас только оборудованием cisco? Это их проприетарная разработка?
    • 0
      Juniper тоже умеет IKEv2, но врядли там есть все навороты из FlexVPN.
  • 0
    Ну несколько комментариев.
    По введению. По тому, как написано, складывается впечатление, что ESP и AH друг друга дополняют, т.е AH аутентифицирует, а ESP шифрует. На деле все не так и это два самостоятельных протокола. И как правило используется либо ESP либо AH (что врядли и кому это надо?). Можно, конечно вместе, но это совсем редкость.
    Далее. SA — это не протоколы, а массивы данных. Т.е., IKE отработал, определил какие алгоритмы шифрования, и хеширования будут использоваться и сгенерировал сами ключи для шифрования и хеширования. Так вот, весь этот массив данных, описывающий протоколы и содержащий действующую в настоящий момент ключевую информацию — называется SA. SA — часть control-plane. В самих же зашифрованных пакетах содержится SPI — security parameter index. Определенный SPI соответствует определенному SA. Когда роутер видит пакет с SPI1 он знает, что его нужно обработать с помощью SA1.
    Задача IKEv2 – обеспечить аутентифицированное согласование ключей в рамках фреймворка ISAKMP

    Задача IKEv2 — установить защищенное соединение, т.е. построить SA.
    В остальном, на мой взгляд достаточно поверхностно и отрывочно, но для общего ознакомления может быть полезно.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.