Полная версия

OSS Group


Авторизация

  

Навигация

Текущее местоположение:  OSS Group :: Wiki :: Admin :: Порядок работы протоколов IPsec
Главное меню:   Главная   Документация   Разработка   Контакты   Поиск   Карта сайта   Wiki   Блоги
Разделы Wiki:   Admin  APT  Sandbox

Порядок работы протоколов IPsec

IPsec - набор протоколов для обеспечения защищённой передачи данных в сетях IP. Является частью протоколов IPv6 и доступен как расширение для IPv4. Работает на 3ем (сетевом) уровне модели OSI ISO.

В IPsec входят протоколы, обспечивающие защиту пакетов (AH, ESP) и протоколы обмена ключами (IKE).

AH (Authentication Header) обеспечивает аутентификацию пакетов, т.е. обеспечивает подлинность отправителя и получателя пакета, а также неизменность его содержимого в процессе передачи. Данные пакетов передаются в открытом виде.
ESP (Encapsulating Security Payload) обеспечивает защиту содержимого пакетов и, опционально, аутентификацию отправителя и получателя.

Существует два режима работы IPsec - транспортный (transport) и туннельный (tunnel). Транспортный режим предназначен для защиты соединений между хостами, в нём в пакет IPsec помещаются только данные оригинального пакета, без оригинального заголовка IP-пакета. Для туннельного режима в пакет IPsec инкапсулируется заголовок оригинального пакета, что даёт возможность создавать VPN, объединяющие сети.

На хосте могут одновременно работать несколько разных соединений IPsec, как в транспортном, так и в туннельном режимах. Соединения IPsec - SA (Security Associations), - однонаправленные, для двунаправленной передачи данных требуется два SA. В рамках SA определяется используемый ключ, алгоритм, тип соединения.

Информация об использоваенном SA передаётся в пакете IPsec - в виде индекса SPI (Security Parameters Index) - 32битного идентификатора. Для храния информации (и ключей) для каждого из SA на хосте существует таблица SAD (Security Association Database). SPI используется как индекс этой таблицы.

Для определения, какие из передаваемых / получаемых пакетов должны инкапсулироваться в IPsec, имеется таблица SPD (Security Policy Database). Записи SAD содержат для транспортного режима адреса отправителя и получателя пакета, для транспортного - дополнительно ещё и сети инкапсулируемых пакетов.

Для работы IPsec требуется заполнения данными таблиц SPD и SAD.
Таблица SPD, определяющая настройки каналов IPsec, заполняется вручную. Возможно указание в ней записи для обработки соединений "по-умолчанию".

Заполнение таблицы SAD возможно в ручном и в автоматическом режиме. В первом случае в таблицу вносятся записи для кажого из SA, с выбираемыми вручную ключами. Данный вариант настройки каналов IPsec поддерживается в etcnet.

Возможно также автоматического заполнение таблицы SAD с использованием протокола обмена ключами IKE (Internet Key Exchange). Имеется несколько режимов обмена ключами, main более защищённый, aggressive более простой и требует меньшего числа передаваемых пакетов для установления соедиения. В рамках IKE используются протокол управления ключами ISAKMP (Internet Security Association Key Management Protocol) и протокол определения ключей Oakley Key Determination Protocol.
Для работы ISAKMP требуется обмен данными между хостами IPsec через udp/500 или tcp/500.
Для начальной защиты/подписи пакетов ISAKMP возможно использовать или общий на обоих узлах ключ, или сертификаты x509.

Если согласно SPD для пакета требуется SA, но в базе SAD соответствующей записи нет, то автоматически запускается процедура обмена ключами по протоколу IKE и создаётся запись в SAD.

В рамках AH в контрольную сумму передаваемого пакета включаются IP отправителя и получателя. Соответственно, через NAT пакеты AH проходить не могут (вернее, сами пакеты пройдут, но будут отброшены получателем из-за несоответствия конрольной суммы).

Для работы через NAT существует механизм NAT Traversal (NAT-T), при котором пакеты IPsec инкапсулируются в пакеты UDP. Используемый порт - как правило, udp/4500.

Для 2го (канального) уровня возможно использовать L2TP или PPTP, пропуская трафик ipip или gre через IPsec.

При использовании IPsec никаких дополнительных виртуальных сетевых интерфейсов в системе не создаётся. Для работы IPsec для IPv4 в ядрах 2.6.x требуется наличие и загрузка модулей ah4, esp4, ipcomp, af_key, xfrm4_mode_transport, xfrm4_mode_tunnel. Также требуется установка параметров ядра net.ipv4.ip_forward = 1, net.ipv4.conf.default.disable_policy = 0 и net.ipv4.conf.default.disable_xfrm = 0.

Для дополнительных возможностей по фильтрации пакетов AH и ESP средствами iptables существуют модули ipt_ah, xt_esp и xt_policy.

При получении сетевым интерфейсом пакета, относящегося к IPsec (протоколы ipv6-crypt (esp, 50) и ipv6-auth (ah, 51)), обрабатываются на уровне ядра. Согласно SPI и данным из SAD пакет IPsec разбирается и получившийся в итоге пакет IP возвращается в очередь.

Порядок прохождения пакетов через цепочки Netfilter показан на рисунке Netfilter-packet-flow. Этап декодирования/кодирования пакетов IPsec - на Protocol/Application Layer, действия xfrm decode, xfrm encode. В цепочки nat/* пакеты ESP/AH не попадают. При политиках по-умолчанию ACCEPT для цепочек */PREROUTING, */PORTROUTING, mangle/*, raw/*, пакеты ESP и AH (протоколы ipv6-crypt (50) и ipv6-auth (51)) проходят их без необходимости внесения каких-либо дополнительных правил. Как минимум для 2.6.18-ovz-smp при политике DROP в цепочке filter/INPUT при отсутствии специальных разрешений пакеты ESP и AH всё равно обрабатываются xfrm decode.

Декодированные пакеты с оригинальными заголовками снова поступают в Netfilter и проходят его. На этом этапе возможно фильтровать трафик по протоколам, портам и т.п.

Для работы IKE требуется разрешение получения/передачи пакетов udp/isakmp (udp/500) между хостами IPsec. Для работы IPsec через NAT (в режиме NAT-T) требуется разрешение получения/передачи пакетов udp/4500 между хостами IPsec.

При туннельном режиме пакеты, предназначающиеся для удалённой сети, должны уходить через интерфейс, на котором настроен канал IPsec. При этом, поскольку инкапсуляция этих пакетов происходит после цепочки nat/POSTROUTING, они не должны обрабатываться правилами SNAT.
Т.е., при наличии правил SNAT для исходящего трафика, для уходящих в туннель IPsec пакетов требуется делать исключение.

Таблицы SPD (и для статических тунелей SAD) могут просматриваться и изменять утилитами ip (ip xfrm) или setkey (из пакета ipsec-tools). Динамическое создание записей в SAD требует демона, обеспечивающего обмен ключами по протоколу IKE (racoon из ipsec-tools, ipsecd из strongswan, т.п).

Ссылки


Дата создания: 2010-10-24 21:50:42 (Фетисов Н. А. (naf))
Последнее изменение: 2010-10-24 21:50:42 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 1


  Не показывать комментарии


Wiki::Admin   Карта раздела  Оглавление  Изменения за сутки  Изменения за неделю  Изменения за месяц



Быстрый поиск по Wiki:
И ИЛИ

На эту страницу ссылаются:

©2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы