Осваиваем VPN: настройка IPSec на Cisco (часть 2)

Изначально сеть Интернет использовалась узким кругом лиц, имеющих представление о политике безопасности. Соответственно явной необходимости в защите информации не было. Безопасность организовывалась на физическом уровне путем изоляции сети от посторонних лиц. Однако со временем Интернет становится публичной площадкой и постепенно возрастает потребность в создании протоколов, которые могли бы шифровать передаваемые данные.

В 1994 году Совет по архитектуре Интернет выпустил отчет «Безопасность архитектуры Интернет». Данный отчет посвящался в основном проблемам защиты от несанкционированного мониторинга, подмены пакетов и управлению потоками данных. Требовалась разработка некоторого стандарта, способного решить все эти проблемы. В результате были созданы стандарты протоколов, в число которых входил IPsec.

Источник статьи: http://netclo.ru/osvaivaem-vpn-nastroyka-ipsec-na-cisco-chast-2/

IPsec (сокр. IP Security) — группа протоколов, предназначенных для обеспечения защиты данных, передаваемых по IP-сети. Задача IPsec сводится к тому, чтобы выбрать конкретные алгоритмы и механизмы и настроить соответствующим образом устройства, участвующие в создании безопасного соединения. IPsec находит применение в организации VPN-соединений.

При создании защищенного канала участникам данного процесса необходимо произвести следующие действия:

  1. Аутентифицировать друг друга
  2. Сгенерировать и обменяться ключами
  3. Договориться с помощью каких протоколов шифровать данные
  4. Начать передавать данные в зашифрованный туннель

Сам IPsec, как уже было указано ранее, состоит из нескольких протоколов, каждый из которых отвечает за конкретную стадию установления IPsec туннеля. Первым из них является IKE.

IKE (Internet Key Exchange) — протокол обмена ключами.

IKE используется на первой стадии установления соединения. К его задачам относят: аутентификация VPN-точек, организация новых IPsec соединений (через создание SA-пар), управление текущими соединениями. SA представляет из себя набор параметров защищенного соединения. При настроенном соединении для каждого протокола создается одна SA-пара: первая для протокола AH, вторая для ESP (расскажу про них дальше). Также стоит отметить, что SA является однонаправленным. Таким образом, при связи двух компьютеров будет использоваться четыре SA. IKE работает в двух фазах, при этом первая фаза может работать как в основном, так и в агрессивном режиме. Рассмотрим две фазы IKE-соединения:

Первая фаза (основной режим):

  1. Обмен параметрами безопасности IKE-соединения (алгоритмы и хэш-функции)
  2. На каждом конце туннеля генерируются общий секретный ключ
  3. Используя алгоритм Деффи-Хеллмана, стороны обмениваются общим секретным ключом
  4. Аутентификация обеих концов туннеля

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

Агрессивный режим быстрей позволяет установить IKE-соединение, но при этом он менее безопасный, потому что стороны обмениваются информацией до того как безопасное соединение установлено.

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

ipsec

Во время второй фазы участники защищенного соединения по очереди предлагают друг другу варианты защищенного соединения и, если приходят к согласию, строят основной IPSec-туннель. Во второй фазы происходит согласование множества параметров:

  • Выбирается IPSec-протокол: AH (Authentication Header) и/или ESP (Encapsulation Security Payload)
  • Выбирается алгоритм для шифрования данных: DES, 3DES, AES
  • Выбирается алгоритм для аутентификации: SHA, MD5
  • Выбирается режим работы: туннельный или транспортный
  • Устанавливается время жизни IPSec-туннеля
  • Определяется трафик, который будет пускаться через VPN-туннель

AH (Authentication Header) — протокол IPSec, предназначенный для аутентификации. По сути это обычный опциональный заголовок, располагающийся между основным заголовком IP-пакета и полем данных. Предназначение AH — обеспечение защиты от атак, связанных с несанкционированным изменением данных в IP-пакете, в частности подмены исходного адреса сетевого уровня.

ah_protocol

ESP (Encapsulation Security Payload) — протокол IPSec, предназначенный для шифрования данных. Дословно переводится как «поле данных безопасной инкапсуляции». Также как и AH представляет из себя опциональный заголовок, вкладываемый в IP-пакет. Основной целью ESP является обеспечение конфиденциальности данных.

esp_protocol

Вы могли заметить, что ESP и AH имеют разные форматы в зависимости от типа используемого режима: туннельного и транспортного.

Туннельный режим применяется чаще всего для удаленных VPN-подключений. При таком режиме исходный IP-пакет полностью инкапсулируется в новый таким образом, что для наблюдателя со стороны будет видно только соединение между двумя VPN-точками. Реальные IP-адреса источника и получателя видны не будут, их можно получить только при деинкапсуляции на VPN-точке. Исходя из этого, можно считать, что туннельный режим является более защищенным.

