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

Ключ

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

...

Command
sudo systemctl enable ipa-healthcheck.timer 
sudo systemctl start ipa-healthcheck.timer

Эта команда включает Эти команды включают автоматический запуск таймера при инициализации системы и инициирует его немедленный старт.

...

  • ipahealthcheck.dogtag.ca
    Отвечает за диагностику служб центра сертификации DogTag (если DogTag используется). Диагностируются службы CA и KRA FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
    Раскрыть
    titleПроверки в источнике ipahealthcheck.dogtag.ca

    DogtagCertsConfigCheck

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

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.dogtag.ca",
      "check": "DogtagCertsConfigCheck",
      "result": "ERROR",
      "kw": {
        "key": "ocspSigningCert cert-pki-ca",
        "directive": "ca.ocsp_signing.cert",
        "configfile": "/var/lib/pki/pki-tomcat/conf/ca/CS.cfg",
        "msg": "Certificate 'ocspSigningCert cert-pki-ca' does not match the value of ca.ocsp_signing.cert in /var/lib/pki/pki-tomcat/conf/ca/CS.cfg"
        }
    }

    DogtagCertsConnectivityCheck

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

    Команда ipa cert-show отображает полную информацию о сертификате из IPA-CA по его серийному номеру: метаданные и сам сертификат в PEM-формате.

    Выполняет эквивалент команды ipa cert-show 1 для проверки базовой доступности.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.dogtag.ca",
      "check": "DogtagCertsConnectivityCheck",
      "result": "ERROR",
      "kw": {
        "msg": "Request for certificate failed, Certificate operation cannot be completed: Unable to communicate with CMS (503)"
      }
    }
  • ipahealthcheck.ds.backends
    Контролирует работоспособность backend‑модулей, которые отвечают за хранение данных (например, в LDAP‑хранилище FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑хранилище)
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.backends

    BackendsCheck

    Выполняет автоматическую lint‑проверку настройки backend‑инстанций DS и генерирующий DSBLE‑коды при обнаружении нарушений конфигурации или работы базы данных.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.backends",
      "check": "BackendsCheck",
      "result": "WARNING",
      "uuid": "875db8e3-029c-46f7-87e5-bf9a216d9637",
      "when": "20240426184431Z",
      "duration": "0.031642",
      "kw": {
        "key": "DSBLE0005",
        "items": [
          "nsslapd-dbcachesize",
          "nsslapd-db-logdirectory",
          "nsslapd-db-transaction-wait",
          "nsslapd-db-checkpoint-interval",
          "nsslapd-db-compactdb-interval",
          "nsslapd-db-compactdb-time",
          "nsslapd-db-transaction-batch-val",
          "nsslapd-db-transaction-batch-min-wait",
          "nsslapd-db-transaction-batch-max-wait",
          "nsslapd-db-logbuf-size",
          "nsslapd-db-page-size",
          "nsslapd-db-locks",
          "nsslapd-db-locks-monitoring-enabled",
          "nsslapd-db-locks-monitoring-threshold",
          "nsslapd-db-locks-monitoring-pause",
          "nsslapd-db-private-import-mem",
          "nsslapd-db-deadlock-policy"
        ],
        "msg": "Found configuration attributes that are not applicable for the configured backend type."
    }
  • ipahealthcheck.ds.config
    Проводит анализ конфигурационных настроек LDAP‑сервера FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.config

    ConfigCheck

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

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.config",
      "check": "ConfigCheck",
      "result": "CRITICAL",
      "uuid": "52ce6b03-5f42-4565-9e04-59f15136ff95",
      "when": "20250421043110Z",
      "duration": "0.027578",
      "kw": {
        "key": "DSCLE0002",
        "items": [
          "cn=config"
        ],
        "msg": "Password storage schemes in Directory Server define how passwords are hashed via a\none-way mathematical function for storage. Knowing the hash it is difficult to gain\nthe input, but knowing the input you can easily compare the hash.\n\nMany hashes are well known for cryptograhpic verification properties, but are\ndesigned to be *fast* to validate. This is the opposite of what we desire for password\nstorage. In the unlikely event of a disclosure, you want hashes to be *difficult* to\nverify, as this adds a cost of work to an attacker.\n\nIn Directory Server, we offer one hash suitable for this (PBKDF2-SHA512) and one hash\nfor \"legacy\" support (SSHA512).\n\nYour configuration does not use these for password storage or the root password storage\nscheme.\n"
      }
    }
  • ipahealthcheck.ds.disk_space
    Проверяет состояние свободного места на дисках, особенно на критичных разделах, таких как каталоги логов или резервных копий, чтобы предупредить о риске переполнения.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.disk_space

    DiskSpaceCheck

    Проверяет свободное место на ключевых томах Directory Server DS и выдаёт ERROR, если свободного объёма меньше 1 024 МБ или свободного пространства менее 20 %, и CRITICAL, если свободного пространства остаётся менее 10 %.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.disk_space",
      "check": "DiskSpaceCheck",
      "result": "CRITICAL",
      "uuid": "908d8cb4-988a-4c82-a00e-38716987ae16",
      "when": "20250421070353Z",
      "duration": "0.016273",
      "kw": {
        "key": "DSDSLE0001",
        "items": [
          "Server",
          "cn=config"
        ],
        "msg": "The disk partition used by the server (/), either for the database, the\nconfiguration files, or the logs is over 90% full.  If the partition becomes\ncompletely filled serious problems can occur with the database or the server's\nstability."
      }
    }
    
  • ipahealthcheck.ds.dse
    Проверяет рассинхронизацию времени между репликами DS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.dse

    DSECheck

    Контролирует рассинхронизацию времени между репликами DS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], считывая атрибут nsState из dse.ldif; выдаёт ERROR, если расхождение превышает 12 часов, и CRITICAL, когда оно выходит за предел 24 часов.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.dse",
      "check": "DSECheck",
      "result": "CRITICAL",
      "uuid": "ecc2c131-b86a-4851-a156-c304d77ebb0b",
      "when": "20230822183329Z",
      "duration": "0.012828",
      "kw": {
        "key": "DSSKEWLE0003",
        "items": [
          "Replication",
          "dc=DOMAIN,dc=DOMAIN,dc=DOMAIN",
          "Time Skew",
          "Skew: 30145 days, 2 hours, 20 minutes, 16 seconds"
        ],
        "msg": "The time skew is over 24 hours.  Setting nsslapd-ignore-time-skew\nto "on" on each replica will allow replication to continue, but if the\ntime skew continues to increase other serious replication problems can\noccur."
    }
  • ipahealthcheck.ds.encryption
    Анализирует настройки защитных преобразований передаваемых и хранящихся данных.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.encryption

    EncryptionCheck

    Проверяет, что в разделе cn=encryption,cn=config атрибут sslVersionMin задаёт минимальную версию TLS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК] не ниже 1.2; если версия ниже порога, возвращает ERROR, а при отсутствии раздела или невозможности подключиться к экземпляру Directory Server FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК] — CRITICAL

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.encryption",
      "check": "EncryptionCheck",
      "result": "ERROR",
      "uuid": "d96da377-9133-4fc4-ab4e-e30d7c4ea41b",
      "when": "20250422154500Z",
      "duration": "0.017686",
      "kw": {
        "key": "DSELE0001",
        "items": [
          "cn=encryption,cn=config"
        ],
        "msg": "This Directory Server may not be using strong TLS protocol versions. TLS1.0 is known to\nhave a number of issues with the protocol. Please see:\n\nhttps://tools.ietf.org/html/rfc7457\n\nIt is advised you set this value to the maximum possible."
      }
    }
  • ipahealthcheck.ds.fs_checks
    Выполняет проверку прав доступа к ключевым файлам DS.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.fs_checks

    FSCheck

    Проверяет права доступа к ключевым файлам DS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]: /etc/resolv.conf (должно быть 0644) и файлам pin.txt / pwdfile.txt в каталоге сертификатов Directory Server DS (должны быть 0400 или 0600); при несоответствии формирует отчёты DSPERMLE0001 или DSPERMLE0002 соответственно.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.fs_checks",
      "check": "FSCheck",
      "result": "ERROR",
      "uuid": "e45bb50a-39b1-4b32-bb2f-38ca6523dbc0",
      "when": "20250422155540Z",
      "duration": "0.024143",
      "kw": {
        "key": "DSPERMLE0001",
        "items": [
          "File Permissions",
          "/etc/resolv.conf"
        ],
        "msg": "The file \"/etc/resolv.conf\" does not have the expected permissions (644).  This\ncan cause issues with replication and chaining."
      }
    }
  • ipahealthcheck.ds.nss_ssl
    Проверяет настройки NSS‑базы, которая используется для хранения сертификатов и ключей, а также тестирует соответствующие SSL‑настройки.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.nss_ssl

    NssCheck

    Проверяет NSS‑базу NSS‑базу экземпляра Directory Server DS: ищет сертификаты, срок действия которых истекает менее чем через 30 дней (код DSCERTLE0001, результат ERROR) или которые уже просрочены (код DSCERTLE0002, результат CRITICAL)

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.nss_ssl",
      "check":  "NssCheck",
      "result": "ERROR",
      "uuid":   "1a2798fd-7fa5-4132-a288-7975f2c32b60",
      "when":   "20200813211503Z",
      "duration": "0.000150",
      "kw": {
        "key":   "DSCERTLE0001",
        "items": [
    	   "Expiring Certificate"
    	],
        "msg": "The certificate (Server-Cert) will expire in less than 30 days"
      }
    }
  • ipahealthcheck.ds.ds_plugins
    Отвечает за проверку дополнительных плагинов LDAP‑сервера FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑сервера, которые могут расширять его функциональность или влиять на безопасность.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.ds_plugins

    RIPluginCheck

    Проверяет, что у плагина Referential Integrity параметр nsslapd‑referint‑update‑delay равен 0 (синхронный режим) и что для каждого атрибута из referint‑membership‑attr во всех пользовательских базах данных существует индекс равенства (nsIndexType=eq).

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.ds_plugins",
      "check": "RIPluginCheck",
      "result": "WARNING",
      "uuid": "85048bc3-bdc7-4423-9577-fedb9fb5b04a",
      "when": "20210328044440Z",
      "duration": "0.192629",
      "kw": {
        "key": "DSRILE0001",
        "items": [
          "cn=referential integrity postoperation,cn=plugins,cn=config"
        ],
        "msg": "The referential integrity plugin has an asynchronous processing mode.\nThis is controlled by the update-delay flag.  When this value is 0, referential\nintegrity plugin processes these changes inside of the operation that modified\nthe entry - ie these are synchronous.\n\nHowever, when this is > 0, these are performed asynchronously.\n\nThis leads to only having referint enabled on one supplier in MMR to prevent replication conflicts and loops.\nAdditionally, because these are performed in the background these updates may cause spurious update\ndelays to your server by batching changes rather than smaller updates during sync processing.\n\nWe advise that you set this value to 0, and enable referint on all suppliers as it provides a more predictable behaviour.\n"
      }
    }
  • ipahealthcheck.ds.replication
    Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений (changelogs) для обнаружения ошибок.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.replication

    ReplicationCheck

    Проверяет все объекты nsDS5ReplicationAgreement во всех репликационных репозиториях Directory Server DS: убеждается, что состояние соглашения (nsds5replicaEnabled=on, nsds5replicaLastUpdateStatus=0) и канал связи к удалённому хосту исправны, что счётчик отставания (RUVFreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]) синхронизирован и нет поломанных либо отключённых соглашений. Также проверяет репликацию на конфликты.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.replication",
      "check": "ReplicationCheck",
      "result": "CRITICAL",
      "uuid": "4e0472b9-bc3a-495e-a15a-55c5788e665d",
      "when": "20250422165825Z",
      "duration": "0.204692",
      "kw": {
        "key": "DSREPLLE0001",
        "items": [
          "Replication",
          "Agreement"
        ],
        "msg": "The replication agreement (metoipacln.testdomain.test) under \"dc=testdomain,dc=test\" is not in synchronization."
      }
    }

    ReplicationChangelogCheck

    Проверяет, что у журнала репликации cn=changelog5,cn=config включен trimming (задан хотя бы один из параметров nsslapd‑changelogmaxagensslapd‑changelogmaxentries или nsslapd‑changelogtrim‑interval); при отсутствии trimming выдаёт отчёт DSCLLE0001.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.replication",
      "check":  "ReplicationChangelogCheck",
      "result": "WARNING",                 
      "uuid":   "c7f7a268-2c1b-4d7b-9e5a-6133ff4b0c1e",
      "when":   "20250422T103259Z",        
      "duration": "0.000214",
      "kw": {
        "key":   "DSCLLE0001",
        "items": [
    	  "cn=changelog5,
           cn=config"
        ],
        "msg": "The replication changelog does not have any kind of trimming configured. "
               "This will cause the changelog to grow indefinitely, potentially exhausting disk space. "
      }
    }
  • ipahealthcheck.ds.ruv
    Следит за корректностью записей RUV, необходимых для правильной работы репликации.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ds.ruv

    RUVCheck

    Извлекает текущий (локальный) RUV для основного LDAP‑суффикса LDAP‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.

    Блок кода
    titlejson
    { 
      "source": "ipahealthcheck.ds.ruv",
      "check": "RUVCheck",
      "result": "SUCCESS",
      "uuid": "9875d929-c813-4a91-b757-57798fc5aaff",
      "when": "20250421034249Z",
      "duration": "0.002770",
      "kw": {
        "key": "dc=testdomain,dc=test",
        "ruv": "4"
      }
    }

    KnownRUVCheck

    Сканирует записи из tombstone, содержащие атрибут nsds50ruv, извлекает из них все известные RUV для каждого суффикса и возвращает список кортежей (host, replicaID), что помогает выявить устаревшие записи репликации.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ds.ruv",
      "check": "KnownRUVCheck",
      "result": "SUCCESS",
      "uuid": "95da5759-5e7d-4260-9d79-01fa9d591b25",
      "when": "20250421034249Z",
      "duration": "0.002467",
      "kw": {
        "key": "ruvs_dc=testdomain,dc=test",
        "suffix": "dc=testdomain,dc=test",
        "ruvs": [
          [
            "ipasrv.testdomain.test",
            "4"
          ],
          [
            "ipacln.testdomain.test",
            "3"
          ]
        ]
      }
    }
  • ipahealthcheck.ipa.certs
    Содержит набор проверок, связанных с сертификатами FreeIPA: контролирует срок действия сертификатов, проверяет целостность и корректность цепочки доверия, сверяет сертификаты в NSS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базах и PEM-файлах, а также их соответствие записям в LDAP.
    Раскрыть
    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]"
      }
    }

    Если NSS 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]"
      }
    }

    Если отслеживаемый никнейм не найден в NSS 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) сертификатов, полученную от certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.

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

    Блок кода
    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

    Сравнивает настройки доверия для сертификатов, хранящихся в NSS-базе, с известным корректным состоянием.

    Блок кода
    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 совпадают с данными, полученными из NSS-базы (или файла).

    Блок кода
    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, присутствующие как в NSS FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, так и в LDAP.

    Блок кода
    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

    Проверяет цепочку сертификатов, полученных из NSS 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

    Проверяет цепочку сертификатов для файлов 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-агента в LDAP.

    Блок кода
    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 для KRA-агента в LDAP 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 в certmonger 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 заявках certmonger на серверные сертификаты профиля caIPAserviceCert для CA присутствует DNS‑Subject DNS‑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

    Ищет заявки certmonger, у которых статус 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"
      }
    }
  • ipahealthcheck.ipa.dna
    Отвечает за проверку диапазона DNA, который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.dna

    IPADNARangeCheck

    Это выводит настроенный диапазон DNA, если таковой имеется. Предполагается, что эта информация будет использоваться в сочетании с другими данными для дальнейшего анализа.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.dna",
      "check": "IPADNARangeCheck",
      "result": "SUCCESS",
      "kw": {
        "range_start": 1000,
        "range_max": 199999,
        "next_start": 0,
        "next_max": 0,
      }
    }
  • ipahealthcheck.ipa.idns
    Производит диагностику системных DNS‑записей DNS‑записей, необходимых для корректной работы инфраструктуры FreeIPA.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.idns

    IPADNSSystemRecordsCheck

    Проверяет, что все обязательные системные DNS‑записи DNS‑записи (SRV, URI, TXT и A/AAAA ipa‑ca), перечисленные командой ipa dns‑update‑system‑records --dry‑run, действительно разрешаются через первый указанный в /etc/resolv.conf сервер и содержат ровно те значения, которых ожидает FreeIPA.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.idns",
      "check": "IPADNSSystemRecordsCheck",
      "result": "SUCCESS",
      "uuid": "eb7a3b68-f6b2-4631-af01-798cac0eb018",
      "when": "20200415143339Z",
      "duration": "0.210471",
      "kw": {
        "key": "_ldap._tcp.idm.example.com.:server1.idm.example.com."
      }
    },
    {
      "source": "ipahealthcheck.ipa.idns",
      "check": "IPADNSSystemRecordsCheck",
      "result": "WARNING",
      "uuid": "8332068e-f76f-419c-a376-ddd87541ec28",
      "when": "20221209024056Z",
      "duration": "0.676441",
      "kw": {
        "msg": "Expected URI record missing",
        "key": "_kerberos.example.com.:krb5srv:m:tcp:idm.example.com."
      }
    }
  • ipahealthcheck.ipa.files
    Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы NSS‑базы.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.files

    IPAFileNSSDBCheck

    IPAFileCheck

    TomcatFileCheck

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

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.files",
      "check": "IPAFileCheck",
      "result": "WARNING",
      "kw": {
        "key": "_etc_ipa_ca.crt_mode",
        "path": "/etc/ipa/ca.crt",
        "type": "mode",
        "expected": "0644",
        "got": "0444",
        "msg": "Permissions of /etc/ipa/ca.crt are 0444 and should be 0644"
      }
    }
    
    {
      "source": "ipahealthcheck.ipa.files",
      "check": "IPAFileNSSDBCheck",
      "result": "WARNING",
      "kw": {
        "key": "_etc_dirsrv_slapd-EXAMPLE-TEST_pkcs11.txt_mode",
        "path": "/etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt",
        "type": "mode",
        "expected": "0640",
        "got": "0666",
        "msg": "Permissions of /etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt are 0666 and should be 0640"
      }
    }
    
    {
      "source": "ipahealthcheck.ipa.files",
      "check": "IPAFileCheck",
      "result": "WARNING",
      "uuid": "148fd972-76b5-45ce-b87b-b7069ba017f5",
      "when": "20350403134616Z",
      "duration": "0.002585",
      "kw": {
        "key": "_var_log_apache2_error.log_owner",
        "path": "/var/log/apache2/error.log",
        "type": "owner",
        "expected": "root",
        "got": "user",
        "msg": "Ownership of /var/log/apache2/error.log is user and should be root"
      }
    }
    
    {
      "source": "ipahealthcheck.ipa.files",
      "check": "IPAFileCheck",
      "result": "WARNING",
      "uuid": "3caf9c40-fd40-4ad6-8ccf-6188daa93873",
      "when": "20350403134616Z",
      "duration": "0.002660",
      "kw": {
        "key": "_var_log_apache2_error.log_group",
        "path": "/var/log/apache2/error.log",
        "type": "group",
        "expected": "adm",
        "got": "user",
        "msg": "Group of /var/log/apache2/error.log is user and should be adm"
      }
    }
  • ipahealthcheck.ipa.host
    Выполняет проверку, связанную с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных служб (LDAP, HTTP, DNS и др.).
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.host

    IPAHostKeytab

    Обеспечивает, что keytab для службы службы host (обычно /etc/krb5.keytab) существует на сервере и позволяет получить TGT через GSSAPI.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.host",
      "check": "IPAHostKeytab",
      "severity": 2,
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "when": "20250422T102030Z",
      "duration": 0.015,
      "kw": {
        "service": "host",
        "path": "/etc/krb5.keytab",
        "msg": "Service host keytab /etc/krb5.keytab does not exist."
      }
    }

    DSKeytab

    Обеспечивает, что keytab для службы службы ldap (обычно /etc/dirsrv/ds.keytab) существует и позволяет получить билет.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.host",
      "check": "DSKeytab",
      "result": "ERROR",
      "uuid": "5ba452bb-f460-489e-adf6-bce7ccd529e3",
      "when": "20250422214408Z",
      "duration": "0.000053",
      "kw": {
        "service": "ldap",
        "path": "/etc/dirsrv/ds.keytab",
        "msg": "Service {service} keytab {path} does not exist."
      }
    }

    HTTPKeytab

    Обеспечивает, что keytab для службы службы HTTP (обычно /var/lib/ipa/gssproxy/http.keytab) существует и позволяет получить TGT для аутентификации веб‑сервера.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.host",
      "check": "HTTPKeytab",
      "result": "ERROR",
      "uuid": "75320965-ac11-41ed-8375-fb96f0dfd636",
      "when": "20250422215025Z",
      "duration": "0.000071",
      "kw": {
        "service": "HTTP",
        "path": "/var/lib/ipa/gssproxy/http.keytab",
        "msg": "Service {service} keytab {path} does not exist."
      }
    }

    DNSKeytab

    Проверяет, что keytab для службы службы DNS (обычно /etc/bind/krb5.keytab) существует и может получить TGT FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], но только если на хосте настроен DNS‑сервер IPA FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑сервер FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. При отсутствии записи в dns_server_server проверка пропускается.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.host",
      "check": "DNSKeytab",
      "result": "ERROR",
      "uuid": "01a7db34-4567-4126-b761-93030e5a61ff",
      "when": "20250422215654Z",
      "duration": "0.000171",
      "kw": {
        "service": "DNS",
        "path": "/etc/bind/krb5.keytab",
        "msg": "Service {service} keytab {path} does not exist."
      }
    }

    DNS_keysyncKeytab 

    Проверяет, что keytab для службы службы ipa-dnskeysyncd (обычно /etc/ipa/dnssec/ipa-dnskeysyncd.keytab) существует и позволяет получить TGT FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], но только если хост настроен как DNS‑сервер IPA FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑сервер FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. При отсутствии записи в dns_server_server проверка пропускается.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.host",
      "check": "DNS_keysyncKeytab",
      "result": "ERROR",
      "uuid": "7c6f7fcf-a35f-45c5-ad57-dbc2f273973e",
      "when": "20250422215025Z",
      "duration": "0.000095",
      "kw": {
        "service": "ipa-dnskeysyncd",
        "path": "/etc/ipa/dnssec/ipa-dnskeysyncd.keytab",
        "msg": "Service {service} keytab {path} does not exist."
      }
    }
  • ipahealthcheck.ipa.kdc
    Следит за состоянием рабочих процессов KDC FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], необходимых для работы аутентификации.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.kdc

    KDCWorkersCheck

    Проверяет, что в файле /etc/default/krb5-kdc в параметре KRB5KDC_ARGS указано число рабочих процессов (-w N), совпадающее с количеством онлайн‑ядер CPU на хосте. Если -w не задан и ядер больше одного, выдается предупреждение; если KRB5KDC_ARGS не найден, тоже предупреждение.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.kdc",
      "check": "KDCWorkersCheck",
      "result": "WARNING",
      "uuid": "e2e667d0-83ac-41f7-8e71-8c5bc6a1397c",
      "when": "20250422221706Z",
      "duration": "0.000664",
      "kw": {
        "key": "workers",
        "cpus": 2,
        "workers": 4,
        "sysconfig": "/etc/default/krb5-kdc",
        "msg": "The number of CPUs {cpus} does not match the number of workers {workers} in {sysconfig}"
      }
    }
  • ipahealthcheck.ipa.meta
    Собирает общую информацию о сервере FreeIPA.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.meta

    IPAMetaCheck

    Вызывает внутренний API FreeIPA для получения списка всех зарегистрированных IPA‑серверов FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑серверов и возвращает их метаданные простым массивом имён мастеров. Если при вызове возникает любое исключение, генерируется ошибка с кодом ERROR

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.meta",
      "check": "IPAMetaCheck",
      "result": "SUCCESS",
      "uuid": "0923fc34-6c27-4cfd-8cd0-04f30b8ec74e",
      "when": "20250422222216Z",
      "duration": "0.015272",
      "kw": {
        "masters": [
          "ipacln.testdomain.test",
          "ipasrv.testdomain.test"
        ]
      }
    }
  • ipahealthcheck.ipa.nss
    Проверяет корректность работы NSS‑подсистемы FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑подсистемы.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.nss

    IPAGroupMemberCheck

    Проверяет, что указанные системные POSIX‑группы содержат ожидаемых пользователей. В FreeIPA это нужно для разделения привилегий: например, чтобы веб‑сервер мог читать кэши учетных данных, создаваемые от имени ipaapi‑пользователя.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.nss",
      "check": "IPAGroupMemberCheck",
      "result": "SUCCESS",
      "uuid": "f04bff38-5382-4794-856c-1e7d193c9dfa",
      "when": "20250422223036Z",
      "duration": "0.000543",
      "kw": {
        "key": "ipaapi",
        "member": "www-data"
      }
    }
  • ipahealthcheck.ipa.proxy
    Контролирует настройки IPA Proxy, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.proxy
    IPAProxySecretCheck

    Проверяет, что секреты AJP-коннектора Tomcat совпадают со значениями из ProxyPassMatch в конфиге Apache (ipa-pki-proxy.conf), и что между secret и requiredSecret нет противоречий.

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.proxy",
      "check": "IPAProxySecretCheck",
      "result": "CRITICAL",
      "uuid": "6820b5b3-08a9-4632-a834-a71d1ae0d84b",
      "when": "20220708144958Z",
      "duration": "0.000894",
      "kw": {
        "key": "proxy_secrets",
    	"proxy_conf": "/etc/apache2/conf-enabled/ipa-pki-proxy.conf",
    	"msg": "No ProxyPassMatch secrets found in {proxy_conf}"
      }
    }

...