Для перемещения по дереву справки используйте строки заголовка.

Справка по NSG Linux 2.1.6
Дерево команд: tunnel.ipsec.secrets.rsa.NUM.file

Что это такое?

Это путь/имя файла закрытого ключа RSA для данной стороны, либо само тело ключа.

Зачем это нужно?

Для взаимной аутентификации сторон с помощью ключей RSA и сертификатов X.509.

Как это настроить?

Вариант 1. Указать путь и имя файла, содержащего закрытый ключ RSA. Ключ должен быть в стандарте PKCS#1 и может быть записан в формате PEM или DER (при этом суффикс имени файла не имеет значения, анализируется содержимое файла по существу). Если файл защищён паролем, то пароль следует ввести в поле secret.

Если указывается относительный путь, то он отсчитывается от директории /etc/ipsec.d/private/. Если ключи хранятся в ином месте, то необходимо указать абсолютный путь, например, /var/mounts/usb1/myPoopyKey.pem.

Ключ можно поместить на устройство любым из доступных способов. Данный вариант требует доступа для пользователя root; исключением является перенос ключей и сертификатов на носителе USB или MicroSD, для которого можно обойтись встроенным минимумом файловых операций.

ВНИМАНИЕ! Файл приватного ключа должен быть доступен только для владельца, т.е. пользователя root. После генерации или переноса ключа необходимо удостовериться в этом и при необходимости выставить права должным образом:
# cd /etc/ipsec.d/private
# ls -l
-rw-r--r-- 1 root root 5 янв 14 19:04 myPoopyPrivateKey.pem
    <-- неправильно
# chmod 600 myPoopyPrivateKey.pem
# ls -l
-rw------- 1 root root 5 янв 14 19:04 myPoopyPrivateKey.pem
    <-- правильно

В противном случае работа IPsec аварийно завершается.

Вариант 2. Вставить непосредственно тело ключа в формате PKCS#1 PEM. Это блок текста, обрамлённый строками

-----BEGIN RSA PRIVATE KEY-----
..............................................
-----END RSA PRIVATE KEY-----

включая сами эти строки. Всё, что находится вне этих строк, не имеет значения и не воспринимается. (В частности, иногда ключ и сертификат могут храниться в одном файле.) Для работы IPsec ключ экспортируется во временный файл в директории /tmp.

ПРИМЕЧАНИЕ. Закрытые ключи в стандарте PKCS#8 в данной версии не поддерживаются. (Визуальное отличие — в обрамляющих строках отсутствует "RSA".) В случае необходимости пользователь должен выполнить преобразование самостоятельно, например:
openssl rsa -in mypoopy.pkcs8 -out mypoopykey.pkcs1 -traditional

Чтобы использовать только ключи RSA без сертификатов, необходимо оставить данный параметр пустым, а тело ключа вставить в параметр secret.

ВНИМАНИЕ! Закрытый ключ во всех случаях хранится только на устройстве, которому он принадлежит, и не должен передаваться никаким партнёрам ни при каких обстоятельствах. Если ключи и сертификаты генерируются сторонним удостоверяющим центром, то переносить ключ на устройство необходимо только безопасными способами.

Что делать, если это не работает?

  1. Проверить по syslog, что при старте IPSec закрытый ключ загрузился без ошибок, из нужного места и нужного файла. См. сообщения вида Loading private key...
  2. Проверить, что файл ключа, загруженный вручную, имеет надлежащие права доступа.

© Network Systems Group 2015–2026 Отдел документации