| Оглавление |
|---|
| Информация | ||
|---|---|---|
| ||
|
| Якорь | ||||
|---|---|---|---|---|
|
FreeIPA Health Check – инструмент ipa-healthcheck, предназначенный для диагностики состояния серверов FreeIPA. Используется администраторами доменов.
Запуск инструмента производится на настроенном контроллере ЕПП FreeIPA. Порядок установки и настройки контроллера см. в статье Контроллер ЕПП FreeIPA в Astra Linux.
...
Инструмент может проверять корректность работы:
- доверительных отношений (см. Настройка доверительных отношений FreeIPA - Active Directory),
- репликации (см. FreeIPA: настройка репликации),
- центра сертификации DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition).
...
| title | Терминология |
|---|
...
Термины
| Термин | Пояснение | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Источник (source) | Модуль или пространство имён для сбора данных (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA. | ||||||||||||
| Проверка (check) | Конкретная проверка в рамках источника (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA. | ||||||||||||
CLI | Аббревиатура от Command Line Interface. | ||||||||||||
| Сокращенное название проекта Dogtag Certificate System. | ||||||||||||
| Аббревиатура от Certificate System. | ||||||||||||
| Аббревиатура от Certificate Authority. | ||||||||||||
| Аббревиатура от Certificate Revocation List. | ||||||||||||
| Аббревиатура от Key Recovery Authority. | ||||||||||||
| Аббревиатуры от Directory Server <сокращенное название проверки> Lint Error. | ||||||||||||
| Главный файл конфигурации подсистемы DogTag CS. В DogTag подсистемы запускаются независимо, каждая со своим CS.cfg:
| ||||||||||||
| Аббревиатура от Domain Name System. | ||||||||||||
| Аббревиатура от Lightweight Directory Access Protocol. | ||||||||||||
| Аббревиатура от Network Security Services. | ||||||||||||
| Аббревиатура от Directory Server | ||||||||||||
| Аббревиатура от Replica Update Vector. | ||||||||||||
| Аббревиатура от Transport Layer Security (TLS) и Secure Sockets Layer (SSL). | ||||||||||||
| Служба для автоматического управления жизненным циклом сертификатов: генерирует запросы, отслеживает их, обновляет истекающие сертификаты и взаимодействует с центром сертификации для их продления. | ||||||||||||
|
...
Сертификат, для которого служба certmonger ведёт слежение по его параметрам и состоянию. В выводе команды getcert list такие сертификаты имеют статус MONITORING, что указывает на активное наблюдение за их сроком действия. При использовании DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition) |
...
служба certmonger по умолчанию |
...
отслеживает все |
...
сертификаты, выданные |
...
центром сертификации DogTag и выполняет их продление за 28 дней до окончания срока действия. Если DogTag не используется, то по умолчанию |
...
служба certmoner не отслеживает |
...
и |
...
| Command |
|---|
sudo ipa-getcert start-tracking -f /var/lib/ipa/certs/kdc.crt -k /var/lib/ipa/certs/kdc.key -C /usr/lib/ipa/certmonger/renew_kdc_cert |
- -f /path/to.crt указывает путь к файлу сертификата в формате PEM, который уже установлен на диске.
- -k /path/to.key указывает путь к файлу приватного ключа в PEM-формате.
- -C /path/to/hlp указывает путь к скрипту для продления сертификата.
| Предупреждение | ||
|---|---|---|
| ||
При ручном добавлении сертификата в отслеживание, certmonger лишь начинает за ним наблюдать, но автоматическое обновление происходит только через CA, сконфигурированный в certmonger. Если в системе нет ни одного CA (внутреннего DogTag или внешнего, зарегистрированного через getcert add-scep-ca или ipa-getcert), то при приближении срока истечения certmonger попытается продлить сертификат, но получит ошибку CA_UNREACHABLE и не обновит его автоматически. |
не продлевает сертификаты. Для ручного добавления сертификата в отслеживаемые см. Порядок включения сертификатов в отслеживаемые. | |||||||
| Аббревиатура от Fully Qualified Domain Name. | ||||||
| Аббревиатура от Key Distribution Center. |
...
Аббревиатура от Fully Qualified Domain Name.
Полное доменное имя узла, включающее все уровни DNS-иерархии (например, host.example.com).
...
аутентификацию клиентов и выдачу Ticket Granting Tickets и сервисных билетов (TGS) | |||||||||||||
| Аббревиатура от Ticket Granting Ticket. | ||||||||||||
| Аббревиатура от Distributed Numeric Assignment. | ||||||||||||
| Файл “key table” Kerberos, хранящий длинно-срочные ключи одного или нескольких принципалов. Используется сервисами для автоматической аутентификации без ввода пароля. | ||||||||||||
| Аббревиатура от Apache JServ Protocol. | ||||||||||||
| Схема взаимосвязей и соглашений репликации между IPA-серверами. | ||||||||||||
| Аббревиатура от Active Directory. | ||||||||||||
| RID (Аббревиатура от Relative Identifier) SID (Аббревиатура от Security Identifier) | ||||||||||||
| Аббревиатура от Identity, Policy, Audit. |
| Якорь | ||||
|---|---|---|---|---|
|
Инструмент ipa-healthcheck предоставляется пакетом freeipa-healthcheck. Пакет входит в расширенный репозиторий. Установить пакет можно используяГрафический менеджер пакетов synaptic, или из командной строки:
| Command |
|---|
sudo apt install freeipa-healthcheck |
После установки будут созданы:
- конфигурационный файл /etc/ipahealthcheck/ipahealthcheck.conf,
- служба-юнит ipa-healthcheck.service в systemd,
- служба-таймер ipa-healthcheck.timer в systemd,
- файл для автономного запуска службы ipa-healthcheck.service /usr/libexec/ipa/ipa-healthcheck.sh.
| Якорь | ||||
|---|---|---|---|---|
|
Файл конфигурации разделён как минимум на две секции:
- Секция [default]. В этой секции задаются значения параметров, влияющих на работу инструмента проверки состояния.
- Секция [excludes]. Эта секция используется для фильтрации или подавления определённых результатов по имени источника, имени проверки или конкретному ключу результата. Это особенно полезно для игнорирования известных незначительных проблем в окружении.
| Раскрыть | |||||
|---|---|---|---|---|---|
| |||||
Параметры в секции [default]
Параметры в секции [excludes]
|
Пример готовой конфигурации может выглядеть так:
| Блок кода | ||
|---|---|---|
| ||
[default]
cert_expiration_days = 7
timeout = 25
output_type = json
output_file = /var/log/ipa-health.log
indent = 2
verbose = True
severity = ERROR CRITICAL
debug = False
[excludes]
source = ipahealthcheck.ipa.certs
check = IPADNSSystemRecordsCheck |
| Якорь | ||||
|---|---|---|---|---|
|
Также все параметры конфигурации поддерживаются в виде аргументов при запуске из командой строки.
| Раскрыть | ||
|---|---|---|
| ||
Доступные параметры CLI
|
...
Примеры команд
- Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:
Command sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human - Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:
Command sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug - Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:
Command sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health
| Раскрыть | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Возможные варианты вывода варьируются от значения параметра output-type. См. Конфигурация и интеграция
|
| Предупреждение | ||
|---|---|---|
| ||
При запуске инструмент сначала загружает параметры из файла конфигурации, затем применяются параметры командной строки. Действуют следующие правила:
|
| Якорь | ||||
|---|---|---|---|---|
|
При установке пакета создаются два системных юнита:
- ipa-healthcheck.service -
...
- основная юнит-служба,
...
- которая запускает инструмент ipa‑healthcheck, выполняет проверки состояния установки FreeIPA и формирует отчёт об обнаруженных проблемах.
- ipa-healthcheck.timer - юнит-таймер, инициирующий запуск юнита-службы (ipa‑healthcheck.service) через заданные интервалы времени. Позволяет автоматизировать регулярное выполнение проверок для постоянного мониторинга системы.
По умолчанию ipa-healthcheck.timer при установке пакета уже активируется и начинает свою работу. Если же по какой-то причине таймер не был включён, нужно выполнить два действия:
- Зарегистрировать таймер для автоматического старта при загрузке системы. Следующая команда создаёт в systemd символьную ссылку на файл ipa-healthcheck.timer, чтобы этот таймер автоматически запускался при каждой загрузке операционной системы:
Command sudo systemctl enable ipa-healthcheck.timer - Запустить таймер немедленно. Следующая команда немедленно активирует и запускает таймер в текущем сеансе, не дожидаясь перезагрузки:
Command sudo systemctl start ipa-healthcheck.timer
Подробнее про таймеры systemd см. статью Использование таймеров systemd вместо заданий cron.
В файле /usr/libexec/ipa/ipa-healthcheck.sh можно указать, с какими параметрами командной строки будет запускаться служба ipa-healthcheck.service:
| Блок кода | ||
|---|---|---|
| ||
#!/bin/sh
LOGDIR=/var/log/ipa/healthcheck
/usr/bin/ipa-healthcheck --output-file $LOGDIR/healthcheck.log --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL |
| Предупреждение | ||||
|---|---|---|---|---|
| ||||
Файл /usr/libexec/ipa/ipa-healthcheck.sh перезаписывается при обновлении или переустановке пакета freeipa-healthcheck. Рекомендуется сделать резервную копию:
После обновления или переустановки пакета freeipa-healthcheck заменить автоматически созданный /usr/libexec/ipa/ipa-healthcheck.sh:
|
| Предупреждение | ||
|---|---|---|
| ||
Запуск службы ipa‑healthcheck.service может завершиться ошибкой (failed) если какая-либо тестовая проверка не выполнена. В этом случаедля диагностики следует просмотреть журнал службы с помощью команды:
|
| Якорь | ||||
|---|---|---|---|---|
|
Инструмент поддерживает следующие источники и входящие в них проверки:
...
- KRA.
Раскрыть title Проверки в источнике ipahealthcheck.dogtag.ca DogtagCertsConfigCheck
Сравнивает значение сертификатов центра сертификации (а также
...
KRA, если установлен) с значением, найденным в файле CS.cfg. Если значения не совпадают, то, вероятно, CS не сможет запуститься.
Блок кода title json { "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" для проверки базовой доступности.
Блок кода title json { "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‑хранилище)
Раскрыть title Проверки в источнике ipahealthcheck.ds.backends BackendsCheck
Выполняет проверку настройки backend‑инстанций DS и генерирующий 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‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.
Раскрыть title Проверки в источнике ipahealthcheck.ds.config ConfigCheck
Выполняет проверку конфигурации
...
DS. Ищет устаревшие, отсутствующие или некорректные параметры (например, небезопасные схемы хранения пароля, неподходящие диапазоны значений, дублирование опций), преобразуя результаты в стандартизированные 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.disk_space
Проверяет состояние свободного места на дисках, особенно на критичных разделах, таких как каталоги логов или резервных копий, чтобы предупредить о риске переполнения.Раскрыть title Проверки в источнике ipahealthcheck.ds.disk_space DiskSpaceCheck
Проверяет свободное место на ключевых томах DS и выдаёт ERROR, если свободного объёма меньше 1 024 МБ или свободного пространства менее 20%, и CRITICAL, если свободного пространства остаётся менее 10%.
Блок кода title json { "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.
Раскрыть title Проверки в источнике ipahealthcheck.ds.dse DSECheck
Контролирует рассинхронизацию времени между репликами
...
DS, считывая атрибут nsState из dse.ldif; выдаёт ERROR, если расхождение превышает 12 часов, и CRITICAL, когда оно выходит за предел 24 часов.
Блок кода title json { "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 не ниже 1.2; если версия ниже порога, возвращает ERROR, а при отсутствии раздела или невозможности подключиться к экземпляру
...
DS — CRITICAL.
Блок кода title json { "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: /etc/resolv.conf (должно быть 0644) и файлам pin.txt / pwdfile.txt в каталоге сертификатов
...
DS (должны быть 0400 или 0600); при несоответствии формирует отчёты DSPERMLE0001 или DSPERMLE0002 соответственно.
Блок кода title json { "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‑базу экземпляра DS: ищет сертификаты, срок действия которых истекает менее чем через 30 дней (код DSCERTLE0001, результат ERROR) или которые уже просрочены (код DSCERTLE0002, результат CRITICAL)
Блок кода title json { "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‑сервера.
Раскрыть title Проверки в источнике ipahealthcheck.ds.ds_plugins RIPluginCheck
Проверяет, что у плагина Referential Integrity параметр nsslapd‑referint‑update‑delay равен 0 (синхронный режим) и что для каждого атрибута из referint‑membership‑attr во всех пользовательских базах данных существует индекс равенства (nsIndexType=eq).
Блок кода title json { "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
Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений.Раскрыть title Проверки в источнике ipahealthcheck.ds.replication ReplicationCheck
Проверяет все объекты nsDS5ReplicationAgreement во всех репликационных репозиториях
...
DS: убеждается, что состояние соглашения (nsds5replicaEnabled=on, nsds5replicaLastUpdateStatus=0) и канал связи к удалённому хосту исправны, что счётчик отставания (
...
RUV) синхронизирован и нет поломанных либо отключённых соглашений. Также проверяет репликацию на конфликты.
Блок кода title json { "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‑changelogmaxage, nsslapd‑changelogmaxentries или nsslapd‑changelogtrim‑interval); при отсутствии trimming выдаёт отчёт DSCLLE0001.
Блок кода title json { "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
Следит за корректностью записей
...
...
LDAP‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.
Блок кода title json { "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), что помогает выявить устаревшие записи репликации.Блок кода title json { "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-базах и PEM-файлах, а также их соответствие записям в
...
- LDAP.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.certs IPACertmongerExpirationCheck
Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.
Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertmongerExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "expiration_date": "20160101001704Z", "msg": "Request id 1234 expired on 20160101001704Z" } }Сертификат, истекающий скоро:
Блок кода title json { "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 устарели по сравнению с сертификатом, находящимся на диске.
Если файл сертификата не может быть открыт:
Блок кода 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": "IPACertfileExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "dbdir": "/path/to/nssdb", "error": [error], "msg": "Unable to open NSS database '/path/to/nssdb': [error]" } }Если отслеживаемый никнейм не найден в
...
NSS-базе:
Блок кода title json { "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]" } }Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "expiration_date", "20160101001704Z", "msg": "Request id 1234 expired on 20160101001704Z" } }Сертификат, истекающий скоро:
Блок кода title json { "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).
Сертификат, истекающий скоро:
Блок кода title json { "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
Сравнивает информацию отслеживания сертификатов, полученную от
...
certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.
Предупреждение title Важно! По умолчанию FreeIPA на Astra Linux развёртывается без полноценного CA
...
. Генерируется ключевая пара CA (создаются закрытый ключ и самоподписанный сертификат открытого ключа), остальные сертификаты формируются через CSR и подписываются этим закрытым ключом CA, а их проверка выполняется по самоподписанному сертификату CA.
Поскольку в системе отсутствует как внутренний (DogTag), так и внешний CA, проверка IPACertTracking всегда будет завершаться с ERROR. Для исправления нужно начать отслеживать сертификат вручную
...
. Для дополнительной информации см.
...
Если отслеживание отсутствует:
Блок кода title json { "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" } }Если отслеживается неизвестный сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertTracking", "result": "WARNING", "kw": { "key": 1234, "msg": "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", "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-базы (или файла).
Блок кода title json { "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-базе, так и в
...
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
Информация title Справка Команда"certutil -V -u V -e -d [dbdir] -n [nickname]"проверяет указанный сертификат на валидность цепочки доверия и корректность подписи из NSS-базы.
-d [dbdir] и -n [nickname] — путь к базе и её псевдоним.
-V -u V -e — валидация по дате/флагам доверия и проверка подписи.Проверяет цепочку сертификатов, полученных из
...
NSS-базы. Выполняется команда "certutil -V -u V -e -d [dbdir] -n [nickname]".
Блок кода title json { "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, используя доверенный
...
CA-файл /etc/ipa/ca.crt.
Проверяет цепочку сертификатов для файлов 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" } }IPARAAgent
Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в
...
LDAP.
Блок кода title json { "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.
Блок кода 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
Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertRevocation", "result": "ERROR", "kw": { "key": 1234, "revocation_reason": "superseded", "msg": "Certificate is revoked, superseded" } }IPACertmongerCA
Проверяет корректность конфигурации CA в
...
certmonger, анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
Блок кода title json { "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 присутствует
...
DNS‑Subject Alt Name, совпадающий с FQDN текущего хоста.
Блок кода title json { "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, и оповещает об «застрявших» запросах.
Блок кода 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, который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.dna 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-записей без их фактического обновления в сервере
...
DNS.
Проверяет, что все обязательные системные
...
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‑базы.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.files 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" } } { "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 для различных служб.Раскрыть title Проверки в источнике ipahealthcheck.ipa.host IPAHostKeytab
Обеспечивает, что keytab для службы host (обычно /etc/krb5.keytab) существует на сервере и позволяет получить 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) существует и позволяет получить 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) существует и может получить
...
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) существует и позволяет получить
...
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, необходимых для работы аутентификации.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.kdc 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}" } }
...
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‑подсистемы.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.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, включая проверку корректности секретного ключа.Раскрыть title Проверки в источнике ipahealthcheck.ipa.proxy IPAProxySecretCheckПроверяет, что секреты
...
AJP-коннектора 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}" } }
- ipahealthcheck.ipa.roles
Выполняет проверки, связанные с ролями сервера в инфраструктуре FreeIPA — определяет, является ли сервер мастером обновления сертификатов, CRL-менеджером, и проверяет связанные с этим параметры.Раскрыть title Проверки в источнике ipahealthcheck.ipa.roles 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 } }IPARenewalMasterHasKRACheck
Определяет, является ли текущий узел сервером обновления сертификатов CA и проверяет, установлена ли на нём служба
...
KRA.
Блок кода
title json { "source": "ipahealthcheck.ipa.roles", "check": "IPARenewalMasterHasKRACheck", "result": "CRITICAL", "uuid": "3f2d4a6b-7c8e-4d9f-8b2a-1e5f6c7d8e9f", "when": "20250422091500Z", "duration": "0.023456", "kw": { "key": "kra_renewal_master", "msg": "There are KRA(s) in the topology but not on the renewal server. The KRA service certificates will not be renewed." } }
- ipahealthcheck.ipa.topology
Проводит проверки топологии репликации и сетевой конфигурации.Раскрыть title Проверки в источнике ipahealthcheck.ipa.topology Проверки топологии для проверки соответствия как рекомендациям, так и выявления ошибок.
IPATopologyDomainCheck
Информация title Справка Команда "ipa topologysuffix-verify [suffix]" проверяет целостность топологии репликации для указанного суффикса.
Предоставляет эквивалент команды: "ipa topologysuffix-verify [suffix]".
При сбое возвращает обнаруженные ошибки, такие как ошибки подключения или слишком большое количество репликационных соглашений.
При успешном выполнении возвращаются настроенные домены.
Блок кода title json { "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "SUCCESS", "kw": { "suffix": "domain" } }, { "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "SUCCESS", "kw": { "suffix": "ca" } }
- ipahealthcheck.ipa.trust
Отвечает за диагностику доверительных отношений с
...
- AD, проверяя настройки доверительных-агентов, списки доверенных доменов, корректность конфигураций принципалов, членство в группах и наличие необходимых пакетов.
Раскрыть title Проверки в источнике ipahealthcheck.ipa.trust Проверка общих проблем конфигурации доверительных отношений
...
AD.
Проверки вернут статус SUCCESS, если система не настроена как агент доверия или контроллер.IPATrustAgentCheck
Проверка конфигурации SSSD, когда машина настроена в качестве агента доверия.
Параметр provider должен иметь значение ipa, а ipa_server_mode – быть установлен в true.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustAgentCheck", "severity": ERROR, "kw": { "key": "ipa_server_mode_false", "attr": "ipa_server_mode", "sssd_config": "/etc/sssd/sssd.conf", "domain": "ipa.example.com", "msg": "{attr} is not True in {sssd_config} in the domain {domain}" } }IPATrustDomainsCheck
Информация title Справка Команда "sssctl domain-list" выводит список всех доменов, к которым SSSD подключён, включая доверенные домены.
Проверяет, что домен IPA присутствует в выводе команды "sssctl domain-list", а домены доверия совпадают с доменами, указанными в SSSD.
Если списки доменов не совпадают:
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustDomainsCheck", "result": "ERROR", "kw": { "key": "domain-list", "sslctl": "/usr/sbin/sssctl", "sssd_domains": "ad.vm", "trust_domains": "", "msg": "{sslctl} {key} reports mismatch: sssd domains {sssd_domains} trust domains {trust_domains}" } }IPATrustCatalogCheck
Информация title Справка Команда "sssctl domain-status" проверяет доступность и состояние указанного домена SSSD на клиенте.
Проверка, разрешающая имя пользователя
...
AD, например, Administrator@REALM. Эта операция заполняет значения глобального каталога AD и контроллера домена AD в выводе команды "sssctl domain-status".
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustCatalogCheck", "result": "ERROR", "kw": { "key": "AD Global Catalog", "output": "Active servers:\nAD Domain Controller: root-dc.ad.vm\nIPA: ipa.example.com", "sssctl": "/usr/sbin/sssctl", "domain": "ad.vm", "msg": "{key} not found in {sssctl} 'domain-status' output: {output}" } }IPAsidgenpluginCheck
Проверяет, что плагин sidgen включен в экземпляре IPA 389-ds.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPAsidgenpluginCheck", "result": "ERROR", "kw": { "key": "IPA SIDGEN", "error": "no such entry", "msg": "Error retrieving 389-ds plugin {key}: {error}" } }IPATrustAgentMemberCheck
Проверяет, что текущий хост является членом группы cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustAgentMemberCheck", "result": "ERROR", "kw": { "key": "ipa.example.com", "group": "adtrust agents", "msg": "{key} не является членом {group}" } }IPATrustControllerPrincipalCheck
Проверяет, что основной cifs-принципал текущего хоста является членом группы cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustControllerPrincipalCheck", "result": "ERROR", "kw": { "key": "cifs/ipa.example.com@EXAMPLE.COM", "group": "adtrust agents", "msg": "{key} is not a member of {group}" } }IPATrustControllerServiceCheck
Проверяет, что на текущем хосте запущена служба ADTRUST в рамках ipactl.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustControllerServiceCheck", "result": "ERROR", "kw": { "key": "ADTRUST", "msg": "{key} service is not enabled" } }IPATrustControllerConfCheck
Информация title Справка Команда "net conf list" выводит все параметры конфигурации Samba, хранящиеся в реестре, в формате, похожем на smb.conf.
Проверяет, что для backend passdb в выводе команды "net conf list" включён ldapi.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustControllerConfCheck", "result": "ERROR", "kw": { "key": "net conf list", "got": "", "expected": "ipasam:ldapi://%2fvar%2frun%2fslapd-EXAMPLE-COM.socket", "option": "passdb backend", "msg": "{key} option {option} value {got} doesn't match expected value {expected}" } }IPATrustControllerGroupSIDCheck
Проверяет, что SID группы администраторов заканчивается на 512 (RID для Domain Admins).
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustControllerGroupSIDCheck", "result": "ERROR", "kw": { "key": "ipantsecurityidentifier", "rid": "S-1-5-21-1078564529-1875285547-1976041503-513", "msg": "{key} is not a Domain Admins RID" } }IPATrustPackageCheck
Если система не является контроллером доверия и доверительные отношения AD включены, проверяется наличие установленного пакета trust‑ad.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustPackageCheck", "result": "WARNING", "kw": { "key": "adtrustpackage", "msg": "trust-ad sub-package is not installed. Administration will be limited." } }IPADomainCheck
Проверяет, что провайдер домена IPA в SSSD настроен на использование «ipa»: читает секцию домена для текущего
...
IPA‑домена в файле /etc/sssd/sssd.conf, убеждается, что в ней присутствуют опции id_provider, auth_provider, chpass_provider и access_provider, и что их значение равно
"ipa"; в противном случае возвращает ERROR, а при успешной проверке — SUCCESS.Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPADomainCheck", "result": "SUCCESS", "uuid": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", "when": "20220427190310Z", "duration": "0.012345", "kw": { "key": "domain-check" } }IPATrustControllerAdminSIDCheck
Проверяет, что SID учётной записи admin в доверенном контроллере завершается на 500: выполняет
...
LDAP‑запрос к записи uid=admin, атрибуту ipantsecurityidentifier, и возвращает ERROR, если идентификатор отсутствует или не оканчивается на 500 (с ключом ipantsecurityidentifier и полем rid), иначе — SUCCESS.
Блок кода title json { "source": "ipahealthcheck.ipa.trust", "check": "IPATrustControllerAdminSIDCheck", "result": "ERROR", "uuid": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f90", "when": "20250422101530Z", "duration": "0.018234", "kw": { "key": "ipantsecurityidentifier", "rid": "S-1-5-21-123456789-123456789-123456789-501", "msg": "ipantsecurityidentifier is not a Domain Admin RID" } }
- ipahealthcheck.meta.core
Собирает основную информацию о FreeIPA-сервере, которая используется для формирования общего отчёта о состоянии системы.Раскрыть title Проверки в источнике ipahealthcheck.meta.core MetaCheck
Предоставляет базовую информацию о самом
...
...
IPA.
Блок кода title json { "source": "ipahealthcheck.meta.core", "check": "MetaCheck", "result": "SUCCESS", "kw": { "fqdn": "ipa.example.test", "ipa_version": "4.8.0", "ipa_api_version": "2.233" } }
- ipahealthcheck.meta.services
Контролирует состояние основных служб FreeIPA (таких как certmonger, dirsrv, httpd, sssd и др.) и сигнализирует о сбоях или остановке их работы.Раскрыть title Проверки в источнике ipahealthcheck.meta.services Возвращает статус состояния необходимых
...
IPA-служб
Следующие службы отслеживаются:
- certmonger
- dirsrv
- gssproxy
- httpd
- ipa_custodia
- ipa_otpd
- kadmin
- krb5kdc
- named
- ods_enforcerd
- ipa_ods_exporter
- ipa_dnskeysyncd
- pki_tomcatd
- sssd
- chronyd
- smb
- winbind
Значение поля check соответствует имени
...
IPA-сервиса. Обратите внимание, что в именах службы дефисы заменяются на символы подчеркивания.
Пример остановленного сервиса:
Блок кода title json { "source": "ipahealthcheck.meta.services", "check": "httpd", "result": "ERROR", "kw": { "status": false, "msg": "httpd: not running" } }
- ipahealthcheck.system.filesystemspace
Анализирует свободное место на дисковых разделах, ключевых для работы системы FreeIPA, предупреждая о риске нехватки пространства.Раскрыть title Проверки в источнике ipahealthcheck.system.filesystemspace Проверка доступного дискового пространства.
Низкий уровень свободного места может вызвать проблемы с логированием, выполнением операций и резервным копированием.FileSystemSpaceCheck
Проверяются как процентное, так и абсолютное минимальное значение свободного места. В зависимости от точек монтирования возможно некоторое пересечение проверок. Минимальное свободное пространство составляет 20% и в настоящее время задано жёстко.
Проверяются следующие пути:
/var/lib/dirsrv/ – 1024 МБ свободного места
/var/lib/ipa/backup/ – 512 МБ свободного места
/var/log/ – 1024 МБ свободного места
/var/log/audit/ – 512 МБ свободного места
/var/tmp/ – 512 МБ свободного места
/tmp/ – 512
...
МБ свободного места
Например, полностью заполненный /tmp/ будет отображаться следующим образом:
Блок кода title json { "source": "ipahealthcheck.system.filesystemspace", "check": "FileSystemSpaceCheck", "result": "ERROR", "kw": { "msg": "/tmp: free space percentage under threshold: 0% < 20%", "store": "/tmp", "percent_free": 0, "threshold": 20 } }, { "source": "ipahealthcheck.system.filesystemspace", "check": "FileSystemSpaceCheck", "result": "ERROR", "kw": { "msg": "/tmp: free space under threshold: 0 MiB < 512 MiB", "store": "/tmp", "free_space": 0, "threshold": 512 } }
С полным списком доступных источников и входящих в них проверок можно также ознакомиться при помощи команды:
| Command |
|---|
sudo ipa-healthcheck --list-sources |
Любой из источников и/или проверок может быть указан в виде аргументов для запуска из командной строки и/или при использовании файла конфигурации. См. Конфигурация и интеграция
Якорь Сертификаты Сертификаты
Порядок включения сертификатов в отслеживаемые
| Сертификаты | |
| Сертификаты |
Сертификаты пользовательские, выданные внешним CA или вручную загруженные необходимо сделать отслеживаемыми используя следующую команду (на примере сертификата службы KDC):
| Command |
|---|
sudo ipa-getcert start-tracking -f /var/lib/ipa/certs/kdc.crt -k /var/lib/ipa/certs/kdc.key -C /usr/lib/ipa/certmonger/renew_kdc_cert |
- -f /path/to.crt указывает путь к файлу сертификата в формате PEM, который уже установлен на диске.
- -k /path/to.key указывает путь к файлу приватного ключа в PEM-формате.
- -C /path/to/hlp указывает путь к скрипту для продления сертификата.
| Предупреждение | ||
|---|---|---|
| ||
При ручном добавлении сертификата в отслеживание, служба certmonger лишь начинает за ним наблюдать, но автоматическое обновление происходит только через CA, сконфигурированный в certmonger. Если в системе нет ни одного CA (внутреннего DogTag или внешнего, зарегистрированного через getcert add-scep-ca или ipa-getcert), то при приближении срока истечения служба certmonger попытается продлить сертификат, но получит ошибку CA_UNREACHABLE и не обновит его автоматически. |
При приближении срока истечения отслеживаемого сертификата инструмент ipa-healthcheck будет выводить в своём отчёте предупреждения следующего вида
...
:
| Блок кода | ||
|---|---|---|
| ||
{
"source": "ipahealthcheck. |
...
ipa. |
...
certs", "check": " |
...
IPACertfileExpirationCheck", "result": " |
...
WARNING", " |
...
uuid": |
...
"4e4aaa12-f193-4af2-b9b1-dccd2eac18a2", |
...
" |
...
when": " |
...
20350402213105Z", "duration": "0.009759", "kw": { " |
...
key": " |
...
20250425091326", " |
...
expiration_ |
...
date": |
...
"20350423085816Z", " |
...
days": 20, |
...
" |
...
msg": " |
...
С полным списком доступных источников и входящих в них проверок можно также ознакомиться при помощи команды:
| Command |
|---|
sudo ipa-healthcheck --list-sources |
...
Request id {key} expires in {days} days. certmonger should renew this automatically. Watch the status withgetcert list -i {key}."
}
} |
| Предупреждение | ||
|---|---|---|
| ||
Обратите внимание, что в инструменте ipa-healthcheck порог, при достижении которого генерируется предупреждение об истечении отслеживаемого сертификата, задаётся параметром cert_expiration_days. Для дополнительной информации см. Конфигурация и интеграция. |
| Информация | ||
|---|---|---|
| ||
Журнал службы certmonger для дальнейшей диагностики можно просмотреть с помощью команды:
|
В свою очередь certmonger записывает в журнал службы предупреждение следующего вида:
| Блок кода | ||
|---|---|---|
| ||
апр 29 16:00:50 ipasrv.ipadomain.loc certmonger[2754]: Certificate in file "/var/lib/ipa/certs/kdc.crt" will not be valid after 2035-04-23 11:58:16 MSK. |