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