ipsec

Dreamcatcher.ru A:link,A:active,A:visited { color:#005C9E; text-decoration:none}; BODY { SCROLLBAR-FACE-COLOR: "white"; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: "0f2f2f"; SCROLLBAR-3DLIGHT-COLOR: "0f2f2f"; SCROLLBAR-ARROW-COLOR: #ffffff; SCROLLBAR-TRACK-COLOR: #e0e0e0; SCROLLBAR-DARKSHADOW-COLOR: #000000 } NetBSD документация: NetBSD IPsec Перевод: Сгибнев Михаил Эта страница находится в постоянной разработке, все Ваши замечания ipsec предложения принимаются здесь. IPsec FAQ Начало IPsec = AH + ESP + IPcomp + IKE Транспортный режим ipsec туннельный режим Управление правилами IPsec Конфигурирование поддержки IPsec в ядре Пример конфигурации: host-to-host encryption Пример конфигурации: host-to-host authentication Пример конфигурации: host-to-host encryption+authentication Пример конфигурации: IPsec VPN Пример конфигурации: Leaf-node tunnel Конфигурирование ключей AH/ESP с использованием IKE Установка ключей IPsec вручную ipsec настройка правил начальной загрузки Взаимодействие с ipfilter Частые ошибки ipsec методы отладки Известные проблемы Совместимость ipsec соответствие стандарту Совместимость API с другими стеками IPsec Книги ipsec другие дополнительные материалы Другие ссылки FreeBSD IPsec mini-HOWTO , включая взаимодействие с Windows 2000 KAME project KAME's NetBSD Implementation Note KAME's Implementation Note некоторые разделы могут быть не применимы к NetBSD implementaion differences between KAME platforms Exportability of NetBSD crypto code Начало Код IPsec (IP security protocol) был добавлен в дистрибутив NetBSD в июне 1999 года ipsec включен в состав NetBSD 1.5 ipsec более поздних. IPsec предоставляет гарантию подлинности/конфиденциальности при обмене информацией между двумя узлами IPsec. IPsec поддерживает IPv6 ipsec IPv4. Обратите внимание, что использование IPsec требует переконфигурации ядра, так как поддержка IPsec не включена в ядро GENERIC. Окружение пользователя включает поддержку IPsec там, где это возможно, ipsec поэтому не требует переконфигурирования, даже если Вы переключаетесь между ядром, поддерживающим IPsec ipsec не поддерживающим IPsec. Если у Вас симтема младше 1.5, то ситуация следующая: Если Вы используете NetBSD 1.4.x, Вы можете посетить проект KAME. В разделе посвященном IPsec Вы можете найти патч для IPv6/IPsec одним tar.gz файлом. Этот патч подходит для IPv4 ipsec IPv6. Если ВЫ используете NetBSD-current выпущенную до ноября 1999, то необходимо использовать специальный файл конфигурации ядра (GENERIC.v6) для поддержки IPsec. Если ВЫ используете NetBSD-current выпущенную после 1999, то файл конфигурации GENERIC содержит в себе закомментированые строки, отвечающие за поддержку IPsec. До июня 2000 код, отвечающий за IPsec, поставлялся отдельно. Обновите Ваше дерево каталогов, как указано здесь. Если Вы используете NetBSD-current, выпущенную после июня 2000 года, то необходимый код уже интегрирован в дерево системы. Внимание: мы иногда используем термин "IP security" в достаточно широком смысле, включающем в себя системы сетевой защиты, фильтрации пакетов ipsec т.д. IPsec = AH + ESP + IPcomp + IKE IPsec состоит из нескольких отдельных протоколов, перечисленных ниже: Authentication Header (AH): обеспечивает гарантию подлинности пакетов, прикрепляя крипто-сумму к пакетам. Если Вы получаете пакет с АХ, ipsec операция проверки контрольной суммы была успешна, то Вы можете быть уверены по крайней мере, в двух вещах, при условии, что удаленный хост ipsec Вы используете одинаковый ключ при шифровании ipsec этот ключ никому неизвестен: Пакет был сгенерирован именно удаленным хостом, ipsec не имитирован Пакет не изменялся в процессе доставки В отличие от других протоколов, АХ шифрует весь пакет, от заголовка IP до конца пакета. Encapsulating Security Payload (ESP): обеспечивает гарантию конфиденциальности пакетов, шифруя пакеты с использованием алгоритмов кодирования. Если Вы получаете пакет с ESP ipsec успешно декодируете его, то можете быть уверены в том, что пакет небыл перехвачен при доставке, при условии, что удаленный хост ipsec Вы используете одинаковый ключ при шифровании ipsec этот ключ никому неизвестен. IP payload compression (IPcomp): ESP обеспечивает кодирование пакетов, однако кодирование имеет тенденцию отрицательно сказываться на компрессии (такой, как ppp-компрессии). IPcomp предоставляет возможность сжать пакет перед использованием ESP (Конечно, Вы можете использовать ipsec один IPcomp). Internet Key Exchange (IKE): Как отмечено выше, AH ipsec ESP требуют обмена секретными ключами между удаленными хостами. Для сохранения связи между удаленными хостами мы должны обговорить метод обмена ключами. IKE делает это возможным. AH, ESP ipsec IPcomp включены в код ядра. IKE представлен демоном, функционирующем в окружении пользователя. Ядро ipsec окружение пользователя будут взаимодействовать между собой используя таблицу управления ключами. IKE - опциональная функция, Вы можете конфигурировать секретные ключи для AH/ESP вручную, однако поймите, что Вы не можете использовать один ipsec тот же ключ все время, так как при длительном использовании ключа увеличивается риск компрометации передаваемой информации. Внимание: безопасность IPsec зависит от безопасности секретных ключей. Если секретные ключи скомпрометированы, IPsec больше не предоставляет гарантии безопасности передаваемой информации. Имеются два RFC, определяющих работу IPSec - старый RFC1825 ipsec новый RFC2401. userland programs IKE daemon ^ | AF_INET{,6} socket ^ | PF_KEY socket ========= | | =========================== | | ======== Kernel/user boundary | v | v transport layer, TCP/UDP key management table ^ | ^ | key information | | | | | v | v IP input/output logic AH/ESP/IPcomp logic ^ | | v Network drivers (ethernet) Транспортный режим ipsec туннельный режим AH, ESP ipsec IPcomp имеют два режима работы: транспортный ipsec туннельный. Транспортный режим шифрует трафик между двумя удаленными хостами, ipsec туннельный режим обеспечивает инкапсуляцию пакетов в новый пакет IPv4/v6. Туннельный режим разработан для использования VPN шлюзами. [[transport mode]] my host ======== peer's host transport mode packets: [IP: me->peer] ESP payload encrypted [[tunnel mode]] (a) (b) (c) my host ---- my VPN gateway ======== peer's VPN gateway ---- peer's host tunnel mode packets on (a): [IP: me->peer] payload packets on (b): [IP: mygw->peergw] ESP [IP: me->peer] payload encrypted packets on (c): [IP: me->peer] payload Управление правилами IPsec Хотя ядро знает как защитить пакет, оно не знает какой пакет защищать. Как раз "правила" IPSec ipsec указывают ядру, какие пакеты должны быть защищены. Правило IPSec может быть реализовано per-packet или per-socket способами. Per-packet: конфигурируется в ядре, так же как ipsec пакетный фильтр. Описывается как "Шифровать все пакеты, уходящие к 10.1.1.0/24". Это наиболее подходит IPsec маршрутизатору. Per-socket: конфигурируется с использованием утилиты setsockopt(2) для каждого конкретного сокета. Выглядит как "Шифровать все исходящие пакеты с этого сокета". Наиболее подходит для запуска серверных частей IPsec-aware программ. Правило IPSec определяет IPsec протокол (AH, ESP или IPcomp), применяемый к пакету. Вы можете таким образом сконфигурировать ядро, чтобы использовать любую комбинацию AH, ESP ipsec IPcomp. Вы даже можете применять один протокол несколько раз к одному пакету, например несколько операций ESP (польза этого сомнительна ipsec может иметь только академический интерес). Конфигурирование поддержки IPsec в ядре Обратитесь к tracking NetBSD-current для получения более детальной информации. Раскомментируйте следующие строки в Вашем файле конфигурации ядра: options IPSEC options IPSEC_ESP Соберите новое ядро Установите ядро ipsec перезагрузитесь Окружение пользователя по умолчанию поддерживает IPSec ipsec не требует пересборки. Дополнительно Вы можете установить racoon и/или isakmpd. Пример конфигурации: host-to-host encryption Если Вы хотите запустить host-to-host соединение (транспортный режим) с секретными ключами, сконфигурированными вручную, то следущий вариант вам подойдет. Для ручного конфигурирования ключей воспользуемся утилитой setkey(8). #! /bin/sh # # packet will look like this: IPv4 ESP payload # the node is on 10.1.1.1, peer is on 20.1.1.1 setkey -c </etc/racoon/psk.txt Bspamspamspam ^D A# chmod 600 /etc/racoon/psk.txt B# cat >/etc/racoon/psk.txt Aspamspamspam ^D B# chmod 600 /etc/racoon/psk.txt Запустите /usr/pkg/sbin/racoon. Если Вы желаете видеть отладочную информацию, воспользуйтесь следующими аргументами: # /usr/pkg/sbin/racoon -f /etc/racoon/racoon.conf -d 0xffffffff Попробуйте обменяться пакетами между А ipsec В. Вы должны увидеть несколько сообщений от racoon ipsec ключи должны установиться. A# ping -n B (with some delay, you will start seeing replies) ^C A# setkey -D Вы должны будете увидеть ключи, установленные racoon. racoon договорится о ключах, основываясь на заданных правилах. Изменяя описания правил мы можем легко менят конфигурацию для использования в других случаях. Следующий пример конфигурирует ключи для такой ситуации: Это почтовый сервер. Необходимо использование транспортного режима AH, для каждого входящего соединения POP(TCP port 110) на машине А. В - это клиент, который контактирует с А. Конфигурация правил на A указывает не использовать AH для локального трафика(обратите внимание, что racoon не может обменяться ключами сам с собой). Порядок следования правил очень важен, если его изменить, конфигурация не будет работать. A# setkey -c spdadd A[110] A tcp -P out none; spdadd A A[110] tcp -P in none; spdadd A[110] 0.0.0.0/0 tcp -P out ipsec ah/transport//require; spdadd 0.0.0.0/0 A[110] tcp -P in ipsec ah/transport//require; ^D B# setkey -c spdadd B A[110] tcp -P out ipsec ah/transport//require; spdadd A[110] B tcp -P in ipsec ah/transport//require; ^D Все остальное конфигурируется также, как ipsec в примере выше. Установка ключей IPsec вручную ipsec настройка правил начальной загрузки rc.conf(5) имеет специальный раздел, отведенный IPSec. ipsec=YES запустит следующую команду во время начальной загрузки перед любой сетевой активностью: /sbin/setkey -f /etc/ipsec.conf Например, Вы можете осуществлять безопасное монтирование /usr по NFS. /etc/ipsec.conf должен содержать допустимые параметры для setkey(8), по образу ipsec подобию примеров, приведенных ранее, только без setkey -c <| | Network drivers (ethernet) outbound processing: userland programs IKE daemon | AF_INET{,6} socket ^ | PF_KEY socket =========== | =========================== | | ======== Kernel/user boundary v | v transport layer, TCP/UDP key management table | ^ | key information | | | v | v +---->IP input/output logic AH/ESP/IPcomp logic | | (incl. IPsec tunnel encapsulation) tunnel | devices | | ipfilter rules | | +---------+ v Network drivers (ethernet) Частые ошибки ipsec методы отладки Случается, люди путают следующие три понятия. Только понимание вопроса позволит Вам писать работоспособные конфигурации. IPsec с ключами, установленными вручную.В NetBSD для генерации ключей используется setkey(8). Ключи остаются постоянными до повторной ручной генераци. IPsec с IKE, ключи заранее известны.В NetBSD используется racoon. Аутентификация устройств происходит по заранее определенным ключам. IPsec динамически вносит ключи в ядро ipsec автоматически меняет их через какое-то время. IPsec с IKE, с использованием сертификатов.В NetBSD используется racoon. Аутентификация происходит по файлам сертификатов.racoon предоставляет IPSec динамически сгенерированные ключи ключи, которые устанавливаются в ядро ipsec периодически изменяются. Конфигурировать IPsec не просто! Есть очень много параметров, которые должны контролироваться ipsec отладка работы должна быть проведена со всей серьезностью. Почитайте документы/книги/запросы на комментарии или наймите консультантов перед тем, как конфигурировать IPSec. Используйте tcpdump во время отладки сети. Даже с учетом того, что трафик шифрован, Вы можете получить информацию о движении пакетов. netstat(1) - Ваш друг. Выполните netstat -sn ipsec проверьте счетчики IPsec пакетов. Если имеются ошибки с запуском racoon, используйте режим отладки для вывода наиболее полной информации. Конфигурация Вашей NetBSD машины ipsec удаленной машины действительно должна быть одинаковой. Пакет должен быть сгенерирован тем протоколом ipsec алгоритмом кодирования, который ожидает удаленная сторона. Если это не так,то такие ошибки очень трудно отслеживаются. В IPsec ошибки кодирования/идентификации будут отмечены как отброшенные пакеты, так что все пакеты, отброшенные по причине неправильной конфигурации не вызовут сообщения об ошибке. На медленных машинах возможна ситуация, когда не произойдет обмена ключами между racoon ipsec демоном IKE, так как время обмена ключами регулируется утилитой net.key.larval_lifetime sysctl MIB, по умолчанию равной 30 сек. Если машины действительно медленные, то попробуйте повысить это значение. Известные проблемы Туннельный режим AH не работает из-за ограничений реализации механизма правил в ядре IPSec. Не используйте этот режим. racoon находится в постоянной разработке ipsec поэтому может иметь свои ошибки/ограничения. Смотрите pkg/DESCR для получения более подробной информации. IPsec ipsec ipf плохо уживаются вместе. IPSec правила не проверяют ничего, кроме соответствия протоколам tcp/udp. Используйте протокол "any" (только при соответствии адресу), если хотите сделать сеть более безопасной Проблема существует для любых пакетных фильтров. Совместимость ipsec соответствие стандарту Реализация KAME IPsec (включенная в дерево NetBSD) соответствует последнему набору IPsec стандартов. KAME's NetBSD Implementation Note включает список где подтверждается функциональная совместимость. Обратите нимание на то, что возможно изменение функциональности. Также может оказаться что NetBSD ipsec удаленное устройство будут работать только в определенной конфигурации. Совместимость API с другими стеками IPsec Если Вы пишете приложения, взаимодействующие с IPsec, то Вас может заинтересовать вопрос совместимости API различных платформ. Мы имеем RFC2367 PF_KEY API для того, чтобы управлять базой ключей в ядре. Основная часть этого API доступна в других реализациях стека IPsec для UNIX-like систем ipsec с некоторой степенью может быть совместима (например, OpenBSD также использует PF_KEY API). Нет никакого документа, который определяет API управления правилами IPsec, поэтому не ожидается никакой совместимости со стеками IPsec non-KAME. Нет никакого стандарта для синтаксиса файла конфигурации. Вы будете должны конвертировать его, если Вы хотите копировать конфигурацию с non-NetBSD IPsec устройства. С тех пор как NetBSD ipsec FreeBSD совместно используют IPsec codebase от одного производителя (KAME) появилась совместимость API. Обратите внимание, что, однако, есть различия в NetBSD коде IPsec ipsec FreeBSD коде IPsec, так как используются разные версии KAME. NetBSD 1.5 включает стек KAME IPsec начала июня 2000. FreeBSD 4.0-RELEASE включает стек KAME IPsec начала ноября 1999. Нет никакого различия в в руководстве ipsec key configuration, kernel behavior on AH/ESP operation, или ipsec_set_policy(3) API. Есть различия в поведении PF_KEY socket, libipsec API for PF_KEY ipsec еще нескольких других. Вы можете поймать проблемы в том случае, если будете писать приложения работающие с PF_KEY socket непосредственно (такие как IKE daemon, racoon или утилита управления ключами типа setkey(8)). В течении развития от NetBSD 1.4 к NetBSD 1.5 код KAME IPsec импортировался три раза. Импорты содержат обратно-несовместимые изменения в API. Удостоверьтесь, что используете последний код. Начиная с NetBSD 1.5 предоставляется бинарная совместимость или проверка версии API. Книги ipsec другие дополнительные материалы Есть буквально тонны доступных книг. Search Barnes & Noble for books on "IPsec" (NOTE: мы не рекламируем этот магазин) разделы позитивный психология медицинский перевод купля производственный комплекс штендеры антенна акустомагнитные рукавичка доставка кбе бюгельные зубной протез информационный валаам бюджетирование листогибы архитектурный визуализация газонокосилка dolmar билет мхат кулер комп скребковый конвейер морозильный витрина fargo ваза 2113 луковичный цвет ножной пластырь nokia 6021 купить международный конкурс дебютант детский мир wow 8800 gold edition поставка тройник морозильный витрина промывка инжектор северский доломит сбор д/полоскания горло зубной боль антенна tognana фарфор индивидуальный банковский ячейка купить хлебопечку профессиональный психолог система видеоконференция угловой тестомесители установка hotbird 8800 gold edition брусок алмазный штангенциркуль кадровый владимир длинный нард укрепление откос автоматический резка итальянский вина спецобувь заказ 1000 холодильник короткий нард скачать бесплатный оформление свадеб флюоресцентный краска маркировочная краска вышитый герб заказать флаг деловой костюм доставка 5004.13 (крышка) слюдопластовые втулка архыз ipsec листогибы конкурентный анализ li-da плата видеозахвата покрышка бриджстоун пионовая беседка резка сканер штрихкодов кс-4361а трехфазный электросчетчик ipsec