antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 23 Июнь , 2012

В прошлой статье мы рассмотрели с Вами как работает протокол (если говорить более строго, то стек протоколов IPsec) и как настроить защищенное соединение между двумя офисами. Однако, в жизни часто возникает задача, которую можно трактовать примерно одним из следующих способов:

— у фирмы есть пользователи, которые по долгу службы работают дома (временно или постоянно – неважно). Соответственно, этим людям необходимо предоставить доступ в локальную сеть предприятия. Понятно, что в данной ситуации Site-to-Site канал не построишь, поскольку у пользователя скорее всего нет необходимого оборудования, да и накладно это.

— у фирмы есть головной офис и приличное количество удаленных, которые необходимо завязать в одну локальную сеть. Вполне вероятно такая ситуация, что в удаленных офисах нет админа, который способен настроить классический Site-to-Site туннель.

Для решения вышеупомянутых задач Cisco предлагает технологию, которая называется Cisco Easy VPN. Давайте разберемся, что же это такое и с чем его едят 🙂

Cisco Easy VPN это виртуальная частная сеть (VPN) на базе IPsec,  которая базируется на архитектуре централизованного управления VPN-каналами из единой точки. Состоит из трех компонентов: Easy VPN сервер, Easy VPN клиент и Easy VPN Remote. Сервер и Remote представляют из себя клиент-серверную архитектуру (при этом Remote – «клиенсткий» маршрутизатор или ASA5505), в которой запрос на построение защищенного туннеля исходит со стороны Remote. Easy VPN Remote может работать в трех различных режимах:

— клиентский режим. В этом случае на Remote-устройстве вся локальная сеть удаленного офиса подвергается NAT/PAT-трансляции в адрес, который выдан сервером из заданного пула

— режим сетевого расширения. В этом случае, все сетевые устройства, которые находятся за устройством Remote получают IP-адреса и являются полноценными участниками IP-роутинга. В этом случае PAT не используется, что позволяет конечным рабочим станциям работать друг с другом на прямую.

— режим сетевого расширения «плюс». Аналогичен режиму простого сетевого расширения, но с дополнением в виде возможности запроса IP-адреса в процессе установления защищенного канала связи и его автоматической установки на доступный Loopback-интерфейс. Ассоциации безопасности IPsec для этого IP-адреса автоматически создаются Easy VPN Remote’ом. Этот IP чаще всего используется для устранения неисправностей (ping, telnet, ssh и т.д.).

С идеологией, думаю все понятно, так давайте копнем глубже и узнаем как же оно все работает.

Собственно сама технология Easy VPN появилась за счет расширения Cisco’ой ISAKMP-функционала (вернее сказать, непосредственного его IKE-реализации) чтобы позволить VPN-серверу продвигать («пушить») конфигурационную информацию в сторону клиента. В ISAKMP была введена специальная дополнительная фаза, которая получила название «Фаза 1.5». Эта фаза осуществляет специальный ISAKMP конфигурационный режим (Config Mode). Этот режим позволяет инициатору и ответчику (то бишь клиенту и серверу)  провести серию транзакций перед тем, как ассоциации безопасности ISAKMP SA будут установлены. Чаще всего, инициатор запрашивает определенные параметры у сервера (IP-адрес, DNS-сервера, списки доступа для split-tunnel), а сервер в свою очередь их высылает.

 

Прим.: в дополнение хочу сказать, что сервер может выслать некоторые параметры и без запроса со стороны клиента. Также обратите внимание, что конфигурационный режим ISAKMP происходит до установления IPsec SA.

 

Конфигурационный режим ISAKMP поддерживает расширенную аутентификацию (Xauth) после того момента, как ISAKMP SA установлены. Этот механизм аутентификации позволяет дополнительно проверять подлинность (identity) пользователя, используя определенные протоколы. Например, сервер может попросить пользователя ввести имя и пароль и затем сравнивать их с локальной базой данных. Такая система довольно масштабируема и позволяет применять простую аутентификацию по паролю, одноразовые пароли и др.

Easy VPN требует от Вас предоставления дополнительной информации для полуторной фазы. Делается это созданием и настройкой Easy VPN группы, используя команду crypto isakmp client configuration group <GROUPNAME>. Когда клиент пытается установить соединение, он должен передать на сервер имя настроенной группы. Это имя может быть предоставлено серверу двумя методами:

— используя преднастроенные IKE ключи для аутентификации. В этом случае клиент обязан инициировать агрессивный режим установления туннеля и передать имя группы как его ID в пакете инициализации. Easy VPN не поддерживает обычный режим с аутентификацией через предустановленные ключи. Этот ключ настраивается в режиме конфигурации группы командой key <KEYSTRING>

— используя цифровые подписи и обычный режим IKE (Main Mode). В этом случае имя группы берется из OU-поля сертификата клиента. Этот вариант предпочтителен.

После того, как ISAKMP SA были установлены клиент может запросить дополнительную информацию от сервера используя конфигурационный режим ISAKMP. Ниже показаны наиболее важные и часто используемые параметры:

accessrestrict <INTERFACE>: принимать Easy VPN соединения только на определенном интерфейсе

dns <IP> и domain <DOMAINNAME>: список DNS-серверов и само доменное имя, которые будут переданы клиенту

splitdns <DOMAINNAME>: инструктирует VPN-клиент о том, что список полученных DNS-серверов следует использовать только для тех имен, которые заканчиваются на <DOMAIN-NAME>. Все остальные доменные имена должны резолвиться через дефолтные DNS-сервера.

pool <POOL>: определяет имя адресного пула из команды ip local pool. Этот пул используется для назначения IP-адресов клиентам

acl <ACLNAME>: split-tunnel список доступа для Easy VPN клиента. Обращаю особое внимание на эту опцию, поскольку она имеет ключевое значение! Сети, которые клиентом будут заворачиваться внутрь туннеля, должны быть описаны в этом списке доступа строчкой permit. Если split-tunnel не настроен, то весь трафик от клиента попадет в туннель (соответственного интернета у пользователей скорее всего не будет)

savepassword: позволяет удаленному клиенту сохранить пароль для Xauth

includelocallan: эта функция используется тогда, когда Вы не используете split-tunnel. Эта команда разрешает удаленного ПК получить доступ на локальные LAN-интерфейсы минуя VPN туннель

После того, как Вы завершите настройку Easy VPN группы, необходимо настроить остальные IPsec настройки – ISAKMP политики, наборы IPsec.

 

Прим.: Easy VPN клиент (тот, который программный) требует 2ой группы ДХ для 3DES и 5ой для AES 256, а IOS-маршрутизаторы по умолчанию используют ДХ группу №1 – не забудьте изменить ее в настройке ISAKMP политик

 

В дополнение ко всему необходимо создать динамическую крипто-карту и разрешить принимать соединения от любого удаленного пира. Делается это примерно так:

crypto map CRMAP_EZVPN client configuration address respond

crypto map CRMAP_EZPVN isakmp authorization list ATHRZ_EZVPN

Первая строка говорит маршрутизатору отвечать на сообщения инициализации конфигурационного режима ISAKMP (конкретно – на сообщения запроса IP-адреса). Вторая строка требует от маршрутизатора разрешения авторизации конфигурационного режима ISAKMP через AAA-список.

Нам доступна и еще одна команда:

crypto map CRMAP_EZPVN client authentication list AUTH_EZPVN,

которая включает Xauth для крипто-карты. AAA-список AUTH_EZVPN должен указывать на источник, через который производить аутентификацию (local, radius и пр.). Если названную выше команду не ввести, то Xauth не будет использоваться и вся удаленная сессия будет аутентифицирована только с помощью ISAKMP параметров (преднастроенные ключи или цифровые сертификаты).