Транспортный режим применяется, как правило, в локальной сети при защите соединения между хостами.  Этот режим обеспечивает защиту данных IP-пакета (TCP, UDP, протоколы верхних уровней). Грубо говоря, транспортный режим инкапсулирует все, что находится выше сетевого уровня эталонной модели OSI, при этом не затрагивая сам IP-заголовок. Естественно в таком случае данные IP-пакета: адрес источника и получателя будут видны извне.

Теперь перейдем к практике: настроим защищенный IPSec-туннель между двумя маршрутизаторами Cisco. Схема будет состоять из трех последовательно соединенных маршрутизаторов, при этом крайние R1 и R3 представляют из себя маршрутизаторы для локальных сетей, а центральный R2 имитирует Интернет. Прежде всего необходимо настроить связность между двумя локальными подсетями. Связность обеспечивается за счет GRE-туннеля. Про GRE-туннели я писал в предыдущей статье, также там есть конфигурация GRE-туннеля для маршрутизаторов Cisco. Чтобы понимать логику дальнейший действий настоятельно рекомендую ознакомиться с этим материалом.

Итак, основной GRE-туннель у нас «прокинут». Он не является защищенным и поэтому поверх него мы будем настраивать IPSec. Мы работали вот с такой схемой.

vpn

По легенде у нас было два офиса с подсетями LAN1 и LAN2. Необходимо обеспечить доступ компьютера из LAN1 к серверу, находящемуся в LAN2 (например, для доступа к файлам). Так вот, основной туннель мы создали. На сетевом уровне все работает прекрасно — пинг от компа до сервера есть. Но существует одна проблема: сервер содержит файлы, которые представляет коммерческую тайну для компании. Таким образом, необходимы механизмы шифрования трафика, а также аутентификация для того, чтобы никто кроме нас не мог получить доступ к этим файлам. И вот тут в бой вступает IPSec.

Конфигурация для Router A

Создаем политику безопасности и настраиваем ее

RouterA(config)#crypto isakmp policy 1

Указываем метод шифрования (симметричный блочный шифр)

RouterA(config)#encryption 3des

Указываем метод хеширования MD5

RouterA(config)#hash md5

Указываем метод аутентификации (с предварительным ключом)

RouterA(config)#authentication pre-share

Выходим из режима редактирования политики безопасности

RouterA(config)#exit

Ключ для аутентификации (должен совпадать для обеих точек)

RouterA(config)#crypto isakmp key PASS address 33.33.33.33

Применение набора преобразований

RouterA(config)#crypto ipsec transform-set LAN1 esp-3des esp-md5-hmac

Указываем режим работы IPSec (туннельный режим)

RouterA(cfg-crypto-trans)#mode tunnel

RouterA(cfg-crypto-trans)#exit

Создаем крипто-карту (детали туннелирования)

RouterA(config)#crypto map MAP1 10 ipsec-isakmp

Указываем Ip-адрес маршрутизатора, с которым устанавливаем VPN

RouterA(config-crypto-map)#set peer 33.33.33.33

Указываем набор политик безопасности

RouterA(config-crypto-map)#set transform-set LAN1

Шифровать данные, которые будут проходить через список доступа под номером 100

RouterA(config-crypto-map)#match address 100

Выходим из режима настройки крипто-карты

RouterA(config-crypto-map)#exit

GRE-трафик с хоста 11.11.11.11 на хост 33.33.33.33 подлежит шифрованию

RouterA(config)#access-list 100 permit gre host 11.11.11.11 host 33.33.33.33

Переходим в режим настройки внешнего интерфейса

RouterA(config)#interface fa 0/1

Привязка карты шифрования MAP1 к внешнему интерфейсу

RouterA(config-if)#crypto map MAP1

Аналогично настраивается Router B:

RouterB(config)#crypto isakmp policy 1

RouterB(config)#encryption 3des

RouterB(config)#hash md5

RouterB(config)#authentication pre-share

RouterB(config)#exit

RouterB(config)#crypto isakmp key PASS address 11.11.11.11

RouterB(config)#crypto ipsec transform-set LAN2 esp-3des esp-md5-hmac

RouterB(cfg-crypto-trans)#mode tunnel

RouterB(cfg-crypto-trans)#exit

RouterB(config)#crypto map MAP2 10 ipsec-isakmp

RouterB(config-crypto-map)#set peer 11.11.11.11

RouterB(config-crypto-map)#set transform-set LAN2

RouterB(config-crypto-map)#match address 100

RouterB(config-crypto-map)#exit

RouterB(config)#access-list 100 permit gre host 33.33.33.33 host 11.11.11.11

RouterB(config)#interface fa 0/1

RouterB(config-if)#crypto map MAP2

Источник статьи: http://netclo.ru/osvaivaem-vpn-nastroyka-ipsec-na-cisco-chast-2/