FreeIPA Health Check – инструмент ipa-healthcheck, предназначенный для диагностики состояния серверов FreeIPA. Используется администраторами доменов.
Запуск инструмента производится на настроенном контроллере ЕПП FreeIPA. Порядок установки и настройки контроллера см. в статье Контроллер ЕПП FreeIPA в Astra Linux.
Также инструмент может проверять корректность работы:
В таблице перечислены все специальные термины и аббревиатуры, применяемые в статье, с их пояснениями.
|
Инструмент ipa-healthcheck предоставляется пакетом freeipa-healthcheck. Пакет входит в расширенный репозиторий. Установить пакет можно используя Графический менеджер пакетов synaptic, или из командной строки:
sudo apt install freeipa-healthcheck |
После установки будут созданы:
Файл конфигурации разделён как минимум на две секции:
Параметры в секции [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:
|
Пример готовых команд:
sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human |
sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug |
sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health |
Возможные варианты вывода варьируются от значения параметра output-type. См. Конфигурация и интеграция
|
При запуске инструмент сначала загружает параметры из файла конфигурации, затем применяются параметры командной строки. Действуют следующие правила:
|
При установке пакета создаются два системных юнита:
По умолчанию ipa-healthcheck.timer при установке пакета уже активируется и начинает свою работу. Если же по какой-то причине таймер не был включён, нужно выполнить два действия:
sudo systemctl enable ipa-healthcheck.timer |
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) если какая-либо тестовая проверка не выполнена. В этом случае для диагностики следует просмотреть журнал службы с помощью команды:
|
Инструмент поддерживает следующие источники и входящие в них проверки:
DogtagCertsConfigCheck Сравнивает значение сертификатов центра сертификации (а также FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], если установлен) с значением, найденным в файле CS.cfg. Если значения не совпадают, то, вероятно, CS не сможет запуститься.
DogtagCertsConnectivityCheck
Выполняет эквивалент команды
|
BackendsCheck Выполняет проверку настройки backend‑инстанций DS и генерирующий DSBLE‑коды при обнаружении нарушений конфигурации или работы базы данных.
|
ConfigCheck Выполняет проверку конфигурации FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. Ищет устаревшие, отсутствующие или некорректные параметры (например, небезопасные схемы хранения пароля, неподходящие диапазоны значений, дублирование опций), преобразуя результаты в стандартизированные DSCLE‑коды
|
DiskSpaceCheck Проверяет свободное место на ключевых томах DS и выдаёт ERROR, если свободного объёма меньше 1 024 МБ или свободного пространства менее 20 %, и CRITICAL, если свободного пространства остаётся менее 10 %.
|
DSECheck Контролирует рассинхронизацию времени между репликами FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], считывая атрибут
|
EncryptionCheck Проверяет, что в разделе
|
FSCheck Проверяет права доступа к ключевым файлам FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]:
|
NssCheck Проверяет FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑базу экземпляра DS: ищет сертификаты, срок действия которых истекает менее чем через 30 дней (код DSCERTLE0001, результат ERROR) или которые уже просрочены (код DSCERTLE0002, результат CRITICAL)
|
RIPluginCheck Проверяет, что у плагина Referential Integrity параметр
|
ReplicationCheck Проверяет все объекты
ReplicationChangelogCheck Проверяет, что у журнала репликации
|
RUVCheck Извлекает текущий (локальный) RUV для основного FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.
KnownRUVCheck Сканирует записи из tombstone, содержащие атрибут
|
IPACertmongerExpirationCheck Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение. Истекший сертификат:
Сертификат, истекающий скоро:
IPACertfileExpirationCheck Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске. Если файл сертификата не может быть открыт:
Если FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-база не может быть открыта:
Если отслеживаемый никнейм не найден в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе:
Истекший сертификат:
Сертификат, истекающий скоро:
IPACAChainExpirationCheck Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt). Сертификат, истекающий скоро:
Истекший сертификат:
IPACertTracking Сравнивает информацию отслеживания (tracking) сертификатов, полученную от FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой. Если отслеживание отсутствует:
Если отслеживается неизвестный сертификат:
IPACertNSSTrust Сравнивает настройки доверия для сертификатов, хранящихся в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, с известным корректным состоянием.
IPACertMatchCheck Удостоверяется, что записи сертификата CA в LDAP совпадают с данными, полученными из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы (или файла).
IPADogtagCertsMatchCheck Проверяет, совпадают ли сертификаты DogTag, присутствующие как в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, так и в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
IPANSSChainValidation Проверяет цепочку сертификатов, полученных из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы. Выполняется команда
IPAOpenSSLChainValidation Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда
IPARAAgent Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
IPAKRAAgent Проверяет соответствие описания и значения атрибута userCertificate для FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
IPACertRevocation Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.
IPACertmongerCA Проверяет корректность конфигурации CA в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
IPACertDNSSAN Проверяет, что во всех действующих заявках certmonger на серверные сертификаты профиля caIPAserviceCert для CA присутствует FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑Subject Alt Name, совпадающий с FQDN текущего хоста.
CertmongerStuckCheck Ищет заявки FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], у которых статус stuck = true, и оповещает об «застрявших» запросах.
|
IPADNARangeCheck Это выводит настроенный диапазон FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], если таковой имеется. Предполагается, что эта информация будет использоваться в сочетании с другими данными для дальнейшего анализа.
|
IPADNSSystemRecordsCheck Проверяет, что все обязательные системные FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑записи (SRV, URI, TXT и A/AAAA
|
IPAFileNSSDBCheck IPAFileCheck TomcatFileCheck Эти проверки проверяют владельца и режим файлов, установленных или настроенных FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. Существует множество вариантов прав доступа к файлам и владельцев, которые могут быть допустимыми и продолжать работать. Здесь приведены ожидаемые значения для чистой установки FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. Отклонения фиксируются на уровне WARNING.
|
IPAHostKeytab Обеспечивает, что keytab для службы host (обычно
DSKeytab Обеспечивает, что keytab для службы ldap (обычно
HTTPKeytab Обеспечивает, что keytab для службы HTTP (обычно
DNSKeytab Проверяет, что keytab для службы DNS (обычно
DNS_keysyncKeytab Проверяет, что keytab для службы ipa-dnskeysyncd (обычно
|
KDCWorkersCheck Проверяет, что в файле
|
IPAMetaCheck Вызывает внутренний API FreeIPA для получения списка всех зарегистрированных FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑серверов и возвращает их метаданные простым массивом имён мастеров. Если при вызове возникает любое исключение, генерируется ошибка с кодом ERROR
|
IPAGroupMemberCheck Проверяет, что указанные системные POSIX‑группы содержат ожидаемых пользователей. В FreeIPA это нужно для разделения привилегий: например, чтобы веб‑сервер мог читать кэши учетных данных, создаваемые от имени ipaapi‑пользователя.
|
IPAProxySecretCheck Проверяет, что секреты FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-коннектора Tomcat совпадают со значениями из ProxyPassMatch в конфиге Apache (ipa-pki-proxy.conf), и что между secret и requiredSecret нет противоречий.
|
IPACRLManagerCheck IPARenewalMasterCheck Набор информационных проверок для определения, является ли текущий мастер генератором CRL и/или мастером обновления.
IPARenewalMasterHasKRACheck Определяет, является ли текущий узел сервером обновления сертификатов CA и проверяет, установлена ли на нём служба FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
|
Проверки топологии для проверки соответствия как рекомендациям, так и выявления ошибок. IPATopologyDomainCheck Предоставляет эквивалент команды: ipa topologysuffix-verify При сбое возвращает обнаруженные ошибки, такие как ошибки подключения или слишком большое количество репликационных соглашений. При успешном выполнении возвращаются настроенные домены.
|
Проверка общих проблем конфигурации доверительных отношений FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]. IPATrustAgentCheck Проверка конфигурации sssd, когда машина настроена в качестве агента доверия. Параметр provider должен иметь значение ipa, а ipa_server_mode – быть установлен в true.
IPATrustDomainsCheck Проверяет, что домен IPA присутствует в выводе команды Если списки доменов не совпадают:
IPATrustCatalogCheck Проверка, разрешающая имя пользователя FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], например, Administrator@REALM. Эта операция заполняет значения глобального каталога AD и контроллера домена AD в выводе команды
IPAsidgenpluginCheck Проверяет, что плагин sidgen включен в экземпляре IPA 389-ds.
IPATrustAgentMemberCheck Проверяет, что текущий хост является членом группы cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX.
IPATrustControllerPrincipalCheck Проверяет, что основной cifs-принципал текущего хоста является членом группы cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX.
IPATrustControllerServiceCheck Проверяет, что на текущем хосте запущена служба ADTRUST в рамках ipactl.
IPATrustControllerConfCheck Проверяет, что для backend passdb в выводе команды
IPATrustControllerGroupSIDCheck Проверяет, что SID группы администраторов заканчивается на 512 (RID для Domain Admins).
IPATrustPackageCheck Если система не является контроллером доверия и доверительные отношения AD включены, проверяется наличие установленного пакета trust‑ad.
IPADomainCheck Проверяет, что провайдер домена IPA в SSSD настроен на использование «ipa»: читает секцию домена для текущего FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑домена в файле /etc/sssd/sssd.conf, убеждается, что в ней присутствуют опции id_provider, auth_provider, chpass_provider и access_provider, и что их значение равно
IPATrustControllerAdminSIDCheck Проверяет, что SID учётной записи admin в доверенном контроллере завершается на 500: выполняет FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑запрос к записи uid=admin, атрибуту ipantsecurityidentifier, и возвращает ERROR, если идентификатор отсутствует или не оканчивается на 500 (с ключом ipantsecurityidentifier и полем rid), иначе — SUCCESS.
|
MetaCheck Предоставляет базовую информацию о самом FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-мастере. Вывод включает FQDN и версию FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
|
Возвращает статус состояния необходимых FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-служб Следующие службы отслеживаются:
Значение поля check соответствует имени FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-сервиса. Обратите внимание, что в именах службы дефисы заменяются на символы подчеркивания. Пример остановленного сервиса:
|
Проверка доступного дискового пространства. FileSystemSpaceCheck Проверяются как процентное, так и абсолютное минимальное значение свободного места. В зависимости от точек монтирования возможно некоторое пересечение проверок. Минимальное свободное пространство составляет 20% и в настоящее время задано жёстко. Проверяются следующие пути: /var/lib/dirsrv/ – 1024 МБ свободного места /var/lib/ipa/backup/ – 512 МБ свободного места /var/log/ – 1024 МБ свободного места /var/log/audit/ – 512 МБ свободного места /var/tmp/ – 512 МБ свободного места /tmp/ – 512 МБ свободного места Например, полностью заполненный /tmp/ будет отображаться следующим образом:
|
С полным списком доступных источников и входящих в них проверок можно также ознакомиться при помощи команды:
sudo ipa-healthcheck --list-sources |
Любой из источников и/или проверок может быть указан в виде аргументов для запуска из командной строки и/или при использовании файла конфигурации. См. Конфигурация и интеграция