...
FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA.
Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA.
Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.
Цели использования:
Обеспечение устойчивости работы серверов FreeIPA.
Выявление потенциальных ошибок в настройке.
Контроль состояния репликации и конфигурации Kerberos.
Своевременное оповещение о сбоях и нарушениях в системе.
Описание стенда
Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:
...
Также утилита может проверять корректность работы реплик и , доверительных отношений, центра сертификации. Порядок установки см. в статьях:
- Настройка доверительных отношений FreeIPA - Active Directory
- FreeIPA: настройка репликации
- FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition
Установка пакета
Пакет freeipa-healthcheck входит в репозитории Astra Linux. Установить необходимый пакет можно используяГрафический менеджер пакетов synaptic, или из командной строки:
...
| Раскрыть | ||
|---|---|---|
| ||
Параметры в разделе [default]
Параметры в разделе [excludes]
|
...
Также все параметры конфигурации поддерживаются в виде аргументов при запуске из командой строки.
| Раскрыть | ||
|---|---|---|
| ||
Аргументы командной строки
|
...
| Блок кода | ||
|---|---|---|
| ||
sudo systemctl enable ipa-healthcheck.timer && sudo systemctl start ipa-healthcheck.timer |
...
| Предупреждение | |||||
|---|---|---|---|---|---|
| |||||
Запуск службы ipa‑healthcheck.service через systemd может завершиться статусом failed, если какая-либо тестовая проверка не выполнена. В этом случае утилита возвращает ненулевой код, а для диагностики стоит просмотреть логи журнал службы с помощью команды:
|
...
- ipahealthcheck.ipa.trust
Отвечает за диагностику доверительных отношений (trust) с Active Directory, проверяя настройки trust-агентов, списки доверенных доменов, корректность конфигураций principal, членство в группах и наличие необходимых пакетов.Раскрыть Проверка общих проблем конфигурации доверительных отношений 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
Проверяет, что домен 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
Проверка, разрешающая имя пользователя 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
Проверяет, что для 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.corcore
Собирает основную информацию о FreeIPA-сервере, которая используется для формирования общего отчёта о состоянии системы.Раскрыть MetaCheck
Предоставляет базовую информацию о самом IPA-мастере. Вывод включает FQDN и версию 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" } }
...