Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Раскрыть
titleПодробное описание параметров конфигурации...

Параметры в секции [default]

Информация
titleСинтаксис

Значения параметров задаются строками вида <имя_параметра> = <значение>.

  • cert_expiration_days:
    Задает порог в днях до истечения срока действия отслеживаемого сертификата, после которого начинает выдаваться предупреждение (например, если установить значение 7, то предупреждение появится за 7 дней до истечения). Значение по умолчанию: 28.
  • timeout:
    Устанавливает максимальное время (в секундах) для выполнения каждой проверки. Если проверка выполняется дольше указанного времени, она считается прерванной с ошибкой. Значение по умолчанию: 10.
  • output_type:
    Определяет формат вывода результатов. Допустимые значения:
    – json (по умолчанию, машиночитаемый формат),
    – human (удобочитаемый формат для пользователей),
    – prometheus (формат для экспозиции метрик Prometheus).
  • output_file:
    Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
  • indent:
    При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
  • verbose:
    Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
  • debug:
    Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
  • severity:
    Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения:
    – SUCCESS (успешно),
    – WARNING (предупреждение),
    – ERROR (ошибка),
    – CRITICAL (критическая ошибка).
  • source:
    Исполняет проверки только из указанного источника или пространства имен (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.
  • check:
    Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с source (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

Параметры в секции [excludes]

...

  • ipahealthcheck.ipa.certs
    Содержит набор проверок, связанных с сертификатами FreeIPA: контролирует срок действия сертификатов, проверяет целостность и корректность цепочки доверия, сверяет сертификаты в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базах и PEM-файлах, а также их соответствие записям в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.certs

    IPACertmongerExpirationCheck

    Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.

    Истекший сертификат:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertmongerExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "expiration_date": "20160101001704Z",
        "msg": "Request id 1234 expired on 20160101001704Z"
      }
    }

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertmongerExpirationCheck",
      "result": "WARNING",
      "kw": {
        "key": 1234,
        "expiration_date": "20160101001704Z",
        "days": 9,
        "msg": "Request id 1234 expires in 9 days"
      }
    }

    IPACertfileExpirationCheck

    Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске.

    Если файл сертификата не может быть открыт:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "certfile": "/path/to/cert.pem",
        "error": [error],
        "msg": "Unable to open cert file '/path/to/cert.pem': [error]"
      }
    }

    Если FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-база не может быть открыта:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "dbdir": "/path/to/nssdb",
        "error": [error],
        "msg": "Unable to open NSS database '/path/to/nssdb': [error]"
      }
    }

    Если отслеживаемый никнейм не найден в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "dbdir": "/path/to/nssdb",
        "nickname": [nickname],
        "error": [error],
        "msg": "Unable to retrieve cert '[nickname]' from '/path/to/nssdb': [error]"
      }
    }

    Истекший сертификат:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "expiration_date", "20160101001704Z",
        "msg": "Request id 1234 expired on 20160101001704Z"
      }
    }

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "WARNING",
      "kw": {
        "key": 1234,
        "expiration_date", "20160101001704Z",
        "days": 9,
        "msg": "Request id 1234 expires in 9 days"
      }
    }

    IPACAChainExpirationCheck

    Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt).

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACAChainExpirationCheck",
      "result": "WARNING",
      "kw": {
        "path": "/etc/ipa/ca.crt",
        "key": "CN=Certificate Authority,O=EXAMPLE.TEST",
        "days": 2,
        "msg": "CA '{key}' is expiring in {days} days."
      }
    }

    Истекший сертификат:

    Блок кода
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACAChainExpirationCheck",
      "result": "WARNING",
      "kw": {
        "path": "/etc/ipa/ca.crt",
        "key": "CN=Certificate Authority,O=EXAMPLE.TEST",
        "days": 2,
        "msg": "CA '{key}' is expiring in {days} days."
      }
    }

    IPACertTracking

    Сравнивает информацию отслеживания (tracking) сертификатов, полученную от от FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.

    Предупреждение
    titleВажно!

    По умолчанию FreeIPA на Astra Linux развёртывается без полноценного CA — генерируются только самоподписные сертификаты.
    Поскольку в системе отсутствует как внутренний (DogTag), так и внешний CA, проверка IPACertTracking всегда будет завершаться с ERROR. Для исправления нужно начать отслеживать сертификат вручную, подробнее см. Отслеживаемый сертификат.

    Если отслеживание отсутствует:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertTracking",
      "result": "ERROR",
      "kw": {
        "key": "cert-file=/var/lib/ipa/ra-agent.pem, key-file=/var/lib/ipa/ra-agent.key, ca-name=dogtag-ipa-ca-renew-agent, cert-storage=FILE, cert-presave-command=/usr/libexec/ipa/certmonger/renew_ra_cert_pre,  cert-postsave-command=/usr/libexec/ipa/certmonger/renew_ra_cert"
        "msg": "Missing tracking for cert-file=/var/lib/ipa/ra-agent.pem, key-file=/var/lib/ipa/ra-agent.key, ca-name=dogtag-ipa-ca-renew-agent, cert-storage=FILE, cert-presave-command=/usr/libexec/ipa/certmonger/renew_ra_cert_pre,  cert-postsave-command=/usr/libexec/ipa/certmonger/renew_ra_cert"
      }
    }

    Если отслеживается неизвестный сертификат:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertTracking",
      "result": "WARNING",
      "kw": {
        "key": 1234,
        "msg": "Unknown certmonger id 1234'
      }
    }

    IPACertNSSTrust

    Сравнивает настройки доверия для сертификатов, хранящихся в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, с известным корректным состоянием.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertNSSTrust",
      "result": "ERROR",
      "kw": {
        "key": "auditSigningCert cert-pki-ca",
        "expected": "u,u,Pu",
        "got": "u,u,u",
        "nickname": "auditSigningCert cert-pki-ca",
        "dbdir": "/etc/pki/pki-tomcat/alias",
        "msg": "Incorrect NSS trust for auditSigningCert cert-pki-ca. Got u,u,u expected u,u,Pu"
      }
    }

    IPACertMatchCheck

    Удостоверяется, что записи сертификата CA в LDAP совпадают с данными, полученными из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы (или файла).

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertMatchCheck",
      "result": "ERROR",
      "kw": {
        "msg": "CA Certificate from /etc/ipa/nssdb does not match /etc/ipa/ca.crt"
      }
    }

    IPADogtagCertsMatchCheck

    Проверяет, совпадают ли сертификаты DogTag, присутствующие как в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, так и в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPADogtagCertsMatchCheck",
      "result": "ERROR",
      "kw": {
        "msg": "'subsystemCert cert-pki-ca' certificate in NSS DB does not match entry in LDAP"
      }
    }

    IPANSSChainValidation

    Информация
    titleСправка

    Команда"certutil -V -u V -e -d [dbdir] -n [nickname]"проверяет указанный сертификат на валидность цепочки доверия и корректность подписи из NSS-базы.

    -d [dbdir] и -n [nickname] — путь к базе и её псевдоним.
    -V -u V -e — валидация по дате/флагам доверия и проверка подписи.

    Проверяет цепочку сертификатов, полученных из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы. Выполняется команда "certutil -V -u V -e -d [dbdir] -n [nickname]".

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPANSSChainValidation",
      "result": "ERROR",
      "kw": {
        "key": "/etc/dirsrv/slapd-EXAMPLE-TEST:Server-Cert",
        "nickname": "Server-Cert",
        "dbdir": [path to NSS database],
        "reason": "certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n: ",
        "msg": ""Validation of Server-Cert in /etc/dirsrv/slapd-EXAMPLE-TEST/ failed: certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n "
      }
    }

    IPAOpenSSLChainValidation

    Информация
    titleСправка

    Команда "openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem" проверяет цепочку доверия для сертификата /path/to/cert.pem, используя доверенный FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-файл /etc/ipa/ca.crt.

    Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда "openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem".

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPAOpenSSLChainValidation",
      "result": "ERROR",
      "kw": {
        "key": "/var/lib/ipa/ra-agent.pem",
        "reason": "O = EXAMPLE.TEST, CN = IPA RA\nerror 20 at 0 depth lookup: unable to get local issuer certificate\n",
        "msg": "Certificate validation for /var/lib/ipa/ra-agent.pem failed: O = EXAMPLE.TEST, CN = IPA RA\nerror 20 at 0 depth lookup: unable to get local issuer certificate\n"
      }
    }

    IPARAAgent

    Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPARAAgent",
      "result": "ERROR",
      "kw": {
        "expected": "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",
        "got": "2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",
        "msg": "RA agent description does not match. Found 2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST in LDAP and expected 2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST"
      }
    }

    IPAKRAAgent

    Проверяет соответствие описания и значения атрибута userCertificate для FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPAKRAAgent",
      "result": "ERROR",
      "kw": {
        "expected": "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",
        "got": "2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",
        "msg": "KRA agent description does not match. Found 2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST in LDAP and expected 2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST"
      }
    }

    IPACertRevocation

    Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertRevocation",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "revocation_reason": "superseded",
        "msg": "Certificate is revoked, superseded"
      }
    }

    IPACertmongerCA

    Проверяет корректность конфигурации CA в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertmongerCA",
      "result": "ERROR",
      "kw": {
        "key": "dogtag-ipa-ca-renew-agent",
        "msg": "Certmonger CA 'dogtag-ipa-ca-renew-agent' missing"
      }
    }

    IPACertDNSSAN

    Проверяет, что во всех действующих заявках certmonger на серверные сертификаты профиля caIPAserviceCert для CA присутствует FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑Subject Alt Name, совпадающий с FQDN текущего хоста.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertDNSSAN",
      "result": "ERROR",
      "uuid": "431c42c0-9396-4593-ad2b-09b40298ba1f",
      "when": "20240416115958Z",
      "duration": "0.904624",
      "kw": {
        "key": "20240318110910",
        "hostname": "ipa-ca.example.com",
        "san": [
          "ipa02.example.com"
        ],
        "ca": "IPA",
        "profile": "caIPAserviceCert",
        "msg": "Certificate request id {key} with profile {profile} for CA {ca} does not have a DNS SAN {san} matching name {hostname}"
      }
    }

    CertmongerStuckCheck

    Ищет заявки FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], у которых статус stuck = true, и оповещает об «застрявших» запросах.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "CertmongerStuckCheck",
      "result": "WARNING",
      "uuid": "d32781d5-09e7-4d52-89f1-57eca541e9e4",
      "when": "20230407120255Z",
      "duration": "0.019584",
      "kw": {
        "key": "20230407091205",
        "msg": "certmonger request {key} is in the stuck state"
      }
    }

...