setkey

Манипуляции с базой данных SA/SP IPsec вручную

Синтаксис:

setkey [-knrv] имя_файла 
setkey [-v] [-c]
setkey [-krv] [-f] имя_файла
setkey [-aklPrv] -D
setkey [-Pvp] -F
setkey [-H] -x
setkey [-?V]

Опции:

-a
Показать блокированные записи SAD (Security Association Database; база данных ассоциаций безопасности). Запись SAD считается блокированной после истечения срока действия, но при сохранении возможности ссылаться на нее в SPD (Security Policy Database; база данных политик безопасности).
-c
Указать операцию из стандартного потока ввода. Список допустимых операция приводится в разделе "Операции" ниже.
-D
Выгрузить записи SAD:
-F
Очистить записи SAD. При использовании с опцией -P также очистить записи SPD.
-f имя_файла
Файл с выполняемыми операциями. Для получения дополнительной информации см. раздел "Операции" ниже.
-h
Выгрузить записи в шестнадцатеричном формате.
-l
Использовать бесконечный цикл с кратким выводом при задании -D.
-P
Выгрузить (если указана опция -D) или очистить (если указана опция -F) записи SPD.
-v
Выводить расширенную информацию. Отображать сообщения, переданные в сокет PF_KEY (включая сообщения, посланные другими процессами).
-x
Использовать бесконечный цикл и выгружать все сообщения, переданные в сокет PF_KEY.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита setkey добавляет, обновляет, выгружает или очищает записи базы данных ассоциаций безопасности (SAD) и базы данных политик безопасности (SPD) в стеке.

Операции

Следующие операции могут быть переданы через стандартный поток ввода (с помощью опции -c) или при помощи файла (с помощью опции -f имя_файла).

