Ошибки FreeIPA при использовании SAN в запросе сертификата

Вопрос или проблема

При подписании CSR, который включает атрибут SAN IP, возвращается следующее:

ОШИБКА: недопустимый 'csr': IP-адрес в subjectAltName (x.x.x.x) недоступен из DNS-имен

FreeIPA установлена в контейнере Docker с IP-адресом 10.88.x.x, который я не использую для остальных сетей. Я использую несколько сетей /24 /25 /26 для OpenStack, каждый арендатор – отдельный.

Есть ли изменение конфигурации для FreeIPA, чтобы принимать другие сети?

Я использую 10, 172 и 192 в своей сети.

Шаг 1: Изменение конфигурации FreeIPA
Доступ к серверу FreeIPA:

Войдите на ваш сервер FreeIPA или контейнер Docker, где запущена FreeIPA.

Редактирование файла ipa.conf:

Откройте файл конфигурации FreeIPA для редактирования:

vi /etc/ipa/default.conf

Добавьте следующие строки, чтобы отключить проверку IP-адресов для SAN:

ini
Копировать
[global]
disable_ip_san_check = True
Сохраните и закройте файл.

Перезапустите службы FreeIPA:

Перезапустите службы FreeIPA, чтобы применить изменения:

systemctl restart ipa

Шаг 2: Генерация CSR с SAN
Если вы еще не сгенерировали CSR с необходимыми полями SAN, вы можете использовать следующую команду OpenSSL:

openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out csr.pem -subj "/CN=your-common-name" -addext "subjectAltName=IP:10.x.x.x,IP:172.x.x.x,IP:192.x.x.x"

Замените 10.x.x.x, 172.x.x.x и 192.x.x.x на фактические IP-адреса, которые вы хотите включить в SAN.

Шаг 3: Отправка CSR в FreeIPA
Используйте команду ipa cert-request:

Отправьте CSR в FreeIPA, используя команду ipa cert-request:

ipa cert-request csr.pem --add --principal=host/your-hostname@YOUR-REALM

Замените your-hostname и YOUR-REALM на соответствующие значения.

Проверьте сертификат:

Если CSR успешно обработано, FreeIPA выдаст сертификат. Вы можете проверить сертификат, используя:

openssl x509 -in certificate.pem -text -noout

Шаг 4: Устранение неполадок
Если вы все еще сталкиваетесь с проблемами, проверьте журналы FreeIPA для получения более подробной информации:

tail -f /var/log/ipa/ipa.log

Убедитесь, что сервер FreeIPA имеет сетевой доступ к указанным IP-диапазонам.

Важно:
Отключение проверки IP SAN (disable_ip_san_check) может привести к рискам безопасности, так как это позволяет выдавать сертификаты для недоступных или недопустимых IP-адресов. Используйте эту опцию только если вы полностью понимаете последствия.

Если вы используете FreeIPA в контейнере Docker, убедитесь, что контейнер имеет сетевой доступ к указанным IP-диапазонам.

Полный пример
Вот полный пример процесса:

Изменение ipa.conf:

vi /etc/ipa/default.conf

Добавьте:

ini
Копировать
[global]
disable_ip_san_check = True
Генерация CSR:

openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out csr.pem -subj "/CN=your-common-name" -addext "subjectAltName=IP:10.0.0.1,IP:172.16.0.1,IP:192.168.0.1"

Отправка CSR:

ipa cert-request csr.pem --add --principal=host/your-hostname@YOUR-REALM

Проверка сертификата:

openssl x509 -in certificate.pem -text -noout

Ответ или решение

Введение в проблему с FreeIPA при использовании SAN в запросе на сертификат:

FreeIPA — это мощная система управления идентичностью и доступом (IAM), которая предоставляет интеграцию на базе Kerberos с поддержкой PKI (Public Key Infrastructure). Однако в контексте подписи CSR (Certificate Signing Request), включающего атрибут SAN (Subject Alternative Name), пользователи могут сталкиваться с ошибкой: «ERROR: invalid ‘csr’: IP address in subjectAltName (x.x.x.x) unreachable from DNS names». Эта ошибка происходит, когда адреса IP в SAN недоступны из доменных имен, связанных с FreeIPA. Решим эту проблему в нескольких шагах, уделяя внимание каждого аспекта задачи.

