FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA.
Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA.
Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.
Цели использования:
Обеспечение устойчивости работы серверов FreeIPA.
Выявление потенциальных ошибок в настройке.
Контроль состояния репликации и конфигурации Kerberos.
Своевременное оповещение о сбоях и нарушениях в системе.
Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:
Также утилита может проверять корректность работы реплик и доверительных отношений. Порядок установки см. в статьях:
Пакет freeipa-healthcheck входит в репозитории Astra Linux. Установить необходимый пакет можно используя Графический менеджер пакетов synaptic, или из командной строки:
sudo apt install freeipa-healthcheck |
После установки будут созданы конфигурационный файл /etc/ipahealthcheck/ipahealthcheck.conf и службы ipa-healthcheck.service и ipa-healthcheck.timer в systemd.
Файл конфигурации разделён как минимум на два раздела:
Параметры в разделе [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 |
Также все параметры конфигурации поддерживаются в виде аргументов командой строки.
Аргументы командной строки
|
Пример готовых команд может выглядеть так:
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 |
При запуске инструмент сначала загружает опции из файла конфигурации, затем применяются опции командной строки. |
После установки пакета в systemd появятся два системных юнита:
Порядок настройки таймеров в Astra Linux см. в статье:
Запуск таймера в системе производится так:
sudo systemctl enable ipa-healthcheck.timer && sudo systemctl start ipa-healthcheck.timer |
Эта команда включает автоматический запуск таймера и инициирует его немедленный старт.
В файле /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 |
Кроме передачи опций через командную строку, параметры работы ipa‑healthcheck можно задать и в конфигурационном файле. См. Конфигурация и интеграция
Запуск службы ipa‑healthcheck.service через systemd может завершиться статусом failed, если какая-либо тестовая проверка не выполнена. В этом случае утилита возвращает ненулевой код, а для диагностики стоит просмотреть логи с помощью команды:
|
Программа поддерживает следующие проверки:
DogtagCertsConfigCheck Сравнивает значение сертификатов центра сертификации (а также KRA, если установлен) с значением, найденным в файле CS.cfg. Если значения не совпадают, то, вероятно, CS не сможет запуститься.
DogtagCertsConnectivityCheck Выполняет эквивалент команды
|
BackendsCheck Выполняет автоматическую lint‑проверку настройки backend‑инстанций Directory Server и генерирующий DSBLE‑коды при обнаружении нарушений конфигурации или работы БД.
|
ConfigCheck Выполняет автоматическую lint‑проверку конфигурации Directory Server. Ищет устаревшие, отсутствующие или некорректные параметры (например, небезопасные схемы хранения пароля, неподходящие диапазоны значений, дублирование опций), преобразуя результаты в стандартизированные DSBLE/DSCLE‑коды
|
DiskSpaceCheck Проверяет свободное место на ключевых томах Directory Server и выдаёт ERROR или CRITICAL, если свободный объём опускается ниже абсолютного порога (1 024 МБ) или процент свободного пространства оказывается ниже 20%
|
DSECheck Контролирует рассинхронизацию времени между репликами Directory Server, считывая атрибут
|
EncryptionCheck Проверяет, что в разделе
|
FSCheck Проверяет права доступа к ключевым файлам Directory Server:
|
NssCheck Проверяет NSS‑базу экземпляра Directory Server: ищет сертификаты, срок действия которых истекает менее чем через 30 дней (код DSCERTLE0001, результат ERROR) или которые уже просрочены (код DSCERTLE0002, результат CRITICAL)
|
RIPluginCheck Проверяет, что у плагина Referential Integrity параметр
|
ReplicationConflictCheck Ищет записи в LDAP, соответствующие фильтру (&(!(objectclass=nstombstone))(nsds5ReplConflict=*))
|
RUVCheck Извлекает текущий (локальный) RUV для основного LDAP‑суффикса и для суффикса Dogtag CA и возвращает их как единичные значения.
KnownRUVCheck Сканирует записи из tombstone, содержащие атрибут
|
IPACertmongerExpirationCheck Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение. Истекший сертификат:
Сертификат, истекающий скоро:
IPACertfileExpirationCheck Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске. Если файл сертификата не может быть открыт:
Если NSS-база не может быть открыта:
Если отслеживаемый никнейм не найден в NSS-базе:
Истекший сертификат:
Сертификат, истекающий скоро:
IPACAChainExpirationCheck Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt). Сертификат, истекающий скоро:
Истекший сертификат:
IPACertTracking Сравнивает информацию отслеживания (tracking) сертификатов, полученную от certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой. Если отслеживание отсутствует:
Если отслеживается неизвестный сертификат:
IPACertNSSTrust Сравнивает настройки доверия для сертификатов, хранящихся в NSS-базе, с известным корректным состоянием.
IPACertMatchCheck Удостоверяется, что записи сертификата CA в LDAP совпадают с данными, полученными из NSS-базы (или файла).
IPADogtagCertsMatchCheck Проверяет, совпадают ли сертификаты Dogtag, присутствующие как в NSS-базе, так и в LDAP.
IPANSSChainValidation Проверяет цепочку сертификатов, полученных из NSS-базы. Выполняется команда certutil -V -u V -e -d [dbdir] -n [nickname].
IPAOpenSSLChainValidation Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem.
IPARAAgent Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в LDAP.
IPAKRAAgent Проверяет соответствие описания и значения атрибута userCertificate для KRA-агента в LDAP.
IPACertRevocation Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.
IPACertmongerCA Проверяет корректность конфигурации CA в certmonger, анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
|
IPADNARangeCheck Это выводит настроенный диапазон DNA, если таковой имеется. Предполагается, что эта информация будет использоваться в сочетании с другими данными для дальнейшего анализа.
|
IPAFileNSSDBCheck IPAFileCheck TomcatFileCheck Эти проверки проверяют владельца и режим файлов, установленных или настроенных IPA. Существует множество вариантов прав доступа к файлам и владельцев, которые могут быть допустимыми и продолжать работать. Здесь приведены ожидаемые значения для чистой установки IPA. Отклонения фиксируются на уровне WARNING.
|
IPAHostKeytab Выполняет команду: kinit -kt /etc/krb5.keytab для проверки, что keytab хоста действителен. |
IPACRLManagerCheck IPARenewalMasterCheck Набор информационных проверок для определения, является ли текущий мастер генератором CRL и/или мастером обновления.
|
Проверки топологии для проверки соответствия как рекомендациям, так и выявления ошибок. IPATopologyDomainCheck Предоставляет эквивалент команды: ipa topologysuffix-verify При сбое возвращает обнаруженные ошибки, такие как ошибки подключения или слишком большое количество репликационных соглашений. При успешном выполнении возвращаются настроенные домены.
|
Проверка общих проблем конфигурации доверительных отношений AD. IPATrustAgentCheck Проверка конфигурации sssd, когда машина настроена в качестве агента доверия. Параметр provider должен иметь значение ipa, а ipa_server_mode – быть установлен в true.
IPATrustDomainsCheck Проверяет, что домен IPA присутствует в выводе команды sssctl domain-list, а домены доверия совпадают с доменами, указанными в sssd. Если списки доменов не совпадают:
IPATrustCatalogCheck Проверка, разрешающая имя пользователя AD, например, Administrator@REALM. Эта операция заполняет значения глобального каталога AD и контроллера домена AD в выводе команды sssctl domain-status.
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 в выводе команды net conf list включён ldapi.
IPATrustControllerGroupSIDCheck Проверяет, что SID группы администраторов заканчивается на 512 (RID для Domain Admins).
IPATrustPackageCheck Если система не является контроллером доверия и доверительные отношения AD включены, проверяется наличие установленного пакета trust‑ad.
|
MetaCheck Предоставляет базовую информацию о самом IPA-мастере. Вывод включает FQDN и версию IPA.
|
Возвращает статус состояния необходимых IPA-служб Следующие службы отслеживаются:
Значение поля check соответствует имени IPA-сервиса. Обратите внимание, что в именах службы дефисы заменяются на символы подчеркивания. Пример остановленного сервиса:
|
Проверка доступного дискового пространства. 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 |
1111