Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Раскрыть
titleТерминология статьи...

В таблице перечислены все специальные термины и аббревиатуры, применяемые в статье, с их пояснениями.

Информация
titleТерминология
ТерминПояснение 
Источник (source)

Модуль или пространство имён для сбора данных (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA

Проверка (check)

Конкретная проверка в рамках источника (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA

CLI

Аббревиатура от Command Line Interface.
Текстовый интерфейс для взаимодействия с операционной системой или программой через ввод команд в консоли, без использования графических элементов.

CS

Аббревиатура от Certificate System.
В контексте DogTag это подсистема, отвечающая за работу центра сертификации и связанных сервисов.

CA

Аббревиатура от Certificate Authority.
В контексте DogTag это подсистема, отвечающая за выпуск, подпись и отзыв цифровых сертификатов, а также публикацию списков отозванных сертификатов (CRL) и работу OCSP-ответчика.

CRL

Аббревиатура от Certificate Revocation List
Периодически публикуемый центром сертификации (CA) файл, содержащий список отозванных цифровых сертификатов, срок доверия к которым прекращён.

KRA

Аббревиатура от Key Recovery Authority.
В контекстеDogTag это подсистема, обеспечивающая архивирование и восстановление закрытых ключей пользователей: при запросе сертификата приватный ключ шифруется и сохраняется в KRA, что позволяет восстановить доступ к данным, если оригинальный ключ утерян.

CS.cfg

Главный файл конфигурации подсистемы DogTag CS.
Создается при инициализации контроллера ЕПП FreeIPA с центром сертификации DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition).

В DogTag подсистемы запускаются независимо, каждая со своим CS.cfg:

  • /etc/pki/pki-tomcat/ca/CS.cfg настраивает CA,

  • /etc/pki/pki-tomcat/kra/CS.cfg настраивает KRA.

DNS

Аббревиатура от Domain Name System.
Иерархическая распределённая система, преобразующая доменные имена в IP-адреса и обратно в Интернете.

LDAP

Аббревиатура от Lightweight Directory Access Protocol.
Протокол прикладного уровня для доступа и управления распределённой каталоговой службой, широко используется для хранения и поиска информации об учётных записях, группах и политиках в сетях.

NSS

Аббревиатура от Network Security Services
Набор библиотек защитного преобразования, используемых приложениями и сервисами для работы с сертификатами, ключами и безопасными соединениями.

DS

Аббревиатура от Directory Server
LDAP-сервер, реализованный на основе проекта 389 Directory Server, обеспечивающий хранение, поиск и модификацию данных каталоговой службы (учётные записи, группы, политики).

RUV

Аббревиатура от Replica Update Vector.
Набор счётчиков состояния репликации в DS, хранящийся на каждом узле; позволяет определить, какие изменения между всеми участниками топологии уже переданы, а какие ещё нужно синхронизировать.

TLS/SSL

Аббревиатура от Transport Layer Security (TLS) и Secure Sockets Layer (SSL).
Протоколы, обеспечивающие защитное преобразование и аутентификацию сетевых соединений в интернете и приложениях.

certmonger

Служба для автоматического управления жизненным циклом сертификатов: генерирует запросы, отслеживает их, обновляет истекающие сертификаты и взаимодействует с центром сертификации для их продления.

FQDN

Аббревиатура от Fully Qualified Domain Name.
Полное доменное имя узла, включающее все уровни DNS-иерархии (например, host.example.com).

KDC 

Аббревиатура от Key Distribution Center.
Компонент Kerberos, отвечающий за аутентификацию клиентов и выдачу Ticket Granting Tickets и сервисных билетов (TGS)

TGT

Аббревиатура от Ticket Granting Ticket.
В Kerberos-системе билет, выдаваемый KDC после аутентификации, позволяющий без повторного ввода пароля запрашивать сервисные билеты.

DNA

Аббревиатура от Distributed Numeric Assignment
Плагин 389 Directory Server, который автоматически распределяет диапазоны POSIX UID/GID между серверами — выделяет каждому мастеру и реплике поддиапазон из общего пространства идентификаторов, обеспечивая их уникальность и отказоустойчивость при создании новых учётных записей и групп

keytab

Файл “key table” Kerberos, хранящий длинно-срочные ключи одного или нескольких принципалов. Используется сервисами для автоматической аутентификации без ввода пароля.

AJP

Аббревиатура от Apache JServ Protocol.
Бинарный сетевой протокол для проксирования HTTP-запросов от веб-сервера к серверу приложений (например, Tomcat).

Топология репликации

Схема взаимосвязей и соглашений репликации между IPA-серверами.

AD

Аббревиатура от Active Directory
Cлужба каталогов Microsoft для управления объектами Windows-домена (пользователи, компьютеры, политики). Использует LDAP, Kerberos и DNS для централизованной аутентификации и авторизации.

RID/SID

RID (Аббревиатура от Relative Identifier)
Относительный идентификатор, присваиваемый объектам при создании и становящийся частью SID.

SID (Аббревиатура от Security Identifier)
Уникальный идентификатор безопасности в Windows AD, состоящий из доменного S-идентификатора и RID

IPA

Аббревиатура от Identity, Policy, Audit.
Интегрированное решение для централизованного управления удостоверениями, политиками аутентификации и аудита на Linux/UNIX. Основано на LDAP, Kerberos, Dogtag и BIND.

...

Инструмент ipa-healthcheck предоставляется пакетом freeipa-healthcheck. Пакет входит в расширенный репозиторий. Установить пакет можно используяГрафический менеджер пакетов synaptic, или из командной строки:

Блок кодаcommand
titleshell
sudo apt install freeipa-healthcheck

...

Раскрыть
titleПодробное описание аргументов при запуске из командной строки...

Доступные параметры CLI:

  • --list-sources:
    Выводит список доступных источников и проверок, что помогает определить, какие группы тестов доступны в вашей установке.
  • --config=FILE:
    Задает файл конфигурации, который будет использоваться при запуске. Если указать пустую строку, то файл конфигурации не загружается. По умолчанию используется файл /etc/ipahealthcheck/ipahealthcheck.conf.
  • --source=SOURCE:
    Исполняет проверки только из указанного источника или пространства имен (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA
  • --check=CHECK:
    Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с --source (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA
  • --output-type=TYPE:
    Определяет формат вывода результатов. Допустимые значения:
    – json (по умолчанию, машиночитаемый формат),
    – human (удобочитаемый формат для пользователей),
    – prometheus (формат для экспозиции метрик Prometheus).
  • --failures-only:
    При активном использовании этого параметра в вывод будут включены только проверки, завершившиеся предупреждениями, ошибками или критическими сбоями (WARNING, ERROR, CRITICAL). Если вывод идёт в терминал, флаг включается автоматически; при выводе в файл — выключен
  • --all:
    Выводит все результаты проверок, независимо от их уровня. Этот параметр отменяет действие --failures-only.
  • --severity=SEVERITY:
    Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения:
    – SUCCESS
    – WARNING
    – ERROR
    – CRITICAL
  • --verbose:
    Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
  • --debug:
    Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
  • --output-file=FILENAME:
    Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
  • --input-file=FILENAME:
    Позволяет прочитать результаты предыдущего запуска (обычно в формате JSON) и отобразить их в другом формате или просто повторно показать сохранённые данные.
  • --indent=INDENT:
    При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
  • --metric-prefix=PREFIX:
    При использовании формата вывода prometheus задает префикс, который будет добавляться к именам метрик.

Пример готовых команд:

  • Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:title
    Блок кода
    Command
    shell
    sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human
  • Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:
    Блок кодаcommand
    titleshell
    sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug
  • Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:
    Блок кодаcommand
    titleshell
    sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health

...

  • ipahealthcheck.ipa.files
    Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы.
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.files

    IPAFileNSSDBCheck

    IPAFileCheck

    TomcatFileCheck

    Эти проверки проверяют владельца и режим файлов, установленных или настроенных IPA. Существует множество вариантов прав доступа к файлам и владельцев, которые могут быть допустимыми и продолжать работать. Здесь приведены ожидаемые значения для чистой установки IPA. Отклонения фиксируются на уровне WARNING.

    Блок кода
    titlejson
    {
      "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 для различных служб (LDAP, HTTP, DNS и др.).
    Раскрыть
    titleПроверки в источнике ipahealthcheck.ipa.host

    IPAHostKeytab

    Обеспечивает, что keytab для службы host (обычно /etc/krb5.keytab) существует на сервере и позволяет получить TGT через GSSAPI.

    Блок кода
    titlejson
    {
      "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) существует и позволяет получить билет.

    Блок кода
    titlejson
    {
      "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 для аутентификации веб‑сервера.

    Блок кода
    titlejson
    {
      "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 проверка пропускается.

    Блок кода
    titlejson
    {
      "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 проверка пропускается.

    Блок кода
    titlejson
    {
      "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."
      }
    }

...