IPsec в ядре Linux

IPsec в ядре Linux

У меня есть несколько проблем (вопросов), связанных с реализацией IPsec в ядре Linux и его пользовательским интерфейсом.

  1. Самый большой вопрос, какой из проектов является официальным для реализации Linux Kernel IPsec? Насколько я понял, реализация является ответвлением проекта Kame, но друг сказал, что это неправда. Где их официальный сайт и репозиторий?
  2. Где в исходном коде документации ядра я могу найти соответствующие заметки?
  3. Какой пользовательский интерфейс чаще всего используется? ip-tools или пакет iproute2? У этих двух одинаковый подход или у одного из них большие накладные расходы?
  4. Из того, что я видел, руководства по транспортному режиму IPsec iproute2 относятся к утилите "setkey" для загрузки файла конфигурации. Действительно ли "setkey" используется для пакета iproute2, или меня ввели в заблуждение? "setkey" приклеен к "racoon" из ip-tools, или это общее приложение для загрузки конфигурации? Что на самом деле делает "setkey" (я совсем запутался в этом)?

решение1

  1. Стек IPsec, интегрированный в ядро ​​Linux с версии 2.6 (NETKEY), изначально был основан на стеке KAME (по крайней мере, в отношении API). Исходный код является частьюрепозиторий ядра, где основные компоненты находятся в net/xfrmпапке, включая реализацию интерфейса конфигурации Netlink/XFRM. Альтернатива истандартизированный(но несколько расширенная) реализация интерфейса PF_KEYv2 находится в net/keyпапке.
  2. Документации не так уж много. Но проверьте Documentation/networkingпапку.
  3. Если вы выполняете ручную настройку SA и политик IPsec (ручное ключирование), я бы рекомендовалiproute2. Он использует более мощный интерфейс Netlink/XFRM, и пакет устанавливается большинством дистрибутивов по умолчанию. Но обычно вы используете автоматическое ключирование, предоставляемое пользовательским пространствомАЙКdaemon, такой как strongSwan, Open/libreswan или racoon (ipsec-tools), таким образом, вам не придется вручную устанавливать SA и политики, и вы получите эфемерные ключи шифрования/целостности, установленные через Diffie-Hellman во время IKE. Также возможно регулярное автоматическое согласование новых ключей, которое называется сменой ключей.
  4. setkeyпредоставляетсяipsec-инструментыпакет для ручного ввода, не имеет отношения кiproute2пакет. Сiproute2вы бы использовали ip xfrmкоманду для ручной настройки SA и политик. Обе команды напрямую взаимодействуют с SAD и SPD (см.RFC4301) в ядре для ручного управления IPsec SA и политиками. setkey, как racoonи другие инструменты на основе BSD, использует интерфейс PF_KEYv2, поэтому он менее мощный, чем ip xfrmкоманда. Например, расширенные порядковые номера или метки не могут быть настроены с помощью PF_KEYv2 в Linux.

Связанный контент