Product SiteDocumentation Site

Глава 71. Инструменты диагностики

71.1. Модуль diag
71.1.1. Диагностика состояния контроллера домена
71.1.2. Инструмент диагностики клиента домена
71.2. Альт Диагностические инструменты (ADT)
71.2.1. Установка и запуск
71.2.2. Работа с диагностическими инструментами

71.1. Модуль diag

Модуль diag — инструмент alteratorctl для запуска диагностических тестов, просмотра информации и формирования отчётов.

Примечание

Для работы с модулями alteratorctl требуется установить пакет alteratorctl:
# apt-get install alteratorctl

Примечание

Для работы с конкретным инструментом диагностики требуется установка соответствующего пакета:
  • diag-domain-controller — диагностика контроллера домена;
  • diag-domain-client — диагностика клиента домена.
Синтаксис:
$ alteratorctl diag [КОМАНДА [аргументы...]] [ОПЦИИ]

Таблица 71.1. Команды alteratorctl diag

Команда
Описание
info <путь | имя>
Информация о диагностическом инструменте
list [путь | имя]
Список инструментов или тестов выбранного инструмента
report <путь | имя> <файл>
Сохранить отчёт в архив <файл>.tar.gz
run <путь | имя> [тест]
Запустить тест или все тесты инструмента
Возможные опции:
  • -v, --verbose — показать пути объектов на D-Bus;
  • -d, --display-name-only — выводить только отображаемые имена;
  • -D, --no-display-name — скрыть отображаемые имена;
  • -p, --path-only — выводить только пути объектов на D-Bus;
  • -n, --name-only — выводить только имена объектов;
  • -N, --no-name — скрыть отображение имен диагностических инструментов и тестов;
  • --session — использовать сессионную шину D-Bus;
  • --system — использовать системную шину D-Bus.

71.1.1. Диагностика состояния контроллера домена

diag_domain_controller — инструмент для диагностики корректности настройки компьютера в роли контроллера домена.
Инструмент содержит набор тестов, проверяющих:
  • конфигурацию DNS, Kerberos и Samba;
  • состояние служб;
  • целостность системных файлов и баз данных.
Инструмент diag_domain_controller имеет модульную структуру. Можно запустить все тесты сразу или выполнить отдельную проверку.
Установка:
# apt-get install diag-domain-controller

Примечание

Для выполнения некоторых команд модуля могут потребоваться права администратора.
Интерпретация результатов тестов:
  • ВЫПОЛНЕНО — тест пройден успешно;
  • ПРЕДУПРЕЖДЕНИЕ — тест пройден, но есть замечания;
  • ПРОВАЛЕНО — тест завершился неудачно.

Таблица 71.2. Тесты diag_domain_controller