И последним вопросом является следующий: как маршрутизатору следует передавать трафик на удаленную сторону. С того момента, как IP-адреса клиентам были назначены, в таблицы роутинга может не быть информации о том, как достичь их. Если у маршрутизатора есть маршрут по-умолчанию, который смотрит на интерфейс на котором установлена Easy VPN сессия, то все хорошо. А если же нет? А если нет, то маршрутизатору надо тем или иным способом узнать адрес следующего хопа. Эта проблема может быть решена с помощью технологии, которая известна как «Обратная инжекция маршрута» (Reverse Route Injection, RRI). Для каждого нового IP-адреса, который выделяется в течение конфигурационного режима ISAKMP, маршрутизатор устанавливает статический /32 маршрут в сторону клиента. Эти маршруты позже могут быть редистрибутированы, скажем в OSPF/EIGRP, чтобы позволить другим хостам общаться с удаленной сетью.  Чтобы включить RRI, используйте команду reverse-route внутри динамической крипто-карты.

На этом этапе внимательные читатели могли озадачиться примерно следующим вопросом: предположим, что мы создали несколько Easy VPN групп с разными политиками (например, с различными split-tunnel). Как же сделать так, чтобы тот или иной пользователь мог присоединиться только в ту или иную группу (чтобы менеджер не мог попасть в группу руководства)? Для решения этой проблемы у Cisco есть решение, которое называется «Блокировка группы» (Group Lock). Когда эта возможность включена на группу, все Xauth имена обязаны быть следующего формата:

username@group, username\group, username/group или username%group,

где group – имя существующей Easy VPN группы. Сервер извлекает имя группы из Xauth-имени и сравнивает с настроенными именами групп. Если имена не совпадают, то соединение дропается.

 

Прим.: IOS Group Lock работает только с аутентификацией по преднастроенным ключам

 

После понимания того, как работает Easy VPN сервер, поговорим об Easy VPN Remote.

Начиная с версии 12.2Т Cisco внедрила поддержку функционала Easy VPN клиента в свои маршрутизаторы. Эта возможность позволяет использовать маршрутизаторы в качестве аппаратного клиента, который устанавливает соединение с сервером.

Точно также, как и программный клиент, Easy VPN Remote поддерживает двух-шаговую аутентификацию. Первый шаг – аутентификация по группе, в течение которой обе стороны устанавливают ISAKMP SA. На этом шаге можно использовать преднастроенные ключи или цифровые сертификаты. Второй шаг – Xauth.

Для настройки Easy VPN Remote, Вам необходимо пройти через следующие шаги:

  1. настроить Easy VPN профиль командой crypto ipsec client ezvpn <GROUP-NAME>. После этой команды, Вы попадаете в соответствующий режим конфигурации для ввода дополнительных опций. Эти опции бывают как обязательными так и нет. Рассмотрим некоторые из них:

—         mode {client|network-extension|network plus}. Режим по-умолчанию: client

—         connect {auto|manual|acl} задает режим tunnel triger. Режим manual требует того, чтобы туннель был активирован вручную через CLI или SDM/CCP

—         group <GROUP_NAME> определяет имя группы, используемое для аутентификации клиента на сервере

—         ip address определяет IP-адрес сервера

—         username <NAME_XAUTH> password <PASSWORD> определяет параметры 1.5-ой фазы IPsec. Возможна только в случае, если на сервере настроена команда save-password.

—         localaddress определяет IP-адрес, с которого будет устанавливаться Easy VPN сессии

 

После того, как мы узнали, как работает данная технология, решим следующую задачу:

— маршрутизатор R2 выступает в качестве Easy VPN сервер

— на компьютере в локальной сети R4 установлен Cisco VPN Client

— для аутентификации и авторизации пользователей будем использовать локальную базу данных

— шифровать необходимо только тот трафик, который идет внутрь сети 172.16.2.0/24

