Введение
FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA.
Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA.
Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.
Описание стенда
Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:
Также утилита может проверять корректность работы реплик, доверительных отношений, центра сертификации. Порядок установки см. в статьях:
- Настройка доверительных отношений FreeIPA - Active Directory
- FreeIPA: настройка репликации
- FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition
Установка пакета
Пакет 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
Также все параметры конфигурации поддерживаются в виде аргументов при запуске из командой строки.
Пример готовых команд может выглядеть так:
- Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:shell
sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human
- Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:shell
sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug
- Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:shell
sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health
Важно!
При запуске инструмент сначала загружает опции из файла конфигурации, затем применяются опции командной строки.
Если параметр уже определён в файле конфигурации, он не будет переопределён опциями командной строки, если только не указан другой файл конфигурации через опцию --config
Интеграция ipa‑healthcheck с systemd
После установки пакета в systemd появятся два системных юнита:
- ipa-healthcheck.service - основной юнит-сервис, который запускает программу ipa‑healthcheck, выполняет проверки состояния установки FreeIPA и формирует отчёт об обнаруженных проблемах.
- ipa-healthcheck.timer - юнит-таймер, который по заданному интервалу инициирует запуск ipa‑healthcheck.service. Он позволяет автоматизировать регулярное выполнение проверок, что особенно полезно для постоянного мониторинга системы.
Порядок настройки таймеров в 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, если какая-либо тестовая проверка не выполнена. В этом случае утилита возвращает ненулевой код, а для диагностики стоит просмотреть журнал службы с помощью команды:
sudo journalctl -u ipa-healthcheck.service
Обзор проверок для диагностики и мониторинга FreeIPA
Программа поддерживает следующие проверки:
- ipahealthcheck.dogtag.ca
Отвечает за проверки, связанные с сервером Dogtag (служба CA).
- ipahealthcheck.ds.backends
Контролирует работоспособность backend‑модулей, которые отвечают за хранение данных (например, в LDAP‑хранилище)
- ipahealthcheck.ds.config
Проводит анализ конфигурационных настроек LDAP‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.
- ipahealthcheck.ds.disk_space
Проверяет состояние свободного места на дисках, особенно на критичных разделах, таких как каталоги логов или резервных копий, чтобы предупредить о риске переполнения.
- ipahealthcheck.ds.dse
Осуществляет диагностику DSE (Directory Server Engine) — базовой части LDAP‑сервера, которая отвечает за хранение и обработку данных.
- ipahealthcheck.ds.encryption
Анализирует настройки шифрования и криптографические параметры, что обеспечивает безопасную передачу и хранение данных.
- ipahealthcheck.ds.fs_checks
Выполняет проверки файловой системы, включая права доступа, целостность и корректность разрешений на важных файлах и каталогах.
- ipahealthcheck.ds.nss_ssl
Проверяет настройки NSS‑базы, которая используется для хранения сертификатов и ключей, а также тестирует соответствующие SSL‑настройки.
- ipahealthcheck.ds.ds_plugins
Отвечает за проверку дополнительных плагинов LDAP‑сервера, которые могут расширять его функциональность или влиять на безопасность.
- ipahealthcheck.ds.replication
Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений (changelogs) для обнаружения ошибок.
- ipahealthcheck.ds.ruv
Следит за корректностью записей RUV (Replica Update Vector), необходимых для правильной работы репликации.
- ipahealthcheck.ipa.certs
Содержит набор проверок, связанных с сертификатами FreeIPA: от контроля срока действия, проверки цепочки доверия до сравнения сертификатов, а также отслеживания их состояния с помощью certmonger.
- ipahealthcheck.ipa.dna
Отвечает за проверку диапазона DNA (Domain Number Allocation), который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
- ipahealthcheck.ipa.idns
Производит диагностику системных DNS‑записей, необходимых для корректной работы инфраструктуры FreeIPA.
- ipahealthcheck.ipa.files
Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы.
- ipahealthcheck.ipa.host
Выполняет проверку, связанную с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных служб (LDAP, HTTP, DNS и др.).
- ipahealthcheck.ipa.kdc
Следит за состоянием рабочих процессов KDC (Kerberos Distribution Center), необходимых для работы аутентификации.
- ipahealthcheck.ipa.meta
Собирает общую информацию о сервере FreeIPA.
- ipahealthcheck.ipa.nss
Проверяет корректность работы NSS‑подсистемы, например, правильное членство пользователей в группах, связанные с NSS‑базой.
- ipahealthcheck.ipa.proxy
Контролирует настройки IPA Proxy, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.
- ipahealthcheck.ipa.roles
Выполняет проверки, связанные с ролями сервера в инфраструктуре FreeIPA — определяет, является ли сервер мастером обновления сертификатов, CRL-менеджером, и проверяет связанные с этим параметры.
- ipahealthcheck.ipa.topology
Проводит проверки топологии репликации и сетевой конфигурации, убеждаясь, что все серверы правильно настроены и данные синхронизируются корректно.
- ipahealthcheck.ipa.trust
Отвечает за диагностику доверительных отношений (trust) с Active Directory, проверяя настройки trust-агентов, списки доверенных доменов, корректность конфигураций principal, членство в группах и наличие необходимых пакетов.
- ipahealthcheck.meta.core
Собирает основную информацию о FreeIPA-сервере, которая используется для формирования общего отчёта о состоянии системы.
- ipahealthcheck.meta.services
Контролирует состояние основных служб FreeIPA (таких как certmonger, dirsrv, httpd, sssd и др.) и сигнализирует о сбоях или остановке их работы.
- ipahealthcheck.system.filesystemspace
Анализирует свободное место на дисковых разделах, ключевых для работы системы FreeIPA, предупреждая о риске нехватки пространства, что может привести к проблемам с логированием и выполнением резервного копирования.
С полным списком доступных проверок можно также ознакомиться при помощи команды:
sudo ipa-healthcheck --list-sources
Любая из проверок может быть указана в виде аргументов для запуска из командной строки и/или при использовании файла конфигурации. См. Конфигурация и интеграция