Тест
Описание
is_domain_info_available
Проверка доступности просмотра общей информации о домене
is_hostname_correct
Проверка корректности FQDN узла
is_hostname_static_and_transient
Проверка, что статическое имя хоста задано и совпадает с временным (transient)
is_not_empty_sysvol
Проверка, что каталог sysvol не пуст
does_sysvol_contain_necessary_files
Проверка наличия обязательных подкаталогов <домен>/Policies и <домен>/scripts в sysvol
is_samba_package_installed
Проверка установки в системе пакета (samba-dc или samba-dc-mitkrb5). Вывод информации о данных пакетах
is_samba_service_running
Проверка, что служба Samba запущена
is_resolve_local
Проверка, что контроллер домена разрешает DNS-запросы локально (файл /etc/resolv.conf содержит строку nameserver 127.0.0.1)
is_krb5_conf_file_exists
Проверка наличия и вывод содержимого файла конфигурации /etc/krb5.conf
is_smb_conf_file_exists
Проверка наличия и вывод содержимого файла конфигурации /etc/samba/smb.conf
is_there_way_to_cache_kerberos_tickets
Проверка метода кеширования билетов Kerberos (control krb5-conf-ccache)
is_sections_with_domain_name_in_krb5_empty
Проверка, что секции [realms] и [domain_realm] в файле /etc/krb5.conf не пусты
is_dns_lookup_kdc_enabled
Проверка, что включен поиск доменного имени Kerberos через DNS (dns_lookup_kdc = true в файле /etc/krb5.conf)
is_dns_lookup_realm_disabled
Проверка, что поиск доменного имени Kerberos через DNS отключён (dns_lookup_realm = false в файле /etc/krb5.conf)
is_resolv_conf_file_exists
Проверка наличия и вывод содержимого файла конфигурации /etc/resolv.conf
does_resolv_conf_and_default_realm_it_match
Проверка соответствия записи области (realm) в файле конфигурации /etc/krb5.conf одному из доменных имен в файле /etc/resolv.conf
does_smb_realm_and_krb5_default_realm_it_match
Проверка соответствия записи домена в файле конфигурации /etc/krb5.conf и записи realm в файле конфигурации smb.conf
are_there_errors_in_samba_databases
Проверка целостности баз Samba.
is_ntp_service_running
Проверка, что служба NTP запущена
is_time_synchronization_enabled
Проверяет, включена ли синхронизация времени
is_ports_listening
Проверка доступности необходимых сетевых портов
is_list_trusts_validated
Проверка списка доверенных доменов
is_nscd_service_disabled
Проверка, что служба nscd отключена
is_nslcd_service_disabled
Проверка, что служба nslcd отключена
Примеры (команды запускаются на контроллере домена):
  • список доступных диагностических инструментов:
    $ alteratorctl diag list
    <<< Инструменты на системной шине:
    Контроллер домена (diag_domain_controller)
    
  • список тестов инструмента:
    $ alteratorctl diag list diag_domain_controller
    <<< Тесты на системной шине:
    Локальная валидация для списка доверенных доменов (is_list_trusts_validated)
    Проверка, активен ли поиск настроек Kerberos для домена через DNS (is_dns_lookup_kdc_enabled)
    Проверка доступности просмотра общей информации о домене (is_domain_info_available)
    Проверка: запущена ли служба NTP (is_ntp_service_running)
    Проверка: запущена ли служба Samba (is_samba_service_running)
    Проверка наличия строки nameserver 127.0.0.1 в файле resolv.conf (is_resolve_local)
    Проверка наличия установленного в системе пакета samba (is_samba_package_installed)
    Проверка наличия файла конфигурации krb5.conf и отображение содержимого файла (is_krb5_conf_file_exists)
    Проверка наличия файла конфигурации resolv.conf и отображение содержимого файла (is_resolv_conf_file_exists)
    Проверка наличия файла конфигурации smb.conf и отображение содержимого файла (is_smb_conf_file_exists)
    Проверка на наличие ошибок в базах Samba (are_there_errors_in_samba_databases)
    Проверка нахождения в sysvol папки с именем домена и Policies и scripts внутри (does_sysvol_contain_necessary_files)
    Проверка, отключён ли поиск доменного имени Kerberos через DNS (is_dns_lookup_realm_disabled)
    Проверка: отключён ли сервис nscd (is_nscd_service_disabled)
    Проверка: отключён ли сервис nslcd (is_nslcd_service_disabled)
    Проверка портов, прослушиваемых необходимыми службами (is_ports_listening)
    Проверка правильного написания доменного имени хоста (is_hostname_correct)
    Проверка синхронизации времени (is_time_synchronization_enabled)
    Проверка: содержит ли файлы каталог sysvol (is_not_empty_sysvol)
    Проверка соответствия realm-записи в файле конфигурации krb5.conf одному из доменных имён в файле конфигурации resolv.conf (does_resolv_conf_and_default_realm_it_match)
    Проверка соответствия записи домена в файле конфигурации krb5.conf и realm-записи в файле конфигурации smb.conf (does_smb_realm_and_krb5_default_realm_it_match)
    Проверка соответствия статического и временного имён хостов (is_hostname_static_and_transient)
    Проверка того, что разделы [realms] и [domain_realm] не являются пустыми в krb5.conf (is_sections_with_domain_name_in_krb5_empty)
    Проверка указанного метода кэширования билетов Kerberos (is_there_way_to_cache_kerberos_tickets)
    
  • запуск отдельного теста:
    $ alteratorctl diag run diag_domain_controller is_domain_info_available
    [   ВЫПОЛНЕНО  ]: Проверка доступности просмотра общей информации о домене
    
  • запуск теста с подробным выводом информации:
    $ alteratorctl diag run diag_domain_controller is_samba_service_running -v
    <<< Тесты на системной шине:
    ##########################################################################################
    Тест "Проверка: запущена ли служба Samba" запущен
    ##########################################################################################
    The "samba.service" service is running:
    ● samba.service - Samba AD Daemon
         Loaded: loaded (/usr/lib/systemd/system/samba.service; enabled; preset: disabled)
         Active: active (running) since Fri 2026-02-27 12:11:20 MSK; 4h 56min ago
    [DONE]: is_samba_service_running
    [   ВЫПОЛНЕНО  ]: Проверка: запущена ли служба Samba
    
  • запуск всех тестов инструмента:
    $ alteratorctl diag run diag_domain_controller
    <<< Тесты на системной шине:
    [   ВЫПОЛНЕНО  ]: Проверка на наличие ошибок в базах Samba
    [   ВЫПОЛНЕНО  ]: Проверка соответствия realm-записи в файле конфигурации krb5.conf одному из доменных имён в файле конфигурации resolv.conf
    [   ВЫПОЛНЕНО  ]: Проверка соответствия записи домена в файле конфигурации krb5.conf и realm-записи в файле конфигурации smb.conf
    [   ВЫПОЛНЕНО  ]: Проверка нахождения в sysvol папки с именем домена и Policies и scripts внутри
    [   ВЫПОЛНЕНО  ]: Проверка, активен ли поиск настроек Kerberos для домена через DNS
    [   ВЫПОЛНЕНО  ]: Проверка, отключён ли поиск доменного имени Kerberos через DNS
    [   ВЫПОЛНЕНО  ]: Проверка доступности просмотра общей информации о домене
    [   ВЫПОЛНЕНО  ]: Проверка правильного написания доменного имени хоста
    [   ВЫПОЛНЕНО  ]: Проверка соответствия статического и временного имён хостов
    [   ВЫПОЛНЕНО  ]: Проверка наличия файла конфигурации krb5.conf и отображение содержимого файла
    [   ВЫПОЛНЕНО  ]: Локальная валидация для списка доверенных доменов
    [   ВЫПОЛНЕНО  ]: Проверка: содержит ли файлы каталог sysvol
    [   ВЫПОЛНЕНО  ]: Проверка: отключён ли сервис nscd
    [   ВЫПОЛНЕНО  ]: Проверка: отключён ли сервис nslcd
    [   ВЫПОЛНЕНО  ]: Проверка: запущена ли служба NTP
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка портов, прослушиваемых необходимыми службами
    [   ВЫПОЛНЕНО  ]: Проверка наличия файла конфигурации resolv.conf и отображение содержимого файла
    [   ВЫПОЛНЕНО  ]: Проверка наличия строки nameserver 127.0.0.1 в файле resolv.conf
    [   ВЫПОЛНЕНО  ]: Проверка наличия установленного в системе пакета samba
    [   ВЫПОЛНЕНО  ]: Проверка: запущена ли служба Samba
    [   ВЫПОЛНЕНО  ]: Проверка того, что разделы [realms] и [domain_realm] не являются пустыми в krb5.conf
    [   ВЫПОЛНЕНО  ]: Проверка наличия файла конфигурации smb.conf и отображение содержимого файла
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка указанного метода кэширования билетов Kerberos
    [   ВЫПОЛНЕНО  ]: Проверка синхронизации времени
    
  • формирование отчёта:
    # alteratorctl diag report diag_domain_controller /home/user/domain_controller_report
    Report /home/user/domain_controller_report.tar.gz записан
    
    где domain_controller_report — название архива (расширение .tar.gz добавляется автоматически).

    Примечание

    В результате выполнения команды создаётся архив <имя>.tar.gz, который содержит:
    • файл отчёта report_<текущая дата>.txt;
    • конфигурационные файлы smb.conf, krb5.conf.

    Примечание

    По умолчанию архив сохраняется в текущую папку.