— для клиентов выделить пул адресов 172.30.100.0/24

 

aaa new-model
aaa authentication login AUTH_EZVPN local
aaa authorization network ATHRZ_EZVPN local
!
username A.GUSEV@GROUP_EZPVN-HOME password A.GUSEV
username FLANE@GROUP_EZPVN-USERS password FLANE
!
crypto isakmp policy 10
 authentication pre-share
 encr 3des
 hash md5
 group 2
!
ip local pool POOL_EZVPN-USERS 172.30.100.1 172.30.100.99
ip local pool POOL_EZVPN-HOME 172.30.100.100 172.30.100.199
ip access-list extended ACL_SPLIT-EZVPN
 permit ip 172.30.100.0 0.0.0.255 172.16.2.0 0.0.0.255
crypto isakmp client configuration group GROUP_EZPVN-USERS
 key USERS
 pool POOL_EZVPN-USERS
 acl ACL_SPLIT-EZVPN
 group-lock
crypto isakmp client configuration group GROUP_EZPVN-HOME
 key HOME
 pool POOL_EZVPN-HOME
 acl ACL_SPLIT-EZVPN
 group-lock
!
crypto ipsec transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac
!
crypto dynamic-map CRMAPDYN_EZVPN 10
 set transform-set ESP-3DES-MD5
 reverse-route
crypto map CRMAP_VPN isakmp authorization list ATHRZ_EZVPN
crypto map CRMAP_VPN client authentication list AUTH_EZVPN
crypto map CRMAP_VPN client configuration address respond
crypto map CRMAP_VPN 10 ipsec-isakmp dynamic CRMAPDYN_EZVPN
interface Serial 1/0
 crypto map CRMAP_VPN

 

На клиентском компьютере запускаем программу Cisco VPN Client и вводим параметры сервера

После этого запускаем созданное выше соединение и в окошке вводим логин/пароль для 1.5-ой фазы

После успешного установления соединения с Easy VPN сервером на клиенте можно посмотреть статистику (сколько пакетов зашифровано, расшифровано, с каким сервером установлено IPsec-соединение, параметры шифрования)

а также информацию о сетях, пакеты на которые заворачиваются в туннель

Проверим таблицу маршрутизации

На VPN сервере можно использовать команду show crypto session

R2#show crypto session
Crypto session current status
 
Interface: Serial1/0
Username: a.gusev@group_ezpvn-home
Group: GROUP_EZPVN-HOME
Assigned address: 172.30.100.101
Session status: UP-ACTIVE
Peer: 10.1.45.4 port 1090
  IKE SA: local 10.250.250.2/4500 remote 10.1.45.4/1090 Active
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 172.30.100.101
        Active SAs: 2, origin: dynamic crypto map
 

Метки: ,
Опубликовано: Безопасность cisco , Маршрутизаторы и коммутаторы

 

5 комментариев “Cisco Easy VPN”

comment rss - Trackback

  1. Ugara:

    Приходилось настраивать easyvpn на asa, настраивал по инструкции cisco.com, всё работало, но тут подробно раскрыто, что и зачем. СПАСИБО!!!
    ЗЫ: жду новых статей=)

  2. P@ve1:

    Если не секрет — а почему олдскульный crypto map, раз уж конфигурация для рутера приведена?
    Ведь более современный вариант на базе virtual-template намного удобней и понятней в плане маршрутизации, QoS, ACL, multi-vrf и т.д.

  3. fantas1st0:

    VTI будут позже. Как static, так и dynamic
    Статьи пишутся примерно в том порядке, в котором я повторяю материал CCIE

  4. Mekuya:

    Всем доброго времени суток! Ребят, а по каким портам работает cisco easy vpn? Дело в том что фаерволом все порты поназакрывал и открывать не хотелось бы… из-за этого немогу клиентский доступ настроить, не подключается (( помогите.

» Оставить комментарий

Вы должны войти чтобы прокомментировать.