...
- ipahealthcheck.ds.backends
Контролирует работоспособность backend‑модулей, которые отвечают за хранение данных (например, в LDAP‑хранилище)Раскрыть BackendsCheck
Выполняет автоматическую lint‑проверку настройки backend‑инстанций Directory Server и генерирующий DSBLE‑коды при обнаружении нарушений конфигурации или работы БД.
Блок кода title json { "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‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.Раскрыть ConfigCheck
Выполняет автоматическую lint‑проверку конфигурации Directory Server. Ищет устаревшие, отсутствующие или некорректные параметры (например, небезопасные схемы хранения пароля, неподходящие диапазоны значений, дублирование опций), преобразуя результаты в стандартизированные DSBLE/DSCLE‑коды
Блок кода title json { "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.replication
Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений (changelogs) для обнаружения ошибок.
ipahealthcheck.ds.ruvРаскрыть ReplicationCheck
Проверяет все объекты
nsDS5ReplicationAgreementво всех репликационных репозиториях Directory Server: убеждается, что состояние соглашения (nsds5replicaEnabled=on,nsds5replicaLastUpdateStatus=0) и канал связи к удалённому хосту исправны, что счётчик отставания (RUV) синхронизирован и нет поломанных либо отключённых соглашений. Также проверяет репликацию на конфликты.ReplicationConflictCheck
Ищет записи в LDAP, соответствующие фильтру (&(!(objectclass=nstombstone))(nsds5ReplConflict=*))
Блок кода title json { "source": "ipahealthcheck.ds.replication", "check": "ReplicationConflictCheckReplicationCheck", "result": "ERRORCRITICAL", "kwuuid": { "4e0472b9-bc3a-495e-a15a-55c5788e665d", "keywhen": "nsuniqueid=66446001-1dd211b2+uid=bjenkins,cn=users,cn=accounts,dc=example,dc=test20250422165825Z", "conflictduration": "namingConflict0.204692", "msg"kw": "Replication conflict" } }
Следит за корректностью записей RUV (Replica Update Vector), необходимых для правильной работы репликации.Раскрыть RUVCheck
Извлекает текущий (локальный) RUV для основного LDAP‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.
Блок кода title json { "source": "ipahealthcheck.ds.ruv{ "key": "DSREPLLE0001", "checkitems": "RUVCheck[ "Replication", "result": "SUCCESS"Agreement" ], "uuidmsg": "9875d929-c813-4a91-b757-57798fc5aaff", "when": "20250421034249Z", "duration": "0.002770The replication agreement (metoipacln.testdomain.test) under \"dc=testdomain,dc=test\" is not in synchronization." } }
ReplicationChangelogCheck
Проверяет, что у журнала репликации
cn=changelog5,cn=configвключен trimming (задан хотя бы один из параметровnsslapd‑changelogmaxage,nsslapd‑changelogmaxentriesилиnsslapd‑changelogtrim‑interval); при отсутствии trimming выдаёт отчёт DSCLLE0001.Блок кода title json { "source": "ipahealthcheck.ds.replication", "kwcheck": { "ReplicationChangelogCheck", "keyresult": "dc=testdomain,dc=testWARNING", "ruv": "4" } }
KnownRUVCheck
Сканирует записи из tombstone, содержащие атрибут
nsds50ruv, извлекает из них все известные RUV для каждого суффикса и возвращает список кортежей(host, replicaID), что помогает выявить устаревшие записи репликации.Блок кода title json { "source": "ipahealthcheck.ds.ruv", "check": "KnownRUVCheck", "result": "SUCCESS", "uuid": "95da5759c7f7a268-5e7d2c1b-42604d7b-9d799e5a-01fa9d591b256133ff4b0c1e", "when": "20250421034249Z20250422T103259Z", "duration": "0.002467000214", "kw": { "key": "ruvs_dc=testdomain,dc=test", "DSCLLE0001", "suffixitems": [ "dc=testdomain,dc=test"cn=changelog5, "ruvs": [ [cn=config" "ipasrv.testdomain.test"], "4msg" : "The replication changelog does not ], have any kind of trimming configured. [" "ipacln.testdomain.test", "This will cause the changelog "3" to grow indefinitely, potentially exhausting disk ] ]space. " } }
- ipahealthcheck.ipads.certs
Содержит набор проверок, связанных с сертификатами FreeIPA: от контроля срока действия, проверки цепочки доверия до сравнения сертификатов, а также отслеживания их состояния с помощью certmongerruv
Следит за корректностью записей RUV (Replica Update Vector), необходимых для правильной работы репликации.Раскрыть RUVCheck
Извлекает текущий (локальный) RUV для основного LDAP‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.
IPACertmongerExpirationCheck
Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.
Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipads.certsruv", "check": "IPACertmongerExpirationCheckRUVCheck", "result": "ERRORSUCCESS", "kwuuid": {"9875d929-c813-4a91-b757-57798fc5aaff", "keywhen": 1234"20250421034249Z", "expiration_dateduration": "20160101001704Z0.002770", "kw": { "msgkey": "Request id 1234 expired on 20160101001704Z"dc=testdomain,dc=test", "ruv": "4" } }KnownRUVCheck
Сканирует записи из tombstone, содержащие атрибут
nsds50ruv, извлекает из них все известные RUV для каждого суффикса и возвращает список кортежей(host, replicaID), что помогает выявить устаревшие записи репликации.Сертификат, истекающий скоро:Блок кода title json { "source": "ipahealthcheck.ipads.certsruv", "check": "IPACertmongerExpirationCheckKnownRUVCheck", "result": "WARNINGSUCCESS", "kwuuid": { "95da5759-5e7d-4260-9d79-01fa9d591b25", "keywhen": 1234"20250421034249Z", "expiration_date"duration": "20160101001704Z0.002467", "dayskw": 9,{ "msgkey": "Request id 1234 expires in 9 days" } }ruvs_dc=testdomain,dc=test", "suffix": "dc=testdomain,dc=test", "ruvs": [ [ "ipasrv.testdomain.test", "4" ], [ "ipacln.testdomain.test", "3" ] ] } }
- ipahealthcheck.ipa.certs
Содержит набор проверок, связанных с сертификатами FreeIPA: от контроля срока действия, проверки цепочки доверия до сравнения сертификатов, а также отслеживания их состояния с помощью certmonger.
ipahealthcheck.ipa.dnaРаскрыть IPACertmongerExpirationCheck
Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.
Истекший сертификат:
IPACertfileExpirationCheck
Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске.
Если файл сертификата не может быть открыт:
Блок кода title json { "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-база не может быть открыта:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheckIPACertmongerExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "dbdirexpiration_date": "/path/to/nssdb20160101001704Z", "errormsg": [error], "msg": "Unable to open NSS database '/path/to/nssdb': [error]" } }"Request id 1234 expired on 20160101001704Z" } }Сертификат, истекающий скороЕсли отслеживаемый никнейм не найден в NSS-базе:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheckIPACertmongerExpirationCheck", "result": "ERRORWARNING", "kw": { "key": 1234, "dbdirexpiration_date": "/path/to/nssdb20160101001704Z", "nicknamedays": [nickname]9, "error": [error], "msg": "UnableRequest toid retrieve1234 cert '[nickname]' from '/path/to/nssdb': [error]expires in 9 days" } }Истекший сертификат:
IPACertfileExpirationCheck
Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске.
Если файл сертификата не может быть открыт:
Блок кода title json {Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "expiration_date"certfile": "/path/to/cert.pem", "20160101001704Zerror": [error], "msg": "RequestUnable to idopen 1234cert expired on 20160101001704Zfile '/path/to/cert.pem': [error]" } }
Сертификат, истекающий скороЕсли NSS-база не может быть открыта:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheck", "result": "WARNINGERROR", "kw": { "key": 1234, "expiration_datedbdir",: "20160101001704Z",/path/to/nssdb", "dayserror": 9[error], "msg": "RequestUnable idto 1234open expiresNSS in 9 daysdatabase '/path/to/nssdb': [error]" } }IPACAChainExpirationCheck
Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt).
Сертификат, истекающий скороЕсли отслеживаемый никнейм не найден в NSS-базе:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACAChainExpirationCheckIPACertfileExpirationCheck", "result": "WARNINGERROR", "kw": { "pathkey": "/etc/ipa/ca.crt1234, "dbdir": "/path/to/nssdb", "keynickname": "CN=Certificate Authority,O=EXAMPLE.TEST",[nickname], "dayserror": 2[error], "msg": "CAUnable to retrieve cert '{key}[nickname]' is expiring in {days} days.from '/path/to/nssdb': [error]" } }Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACAChainExpirationCheckIPACertfileExpirationCheck", "result": "WARNINGERROR", "kw": { "pathkey": "/etc/ipa/ca.crt"1234, "keyexpiration_date":, "CN=Certificate Authority,O=EXAMPLE.TEST20160101001704Z", "daysmsg": 2, "Request id 1234 expired "msg":on "CA '{key}' is expiring in {days} days."20160101001704Z" } }IPACertTracking
Сравнивает информацию отслеживания (tracking) сертификатов, полученную от certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.
Если отслеживание отсутствуетСертификат, истекающий скоро:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertTrackingIPACertfileExpirationCheck", "result": "ERRORWARNING", "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" 1234, "expiration_date", "20160101001704Z", "days": 9, "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" } }Request id 1234 expires in 9 days" } }IPACAChainExpirationCheck
Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt).
Сертификат, истекающий скороЕсли отслеживается неизвестный сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertTrackingIPACAChainExpirationCheck", "result": "WARNING", "kw": { "path": "/etc/ipa/ca.crt", "key": "CN=Certificate Authority,O=EXAMPLE.TEST", "days": 12342, "msg": "Unknown certmonger id 1234'CA '{key}' is expiring in {days} days." } }IPACertNSSTrust
Сравнивает настройки доверия для сертификатов, хранящихся в NSS-базе, с известным корректным состоянием.
Истекший сертификат:
Блок кода Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertNSSTrustIPACAChainExpirationCheck", "result": "ERRORWARNING", "kw": { "keypath": "auditSigningCert cert-pki-ca/etc/ipa/ca.crt", "expectedkey": "u,u,PuCN=Certificate Authority,O=EXAMPLE.TEST", "gotdays": "u,u,u",2, "nicknamemsg": "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-базы (или файла).
CA '{key}' is expiring in {days} days." } }IPACertTracking
Сравнивает информацию отслеживания (tracking) сертификатов, полученную от certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.
Если отслеживание отсутствует:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertTracking", "Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertMatchCheck", "result": "ERROR", "kw": { "msgkey": "CA Certificate from /etccert-file=/var/lib/ipa/nssdb does not match /etc/ipa/ca.crt" } }
IPADogtagCertsMatchCheck
Проверяет, совпадают ли сертификаты Dogtag, присутствующие как в NSS-базе, так и в LDAP.
Блок кода title json { "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-базы. Выполняется команда certutil -V -u V -e -d [dbdir] -n [nickname].
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" } }Если отслеживается неизвестный сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPANSSChainValidationIPACertTracking", "result": "ERRORWARNING", "kw": { "key": "/etc/dirsrv/slapd-EXAMPLE-TEST:Server-Cert"1234, "nicknamemsg": "Server-Cert", "dbdir": [path to NSS database], "reason": "certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n: Unknown certmonger id 1234' } }IPACertNSSTrust
Сравнивает настройки доверия для сертификатов, хранящихся в NSS-базе, с известным корректным состоянием.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertNSSTrust", "result": "ERROR", "kw": { "key": "auditSigningCert cert-pki-ca", "expected": "u,u,Pu", "msggot": ""Validation of Server-Cert in /etc/dirsrv/slapd-EXAMPLE-TEST/ failed: certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n 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" } }
IPAOpenSSLChainValidation
Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem.
IPACertMatchCheck
Удостоверяется, что записи сертификата CA в LDAP совпадают с данными, полученными из NSS-базы (или файла).
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPAOpenSSLChainValidationIPACertMatchCheck", "result": "ERROR", "kw": { "keymsg": "/var/libCA Certificate from /etc/ipa/nssdb does not match /etc/ipa/ra-agentca.pemcrt", } }IPADogtagCertsMatchCheck
Проверяет, совпадают ли сертификаты Dogtag, присутствующие как в NSS-базе, так и в LDAP.
Блок кода title json { "reasonsource": "O = EXAMPLE.TEST, CN = IPA RA\nerror 20 at 0 depth lookup: unable to get local issuer certificate\n",ipahealthcheck.ipa.certs", "check": "IPADogtagCertsMatchCheck", "result": "ERROR", "kw": { "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'subsystemCert cert-pki-ca' certificate in NSS DB does not match entry in LDAP" } }
IPARAAgentIPANSSChainValidation
Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в LDAP.цепочку сертификатов, полученных из NSS-базы. Выполняется команда certutil -V -u V -e -d [dbdir] -n [nickname].
Блок кодаcode title json { "source": "ipahealthcheck.ipa.certs", "check": "IPARAAgentIPANSSChainValidation", "result": "ERROR", "kw": { "expectedkey": "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST/etc/dirsrv/slapd-EXAMPLE-TEST:Server-Cert", "gotnickname": "2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TESTServer-Cert", "msgdbdir": [path "RAto 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.
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.
Блок кода title json { "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Блок кода title json { "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
IPARAAgent
Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в LDAPПодтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertRevocationIPARAAgent", "result": "ERROR", "kw": { "keyexpected": 1234 "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST", "revocation_reasongot": "superseded2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST", "msg": "Certificate is revoked, superseded" } }IPACertmongerCA
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Проверяет корректность конфигурации CA в certmonger, анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertmongerCAIPAKRAAgent", "result": "ERROR", "kw": { "keyexpected": "dogtag-ipa-ca-renew-agent2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST", "msggot": "Certmonger CA 'dogtag-ipa-ca-renew-agent' missing" } }
Отвечает за проверку диапазона DNA (Domain Number Allocation), который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
ipahealthcheck.ipa.idnsРаскрыть IPADNARangeCheck
Это выводит настроенный диапазон DNA, если таковой имеется. Предполагается, что эта информация будет использоваться в сочетании с другими данными для дальнейшего анализа.
Блок кода title json { "source": "ipahealthcheck.ipa.dna", "check": "IPADNARangeCheck", "result": "SUCCESS", "kw": { "range_start": 1000, "range_max": 199999, "next_start": 0, "next_max": 0,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" } }
Производит диагностику системных DNS‑записей, необходимых для корректной работы инфраструктуры FreeIPA.IPACertRevocation
Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке
ipahealthcheck.ipa.filesРаскрыть
Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы.Раскрыть IPAFileNSSDBCheck
IPAFileCheck
TomcatFileCheck
Эти проверки проверяют владельца и режим файлов, установленных или настроенных IPA. Существует множество вариантов прав доступа к файлам и владельцев, которые могут быть допустимыми и продолжать работать. Здесь приведены ожидаемые значения для чистой установки IPA. Отклонения фиксируются на уровне WARNING.
Блок кода title json { "source": "ipahealthcheck.ipa.filescerts", "check": "IPAFileCheckIPACertRevocation", "result": "WARNINGERROR", "kw": { "key": 1234, "_etc_ipa_ca.crt_moderevocation_reason": "superseded", "pathmsg": "/etc/ipa/ca.crt", "type": "modeCertificate is revoked, superseded" } }IPACertmongerCA
Проверяет корректность конфигурации CA в certmonger, анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "expectedcheck": "0644IPACertmongerCA", "gotresult": "0444ERROR", "kw": { "msgkey": "Permissions of /etc/ipa/ca.crt are 0444 and should be 0644dogtag-ipa-ca-renew-agent", "msg": "Certmonger CA 'dogtag-ipa-ca-renew-agent' missing" } }
IPACertDNSSAN
Проверяет, что во всех действующих заявках certmonger на серверные сертификаты профиля
caIPAserviceCertдля CA присутствует DNS‑Subject Alt Name, совпадающий с FQDN текущего хоста.Блок кода title json { "source": "ipahealthcheck.ipa.filescerts", "check": "IPAFileNSSDBCheckIPACertDNSSAN", "result": "WARNINGERROR", "kwuuid": { "431c42c0-9396-4593-ad2b-09b40298ba1f", "keywhen": "_etc_dirsrv_slapd-EXAMPLE-TEST_pkcs11.txt_mode20240416115958Z", "pathduration": "/etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt0.904624", "kw": { "typekey": "mode20240318110910", "expectedhostname": "0640ipa-ca.example.com", "gotsan": [ "0666"ipa02.example.com" ], "msgca": "Permissions of /etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt are 0666 and should be 0640" } }
- ipahealthcheck.ipa.host
Выполняет проверку, связанную с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных служб (LDAP, HTTP, DNS и др.).Раскрыть IPAHostKeytab
Выполняет команду: kinit -kt /etc/krb5.keytab для проверки, что keytab хоста действителен.
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, и оповещает об «застрявших» запросах.
Блок кода title json { "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 (Domain Number Allocation), который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.Раскрыть IPADNARangeCheck
Это выводит настроенный диапазон DNA, если таковой имеется. Предполагается, что эта информация будет использоваться в сочетании с другими данными для дальнейшего анализа.
Блок кода title json { "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‑записей, необходимых для корректной работы инфраструктуры FreeIPA.Раскрыть IPADNSSystemRecordsCheck
Проверяет, что все обязательные системные DNS‑записи (SRV, URI, TXT и A/AAAA
ipa‑ca), перечисленные командойipa dns‑update‑system‑records --dry‑run, действительно расширяются через первый указанный в/etc/resolv.confсервер и содержат ровно те значения, которых ожидает FreeIPA.Блок кода title json { "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‑базы.Раскрыть IPAFileNSSDBCheck
IPAFileCheck
TomcatFileCheck
Эти проверки проверяют владельца и режим файлов, установленных или настроенных IPA. Существует множество вариантов прав доступа к файлам и владельцев, которые могут быть допустимыми и продолжать работать. Здесь приведены ожидаемые значения для чистой установки IPA. Отклонения фиксируются на уровне WARNING.
Блок кода title json { "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" } }
- ipahealthcheck.ipa.host
Выполняет проверку, связанную с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных служб (LDAP, HTTP, DNS и др.).Раскрыть IPAHostKeytab
Обеспечивает, что keytab для службы host (обычно
/etc/krb5.keytab) существует на сервере и позволяет получить Ticket‑Granting Ticket (TGT) через GSSAPI.Блок кода title json { "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) существует и позволяет получить билет.Блок кода title json { "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) существует и позволяет получить Ticket‑Granting Ticket (TGT) для аутентификации веб‑сервера.Блок кода title json { "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) существует и может получитьTicket‑Granting Ticket (TGT), но только если на хосте настроен DNS‑сервер IPA. При отсутствии записи вdns_server_serverпроверка пропускается.Блок кода title json { "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) существует и позволяет получить Ticket‑Granting Ticket (TGT), но только если хост настроен как DNS‑сервер IPA. При отсутствии записи вdns_server_serverпроверка пропускается.Блок кода title json { "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 (Kerberos Distribution Center), необходимых для работы аутентификации.Раскрыть KDCWorkersCheck
Проверяет, что в файле
/etc/default/krb5-kdcв параметреKRB5KDC_ARGSуказано число рабочих процессов (-w N), совпадающее с количеством онлайн‑ядер CPU на хосте. Если-wне задан и ядер больше одного, выдается предупреждение; еслиKRB5KDC_ARGSне найден, тоже — предупреждение.Блок кода title json { "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.Раскрыть IPAMetaCheck
Вызывает внутренний API FreeIPA для получения списка всех зарегистрированных IPA‑серверов и возвращает их метаданные простым массивом имён мастеров. Если при вызове возникает любое исключение, генерируется ошибка с кодом
ERRORБлок кода title json { "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‑подсистемы, например, правильное членство пользователей в группах, связанные с NSS‑базой.Раскрыть IPAGroupMemberCheck
Проверяет, что указанные системные POSIX‑группы содержат ожидаемых пользователей. В FreeIPA это нужно для разделения привилегий: например, чтобы веб‑сервер мог читать кэши учетных данных, создаваемые от имени ipaapi‑пользователя.
Блок кода title json { "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, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.
ipahealthcheck.ipa.kdcРаскрыть Проверяет, что секреты AJP (Apache JServ Protocol) коннектора Tomcat совпадают со значениями из
ProxyPassMatchв конфиге Apache (ipa-pki-proxy.conf), и что междуsecretиrequiredSecretнет противоречий.Блок кода title json { "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}" } }
Следит за состоянием рабочих процессов KDC (Kerberos Distribution Center), необходимых для работы аутентификации. ipahealthcheck.ipa.metaРаскрыть
Собирает общую информацию о сервере FreeIPA (например, FQDN, версии продукта), предоставляя обзор состояния системы. ipahealthcheck.ipa.nssРаскрыть
Проверяет корректность работы NSS‑подсистемы, например, правильное членство пользователей в группах, связанные с NSS‑базой. ipahealthcheck.ipa.proxyРаскрыть
Контролирует настройки IPA Proxy, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.expand
- ipahealthcheck.ipa.roles
Выполняет проверки, связанные с ролями сервера в инфраструктуре FreeIPA — определяет, является ли сервер мастером обновления сертификатов, CRL-менеджером, и проверяет связанные с этим параметры.Раскрыть IPACRLManagerCheck
IPARenewalMasterCheck
Набор информационных проверок для определения, является ли текущий мастер генератором CRL и/или мастером обновления.
Блок кода title json { "source": "ipahealthcheck.ipa.roles", "check": "IPACRLManagerCheck", "result": "SUCCESS", "kw": { "key": "crl_manager", "crlgen_enabled": true } } { "source": "ipahealthcheck.ipa.roles", "check": "IPARenewalMasterCheck", "result": "SUCCESS", "kw": { "key": "renewal_master", "master": true } }
- ipahealthcheck.ipa.topology
Проводит проверки топологии репликации и сетевой конфигурации, убеждаясь, что все серверы правильно настроены и данные синхронизируются корректно.Раскрыть Проверки топологии для проверки соответствия как рекомендациям, так и выявления ошибок.
IPATopologyDomainCheck
Предоставляет эквивалент команды: ipa topologysuffix-verify
При сбое возвращает обнаруженные ошибки, такие как ошибки подключения или слишком большое количество репликационных соглашений.
При успешном выполнении возвращаются настроенные домены.
Блок кода title json { "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "SUCCESS", "kw": { "suffix": "domain" } }, { "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "SUCCESS", "kw": { "suffix": "ca" } }
...