Строки, которые начинаются со знака решетки (#), обрабатываются как строки комментариев. Для операций определен следующий синтаксис:

add src dst протокол spi [расширения] алгоритм... ;
Добавить запись в базу SAD. Операция может завершиться неуспешно, например, если длина ключа не соответствует указанному алгоритму.
delete src dst протокол spi ;
Удалить запись SAD.
dump [протокол] ;
Выгрузить все записи SAD, соответствующие этому протоколу (действует аналогично опции командной строки -D).
flush [протокол] ;
Очистить все записи SAD, соответствующие этому протоколу (действует аналогично опции командной строки -F).
get src dst протокол spi ;
Отобразить запись SAD.
spdadd исходный_диапазон целевой_диапазон верхний_предел политика ;
Добавить запись SPD.
spddelete исходный_диапазон целевой_диапазон верхний_предел -P направление ;
Удалить запись SPD.
spddump ;
Выгрузить все записи SPD (действует аналогично опции командной строки -DP).
spdflush ;
Очистить все записи SPD (действует аналогично опции командной строки -FP).

Мета-аргументы для операций

Для операций используются следующие мета-аргументы:

алгоритм
Указывает алгоритм шифрования, аутентификации или сжатия.

Note: Список допустимых значений для aalgo, ealgo и calgo приводится в разделе "Алгоритмы для протокола" ниже.

-A aalgo ключ
Задает алгоритм аутентификации (aalgo) для протоколов ah и ah-old.
-E ealgo ключ
Задает алгоритм шифрования (ealgo) для протоколов esp или esp-old.
-E ealgo ключ -A aalgo ключ
Задает алгоритм шифрования (ealgo) для протоколов esp или esp-old, а также алгоритм аутентификации при полезной нагрузке (aalgo) для esp.
-C calgo [-R]
Указать алгоритм сжатия для IPComp (IP Payload Compression Protocol; протокол сжатия полезной IP нагрузки).

Если определена опция -R, значение в поле spi используется в качестве поля IPComp CPI (индекс сжатия) в исходящих пакетах. Значение в этом поле должно быть меньше 0x10000.

Если опция -R не указана, стек использует IPComp CPI (индекс сжатия) из поля IPComp CPI пакета, а поле spi игнорируется.
ключ
Обрамленная двойными кавычками строка символов, состоящая из последовательности шестнадцатеричных цифр с префиксом 0x.
dst
src
Задают приемник и источник защищенной коммуникации в виде адреса IPv4/v6. Адрес указывается в числовом формате, поскольку setkey не использует преобразование имени хоста в адрес для этих аргументов.
целевой_диапазон
исходный_диапазон
Диапазоны для безопасного обмена данными, указанные в виде адреса IPv4/v6 или диапазона адресов IPv4/v6. Они могут быть заданы вместе со спецификациями портов TCP/UDP. Корректные формы:
address address/длина_префикса address[порт] address/длина_префикса[порт]

Значения аргументов длина_префикса и порт должны являться десятичными числами; значения аргументов src и dst должны быть в числовом формате. Квадратные скобки вокруг аргумента порт обязательны и являются частью синтаксиса.
расширения
Корректные опции:
-f nocyclic-seq
Запретить номера в циклической последовательности.
-f опция_заполнения
Задает содержимое esp дополнения, где аргумент опция_заполнения может принимать следующие значения:
  • random-pad – набор произвольных значений.
  • seq-pad – набор последовательных чисел по возрастанию, начиная с 1.
  • zero-pad – заполнение нулями.
-lh время
Указать жесткий срок существования.
-ls время
Указать мягкий срок существования.
-m режим
Режим протокола безопасности, который требуется использовать:
  • any (по умолчанию) – использовать любой доступный режим протокола безопасности.
  • transport – обеспечить защиту однорангового взаимодействия между узлами.
  • tunnel – включить операции инкапсуляции IP в IP. Разработано для защищенных шлюзов таких, например, как VPN.
-r размер
Размер окна в байтах для предотвращения повторной обработки. Значение аргумента размер является десятичным 32-разрядным числом. Если для аргумента размер значение не указано, либо указано нулевое значение, проверка повторной обработки не выполняется.
-u идентификатор
Указать идентификатор для привязки политики к SA. Значение аргумента идентификатор должно являться десятичным числом в диапазоне от 1 до 32767.
политика
Форма: Подробное описание перечисленных выше аргументов приведено на странице описания протоколов IPsec в разделе "Настройка политики".
протокол
Корректные опции:
spi
Security Parameter Index (SPI; индекс безопасности) для SAD и SPD. Десятичное или шестнадцатеричное число с префиксом 0x. Значения SPI от 0 до 255 зарезервированы для будущего использования.
upperspec
Указать протокол верхнего уровня, который требуется использовать. Возможные варианты:

Note: В настоящее время аргумент upperspec не используется при переадресации.

Алгоритмы для протокола

В следующих таблицах представлены алгоритмы для использования с каждым протоколом. Параметры протокол и алгоритм являются практически ортогональными.

Алгоритмы аутентификации для aalgo включают:

Алгоритм Длина ключа (биты) Комментарий:
hmac-md5 128 ah: RFC 2403,
ah-old: RFC 2085
hmac-sha1 160 ah: RFC 2404,
ah-old: 128-bit ICV (без документов)
hmac-sha256 256 ah: 96-bit ICV (draft-ietf-ipsec-ciph-sha-256-00),
ah-old: 128-bit ICV (без документов)
hmac-sha384 384 ah: 96-bit ICV (без документов),
ah-old: 128-bit ICV (без документов)
hmac-sha512 512 ah: 96-bit ICV (без документов),
ah-old: 128-bit ICV (без документов)
hmac-ripemd160 160 ah: 96-bit ICV (RFC 2857),
ah-old: 128-bit ICV (без документов)

Алгоритмы шифрования для ealgo включают:

Алгоритм Длина ключа (биты) Комментарий
des-cbc 64 esp-old: RFC 1829,
esp: RFC 2405
3des-cbc 192 RFC 2451
blowfish-cbc 40–448 RFC 2451
cast128-cbc 40–128 RFC 2451
des-32iv 64 esp-old: RFC 1829
des-deriv 64 ipsec-ciph-des-derived-01 (срок действия истек)
3des-deriv 192 Без документов
rijndael-cbc 128/192/256 draft-ietf-ipsec-ciph-aes-cbc-00

Алгоритмы сжатия для calgo включают:

Алгоритм Комментарий
deflate RFC 2394

Примеры:

add 3ffe:501:4819::1 3ffe:501:481d::1 esp 123457 -E des-cbc "ESP SA!!" ; add 3ffe:501:4819::1 3ffe:501:481d::1 ah 123456 -A hmac-sha1 "AH SA configuration!" ; add 10.0.11.41 10.0.11.33 esp 0x10001 -E des-cbc "ESP with" -A hmac-md5 "authentication!!" ; get 3ffe:501:4819::1 3ffe:501:481d::1 ah 123456 ; flush ; dump esp ; spdadd 10.0.11.41/32[21] 10.0.11.33/32[any] any -P out ipsec esp/tunnel/192.168.0.1-192.168.1.2/require ;

Возвращаемое значение:

0
Успешно.
>0
Возникла ошибка.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

/etc/inetd.conf, sysctl

IPsec




Предыдущий раздел: Утилиты