71.1.2. Инструмент диагностики клиента домена

diag_domain_client — инструмент для диагностики корректности настройки компьютера в роли клиента домена.
Инструмент содержит набор тестов, проверяющих:
  • конфигурацию DNS, Kerberos и PAM;
  • доступность контроллеров домена;
  • состояние необходимых пакетов и служб.
Инструмент diag_domain_client имеет модульную структуру. Можно запустить все тесты сразу или выполнить отдельную проверку.
Установка:
# apt-get install diag-domain-client

Примечание

Для выполнения некоторых команд модуля могут потребоваться права администратора.
Интерпретация результатов тестов:
  • ВЫПОЛНЕНО — тест пройден успешно;
  • ПРЕДУПРЕЖДЕНИЕ — тест пройден, но есть замечания;
  • ПРОВАЛЕНО — тест завершился неудачно.

Примечание

Если компьютер введен в домен, статус ПРОВАЛЕНО выводится для тех проверок, когда несоответствие проверяемого элемента приводит к неработоспособности машины в домене.

Таблица 71.3. Тесты diag_domain_client

Тест/Проверка
Описание
check_hostnamectl
Проверка информации о настройках хоста.
С опцией -v отображает информацию о хосте: имя, система, версия ядра, архитектура, виртуализация (при наличии)
test_hostname
Проверяет, задано ли полное доменное имя (FQDN)
check_system_auth
Проверяет метод аутентификации пользователей, используемый в подсистеме PAM (sss, winbind — компьютер введен в домен, local — не введен).
С опцией -v выводит содержимое файла /etc/pam.d/system-auth
test_domain_system_auth
Проверяет, что метод аутентификации допустим для работы в домене (sss или winbind)
check_system_policy
Проверяет информацию об инструменте применения групповых политик
test_gpupdate_system_policy
Проверяет, настроено ли применение групповых политик
check_krb5_conf_exists
Проверяет наличие файла конфигурации krb5.conf
С опцией -v отображает права доступа и выводит содержимое /etc/krb5.conf
check_krb5_conf_ccache
Проверяет способ кеширования Kerberos-билетов.
С опцией -v отображает текущий способ кеширования Kerberos-билетов — keyring, file, dir
test_keyring_krb5_conf_ccache
Проверяет, что для кеширования используется keyring
check_krb5_conf_kdc_lookup
Проверяет, включен ли поиск Kerberos-имени домена через DNS (dns_lookup_kdc = true в файле /etc/krb5.conf)
check_krb5_keytab_exists
Проверяет наличие файла /etc/krb5.keytab. В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера.
С опцией -v отображает права доступа и дату последнего изменения файла /etc/krb5.keytab
check_keytab_credential_list
Проверяет содержимое файла /etc/krb5.keytab.
С опцией -v отображает содержимое файла /etc/krb5.keytab
check_resolv_conf
Проверяет наличие файла конфигурации разрешения имен resolv.conf
С опцией -v отображает права и содержимое файла /etc/resolv.conf
compare_resolv_conf_with_default_realm
Сравнивает домен для поиска (поле search в /etc/resolv.conf) с доменом по умолчанию, указанным для Kerberos (default_realm из /etc/krb5.conf)
check_smb_conf
Проверяет наличие файла настроек конфигурации Samba.
С опцией -v отображает права доступа и содержимое файла /etc/samba/smb.conf
compare_smb_realm_with_krb5_default_realm
Сравнивает домен, указанный в файле конфигурации Samba (realm в /etc/samba/smb.conf), с доменом по умолчанию, указанным для Kerberos (default_realm из /etc/krb5.conf)
test_smb_realm
Проверяет корректность заполнения настройки домена в конфигурационных файлах Samba (smb.conf) и Kerberos (krb5.conf)
test_domainname
Сравнивает доменное имя из /etc/hostname с именем домена в составе FQDN-имени узла
check_time_synchronization
Проверяет, доступна ли информация о часовом поясе, синхронизации времени с сервером (необходимо для корректной работы с сертификатами, электронной подписью, билетами Kerberos).
С опцией -v выводит подробную информацию — часовой пояс, временную зону и т.д.
test_time_synchronization
Проверяет, включена ли синхронизация времени
check_nameservers
Проверяет доступность всех контроллеров домена по имени (host <domain FQDN>) и IP-адресу (работает ли resolv.conf)
check_domain_controllers
Проверяет доступность всех контроллеров домена в домене (из SRV-записей)
check_kerberos_and_ldap_srv_records
Проверяет наличие SRV-записей _kerberos._udp.<domain FQDN> и _ldap._tcp.<domain FQDN>. Требуется для корректной работы машины в домене. Без записей Kerberos, sssd и winbind не смогут найти контроллеры домена
check_krb5_init_trace
Проверяет работу механизма получения Kerberos-билета.
С опцией -v выводит трассировку процесса получения Kerberos-билета
compare_netbios_name
Сравнивает короткое имя хоста из /etc/hostname с NetBios-именем машины (netbios name) в smb.conf
check_common_packages
Проверяет наличие установленных пакетов (alterator-auth, libnss-role, libkrb5 и libsmbclient)
check_group_policy_packages
Проверяет наличие установленных пакетов для управления групповыми политиками (local-policy и gpupdate)
check_sssd_ad_packages
Проверяет наличие установленного мета-пакета для аутентификации с помощью sssd (task-auth-ad-sssd)
check_winbind_packages
Проверяет наличие установленного мета-пакета для аутентификации с помощью winbind (task-auth-ad-winbind)
Примеры:
  • список тестов инструмента:
    $ alteratorctl diag list diag_domain_client
    <<< Тесты на системной шине:
    Информация об инструменте применения групповых политик (check_system_policy)
    Информация о методе аутентификации компьютера в домене (check_system_auth)
    Информация о настройках хоста (check_hostnamectl)
    Информация о правах доступа в Kerberos и содержимом файла /etc/krb5.conf (check_krb5_conf_exists)
    Информация о правах доступа и дате последнего изменения файла /etc/krb5.keytab (check_krb5_keytab_exists)
    Информация о правах доступа и последнем изменении кеша Kerberos с реквизитами пользователя (check_keytab_credential_list)
    Информация о текущем способе кеширования Kerberos-билетов (check_krb5_conf_ccache)
    Информация о часовом поясе, синхронизации времени с сервером (check_time_synchronization)
    Проверка включения поиска Kerberos-имени домена через DNS (check_krb5_conf_kdc_lookup)
    Проверка включения синхронизации времени (test_time_synchronization)
    Проверка домена, указанного для Samba (test_smb_realm)
    Проверка доступности всех контроллеров домена в домене (из SRV-записей). Отображает версии контроллеров домена (из LDAP) (check_domain_controllers)
    Проверка доступности всех контроллеров домена по имени (host <domain FQDN>) и IP-адресу (работает ли resolv.conf) (check_nameservers)
    Проверка метода аутентификации для работы машины в домене (test_domain_system_auth)
    Проверка наличия SRV-записи Kerberos и LDAP для домена, а также LDAP-запроса (check_kerberos_and_ldap_srv_records)
    Проверка наличия домена для поиска (check_resolv_conf)
    Проверка наличия мета-пакета для sssd-аутентификации (check_sssd_ad_packages)
    Проверка наличия мета-пакета для winbind-аутентификации (check_winbind_packages)
    Проверка наличия основных пакетов для работы в домене (check_common_packages)
    Проверка наличия пакетов, необходимых для управления групповыми политиками (check_group_policy_packages)
    Проверка настроенного способа кеширования Kerberos-билетов (test_keyring_krb5_conf_ccache)
    Проверка полного имени хоста (test_hostname)
    Проверка применения групповых политик через gpupdate (test_gpupdate_system_policy)
    Проверка процесса аутентификации в домене (check_krb5_init_trace)
    Проверка соответствия доменного имени из /etc/hostname с доменным именем домена (test_domainname)
    Проверка сопоставления домена для поиска и домена, указанного для Kerberos (compare_resolv_conf_with_default_realm)
    Проверка сопоставления домена, указанного для Samba и домена, указанного для Kerberos (compare_smb_realm_with_krb5_default_realm)
    Проверка файла настроек конфигурации Samba (check_smb_conf)
    Сравнение префиксов имени компьютеров в Samba и указанного в /etc/hostname (compare_netbios_name)
    
  • запуск отдельного теста:
    $ alteratorctl diag run diag_domain_client check_smb_conf
    <<< Тесты на системной шине:
    [   ВЫПОЛНЕНО  ]: Проверка файла настроек конфигурации Samba
    
  • запуск теста с подробным выводом информации:
    $ alteratorctl diag run diag_domain_client check_krb5_conf_kdc_lookup -v
    <<< Тесты на системной шине:
    ################################################################################
    Тест "Проверка включения поиска Kerberos-имени домена через DNS" запущен
    ################################################################################
    /etc/krb5.conf: dns_lookup_kdc is enabled
    
    [   ВЫПОЛНЕНО  ]: Проверка включения поиска Kerberos-имени домена через DNS
    
  • запуск всех тестов инструмента:
    $ alteratorctl diag run diag_domain_client
    <<<Тесты на системной шине:
    [   ВЫПОЛНЕНО  ]: Проверка наличия основных пакетов для работы в домене
    [   ВЫПОЛНЕНО  ]: Проверка доступности всех контроллеров домена в домене (из SRV-записей). Отображает версии контроллеров домена (из LDAP)
    [   ПРОВАЛЕНО  ]: Проверка наличия пакетов, необходимых для управления групповыми политиками
    [   ВЫПОЛНЕНО  ]: Информация о настройках хоста
    [   ВЫПОЛНЕНО  ]: Проверка наличия SRV-записи Kerberos и LDAP для домена, а также LDAP-запроса
    [   ВЫПОЛНЕНО  ]: Информация о правах доступа и последнем изменении кеша Kerberos с реквизитами пользователя
    [   ВЫПОЛНЕНО  ]: Информация о текущем способе кеширования Kerberos-билетов
    [   ВЫПОЛНЕНО  ]: Информация о правах доступа в Kerberos и содержимом файла /etc/krb5.conf
    [   ВЫПОЛНЕНО  ]: Проверка включения поиска Kerberos-имени домена через DNS
    [   ВЫПОЛНЕНО  ]: Проверка процесса аутентификации в домене
    [   ВЫПОЛНЕНО  ]: Информация о правах доступа и дате последнего изменения файла /etc/krb5.keytab
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка доступности всех контроллеров домена по имени (host <domain FQDN>) и IP-адресу (работает ли resolv.conf)
    [   ВЫПОЛНЕНО  ]: Проверка наличия домена для поиска
    [   ВЫПОЛНЕНО  ]: Проверка файла настроек конфигурации Samba
    [   ВЫПОЛНЕНО  ]: Проверка наличия мета-пакета для sssd-аутентификации
    [   ВЫПОЛНЕНО  ]: Информация о методе аутентификации компьютера в домене
    [   ВЫПОЛНЕНО  ]: Информация об инструменте применения групповых политик
    [   ВЫПОЛНЕНО  ]: Информация о часовом поясе, синхронизации времени с сервером
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка наличия мета-пакета для winbind-аутентификации
    [   ВЫПОЛНЕНО  ]: Сравнение префиксов имени компьютеров в Samba и указанного в /etc/hostname
    [   ВЫПОЛНЕНО  ]: Проверка сопоставления домена для поиска и домена указанного для Kerberos
    [   ВЫПОЛНЕНО  ]: Проверка сопоставления домена, указанного для Samba и домена, указанного для Kerberos
    [   ВЫПОЛНЕНО  ]: Проверка соответствия доменного имени из /etc/hostname с доменным именем домена
    [   ВЫПОЛНЕНО  ]: Проверка метода аутентификации для работы машины в домене
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка применения групповых политик через gpupdate
    [   ВЫПОЛНЕНО  ]: Проверка полного имени хоста
    [   ВЫПОЛНЕНО  ]: Проверка настроенного способа кеширования Kerberos-билетов
    [   ВЫПОЛНЕНО  ]: Проверка домена, указанного для Samba
    [ПРЕДУПРЕЖДЕНИЕ]: Проверка включения синхронизации времени
    
  • формирование отчёта:
    # alteratorctl diag report diag_domain_client /home/user/domain_client_report
    Report /home/user/domain_client_report.tar.gz записан
    
    где domain_client_report — название архива.

    Примечание

    В результате выполнения команды создаётся архив <имя>.tar.gz, который содержит:
    • файл отчёта log.txt;
    • конфигурационные файлы smb.conf, krb5.conf.

    Примечание

    По умолчанию архив сохраняется в текущую папку.