Проблема и её причина:

Как указано в описании проблемы, FreeIPA установлена в контейнере Docker с определённым IP-адресом (например, 10.88.x.x), который не соответствует другим сетям, используемым в инфраструктуре, например, сетям OpenStack с множеством диапазонов /24, /25, /26. При попытке использовать запрос на сертификат (CSR) с SAN, содержащим IP-адреса из таких сетей, CSR отвергается. Это связано с тем, что FreeIPA по умолчанию проверяет, доступен ли указанный IP адрес из зарегистрированных в DNS доменных имён.

Теория:

FreeIPA, как часть своей функциональности безопасности, требует, чтобы все IP-адреса в SAN были проверяемы через DNS. Если это невозможно (как в случае с отключёнными сетями или сетями, не резолвящимися через DNS FreeIPA), система отклоняет такие запросы в целях безопасности. Однако в условиях контейнеризованных сред и сложных настройках виртуальных сетей такая проверка может быть затруднительной или невыполнимой. Временно отключив эту функцию проверки, можно обойти данную проблему, хотя это может повлечь за собой определённые риски безопасности.

Пример — пошаговое решение проблемы:

  1. Изменение конфигурации FreeIPA:

    • Подключитесь к серверу FreeIPA или контейнеру Docker.

    • Откройте конфигурационный файл для FreeIPA (по пути /etc/ipa/default.conf) с помощью текстового редактора, например vi.

    • Добавьте следующую строку, чтобы отключить проверку доступности IP в SAN:

      [global]
      disable_ip_san_check = True
    • Сохраните и закройте файл.

    • Перезапустите службы FreeIPA для применения изменений, используя следующую команду:

      systemctl restart ipa
  2. Создание CSR с SAN:

    • Если вы ещё не создали CSR с необходимыми полями SAN, выполните следующую команду OpenSSL:

      openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out csr.pem -subj "/CN=ваше-обычное-имя" -addext "subjectAltName=IP:10.x.x.x,IP:172.x.x.x,IP:192.x.x.x"
    • Замените 10.x.x.x, 172.x.x.x и 192.x.x.x на фактические IP адреса, которые вы хотите включить в SAN.

  3. Передача CSR на FreeIPA:

    • Подайте CSR на FreeIPA с помощью команды ipa cert-request:

      ipa cert-request csr.pem --add --principal=host/ваш-хост@ВАШ-РЕАЛМ
    • Замените ваш-хост и ВАШ-РЕАЛМ на соответствующие значения.

  4. Проверка сертификата:

    • Если CSR успешно обработан, FreeIPA выдаст сертификат. Вы можете проверить сертификат, используя следующую команду:

      openssl x509 -in certificate.pem -text -noout

Применение:

Процедуры, описанные выше, должны обеспечить успешное создание и использование CSR с IP-адресами в SAN, которые находятся в различных виртуальных или физических сетях. Однако при применении таких решений важно понимать, что отключение проверки доступности IP-адресов в SAN может потенциально создать уязвимости в системе безопасности. Поэтому данное изменение следует рассматривать как временное решение, пока не будут разработаны более безопасные подходы или не будут переработаны сетевые архитектуры в соответствии с требованиями проверок FreeIPA.

Заключение:

Ошибка FreeIPA, связанная с проверкой SAN, является типичной для сложных систем виртуальных сетей, особенно таких, как OpenStack. С помощью корректной настройки конфигурационных файлов FreeIPA и понимания сетевой инфраструктуры, данная проблема может быть решена быстро и эффективно. Однако специалисты в области ИТ должны всегда оценивать возможные риски и поддерживать высокий уровень безопасности своей инфраструктуры.

Оцените материал
Добавить комментарий

Капча загружается...