Диагностические инструменты

Материал из ALT Linux Wiki

Для запуска тестов в GUI см. ADT.

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

diag-domain-controller — инструмент диагностики состояния контроллера домена.

diag-domain-controller содержит набор проверок и тестов, по результатам которых можно определить корректность настроек компьютера для работы в качестве контроллера домена.

diag-domain-controller имеет модульную структуру. Модули можно вызывать общим списком или отдельно.

Установка:

# apt-get install diag-domain-controller

Синтаксис команды diag-domain-controller:

diag-domain-controller [ОПЦИИ] [<diagnostic-task>]

где diagnostic-task — название функции из списка тестов. Если не указывать название функции, будут запущены все тесты.

Возможные опции:

  • -l, --list — вывести список тестов;
  • -V, --version — вывести версию и выйти;
  • -h, --help — показать справку и выйти.

Возможные состояния проверок:

  • DONE — успешное выполнение модуля;
  • WARN — предупреждение для некритических тестов в модуле;
  • FAIL — неудачное выполнение проверки.

Список проверок:

Проверка Описание
is_domain_info_available Проверка доступности просмотра общей информации о домене
is_hostname_correct Проверка правильного написания доменного имени узла
is_not_empty_sysvol Проверяет, содержит ли файлы каталог sysvol
is_samba_package_installed Проверяет, установлен ли в системе пакет Samba (samba-dc или samba-dc-mitkrb5)
is_samba_service_running Проверяет, запущена ли служба Samba
are_there_errors_in_samba_databases Проверяет наличие ошибок в базах Samba
is_ntp_service_running Проверяет, включена ли синхронизация времени

Примеры (команды запускаются на контроллере домена):

  • вывести список тестов:
    $ diag-domain-controller -l
    
    is_domain_info_available
    is_hostname_correct
    is_not_empty_sysvol
    is_samba_package_installed
    is_samba_service_running
    are_there_errors_in_samba_databases
    is_ntp_service_running
    
  • запустить тест is_domain_info_available:
    $ diag-domain-controller is_domain_info_available
    
    is_domain_info_available
    [DONE]: is_domain_info_available
    
  • запустить все тесты:
    $ diag-domain-controller
    
    [DONE]: is_domain_info_available
    [DONE]: is_hostname_correct
    [DONE]: is_not_empty_sysvol
    [DONE]: is_samba_package_installed
    [DONE]: is_samba_service_running
    [FAIL]: are_there_errors_in_samba_databases
    [WARN]: is_ntp_service_running
    

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

diag-domain-client — инструмент диагностики состояния клиента домена.

diag-domain-client содержит набор проверок и тестов, по результатам которых можно определить корректность настроек компьютера для работы в домене, а также убедиться, что доступны все необходимые ресурсы домена.

diag-domain-client имеет модульную структуру. Модули можно вызывать общим списком или отдельно. Утилита позволяет записать результат в log-файл. Процесс диагностики зависит от того, находится ли компьютер в домене или нет. Выполнение некоторых проверок требует полномочий суперпользователя. Для корректной работы необходимо получить Kerberos-билет доменного пользователя.

Примечание: diag-domain-client считает, что компьютер введен в домен, если control system-auth имеет значение sss

.

Установка:

# apt-get install diag-domain-client

Синтаксис команды diag-domain-client:

diag-domain-client [ОПЦИИ] [<test-function-name>]

где test-function-name — название функции из списка тестов. Если не указывать название функции, будут запущены все тесты.

Возможные опции:

  • -h, --help — показать справку и выйти;
  • -V, --version — вывести версию и выйти;
  • -v, --verbose — подробный вывод;
  • -w[FILE], --logfile[=FILE] — записать подробный протокол в файл по указанному пути. Если файл не указан, вывод будет записан в файл ./diag-domain-client.log. В случае если файл уже существует, то запись производится в файл с постфиксом (например, diag-domain-client.log.1, diag-domain-client.log.2 и т.д.);
  • -f, --force — принудительная запись в существующий файл;
  • -l, --list — вывести список тестов.


Если компьютер введен в домен, утилита diag-domain-client выдаёт FAIL для тех проверок, когда несоответствие проверяемого элемента приводит к неработоспособности машины в домене. При выполнении программы не суперпользователем некоторые проверки могут быть пропущены (SKIP) или находиться в состоянии WARN. В случае успешного выполнения отображается статус DONE.

Возможные состояния проверок:

  • DONE — успешное выполнение модуля;
  • SKIP — пропуск проверки, если проверка выполняется без полномочий суперпользователя;
  • WARN — предупреждение для некритических тестов в модуле;
  • FAIL — неудачное выполнение проверки.

Список проверок:

Проверка Описание
check_hostnamectl Отображает полную информацию о узле и соответствующие настройки: имя, значок, система, версия ядра, архитектура, информация о виртуализации (при наличии)
test_hostname Проверяет, является ли имя компьютера полностью определенным именем домена (FQDN)
check_system_auth Отображает метод аутентификации пользователей, используемый в подсистеме PAM (sss — компьютер введен в домен, local — не введен). Выводит содержимое файла /etc/pam.d/system-auth
test_domain_system_auth Проверяет, подходит ли метод аутентификации для работы машины в домене (допустимые значения: sss, winbind)
check_system_policy Отображает, какие политики применяются в процессе PAM-аутентификации: local — никакие, gpupdate — локальные и доменные
test_gpupdate_system_policy Проверяет, настроено ли применение групповых политик в системе
check_krb5_conf_exists Проверяет наличие, отображает права доступа и содержимое файла конфигурации krb5.conf
check_krb5_conf_ccache Отображает текущий способ кеширования Kerberos-билетов — keyring, file, dir
test_keyring_krb5_conf_ccache Проверяет настроенный способ кеширования Kerberos-билетов (для keyring)
check_krb5_conf_kdc_lookup Проверяет включен ли поиск Kerberos-имени домена через DNS. Допустимыми значениями для «dns_lookup_kdc» в /etc/krb5.conf являются — true/yes
check_krb5_keytab_exists Проверяет наличие, права доступа и дату последнего изменения файла /etc/krb5.keytab. В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера
check_keytab_credential_list Отображает содержимое файла /etc/krb5.keytab (файл с учётными данными машинного пользователя). В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера.

Требуется запуск от root, иначе SKIP.

check_resolv_conf Проверяет наличие и выводит содержимое файла конфигурации разрешения имен resolv.conf
compare_resolv_conf_with_default_realm Сравнивает домен для поиска (поле search в /etc/resolv.conf) с доменом по умолчанию, указанным для Kerberos
check_smb_conf Проверяет наличие и выводит содержимое файла настроек конфигурации Samba
compare_smb_realm_with_krb5_default_realm Сравнивает домен, указанный в файле конфигурации Samba, с доменом по умолчанию, указанным для Kerberos
test_smb_realm Проверяет корректное заполнение информации о домене в конфигурационных файлах Samba и Kerberos
test_domainname Сверяет доменное имя из /etc/hostname с именем домена в составе FQDN-имени узла
check_time_synchronization Отображает настройку синхронизации времени с сервером; выводит подробную информацию — часовой пояс, временную зону и т.д. Необходимо для корректной работы с сертификатами, электронной подписью, билетами Kerberos
test_time_synchronization Проверяет, включена ли синхронизация времени
check_nameservers Проверяет доступность всех контроллеров домена по имени (host <domain FQDN>) и IP-адресу (работает ли resolv.conf)
check_domain_controllers Проверяет доступность всех контроллеров домена в домене (из srv-записей). Отображает версии контроллеров домена (из LDAP)
check_kerberos_and_ldap_srv_records Проверяет наличие srv-записей вида _kerberos._udp.<domain FQDN> и _ldap._tcp.<domain FQDN> для домена. Требуется для корректной работы машины в домене. Без записей Kerberos, sssd и winbind не смогут найти контроллеры домена.
compare_netbios_name Сравнивает короткое имя машины из /etc/hostname с NetBios-именем машины в smb.conf
check_common_packages Проверяет наличие установленных основных пакетов и их версий (alterator-auth, libnss-role, libkrb5 и libsmbclient)
check_group_policy_packages Проверяет наличие установленных основных пакетов и их версий для управления групповыми политиками (local-policy и gpupdate)
check_sssd_ad_packages Проверяет наличие установленного мета-пакета и его версии для аутентификации c помощью sssd (task-auth-ad-sssd)
check_sssd_winbind_packages Проверяет наличие установленного мета-пакета и его версии для аутентификации c помощью winbind (task-auth-ad-winbind)

Примеры:

  • вывести список тестов:
    $ diag-domain-client -l
    
    check_hostnamectl
    test_hostname
    check_system_auth
    test_domain_system_auth
    check_system_policy
    test_gpupdate_system_policy
    check_krb5_conf_exists
    check_krb5_conf_ccache
    test_keyring_krb5_conf_ccache
    check_krb5_conf_kdc_lookup
    check_krb5_keytab_exists
    check_keytab_credential_list
    check_resolv_conf
    compare_resolv_conf_with_default_realm
    check_smb_conf
    compare_smb_realm_with_krb5_default_realm
    test_smb_realm
    test_domainname
    check_time_synchronization
    test_time_synchronization
    check_nameservers
    check_domain_controllers
    check_kerberos_and_ldap_srv_records
    compare_netbios_name
    check_common_packages
    check_group_policy_packages
    check_sssd_ad_packages
    check_sssd_winbind_packages
    
  • запустить тест check_smb_conf:
    $ diag-domain-client check_smb_conf
    
    is_domain_info_available
    [DONE]: is_domain_info_available
    
  • запустить тест check_krb5_conf_kdc_lookup с подробным выводом информации:
    $ diag-domain-client check_krb5_conf_kdc_lookup  -v
    
    ===============================================================================
    | Samba environment diagnostic tool |
    -------------------------------------------------------------------------------
    Version: 0.2.8
    Date: Ср 09 окт 2024 12:54:51 EET
    -------------------------------------------------------------------------------
    System information
    Kernel: 5.10.212-std-def-alt1
    Branch: p10
    ===============================================================================
    
    ===============================================================================
    | check_krb5_conf_kdc_lookup |
    -------------------------------------------------------------------------------
    
    /etc/krb5.conf: dns_lookup_kdc is enabled
    
    -------------------------------------------------------------------------------
    Check DNS lookup kerberos KDC status: [DONE]
    ===============================================================================
    
  • запустить все тесты:
    $ diag-domain-client
    
    Check hostname persistance: [DONE]
    Test hostname is FQDN (not short): [DONE]
    System authentication method: [DONE]
    Domain system authentication enabled: [DONE]
    System policy method: [DONE]
    System group policy enabled: [DONE]
    Check Kerberos configuration exists: [DONE]
    Kerberos credential cache status: [DONE]
    Using keyring as kerberos credential cache: [DONE]
    Check DNS lookup kerberos KDC status: [DONE]
    Check machine crendetial cache is exists: [DONE]
    Check machine credentials list in keytab: [SKIP]
    Check nameserver resolver configuration: [DONE]
    Compare krb5 realm and first search domain: [DONE]
    Check Samba configuration: [DONE]
    Compare samba and krb5 realms: [DONE]
    Check Samba domain realm: [DONE]
    Check hostname FQDN domainname: [DONE]
    Check time synchronization: [DONE]
    Time synchronization enabled: [WARN]
    Check nameservers availability: [WARN]
    Check domain controllers list: [FAIL]
    Check Kerberos and LDAP SRV-records: [DONE]
    Compare NetBIOS name and hostname: [DONE]
    Check common packages: [DONE]
    Check group policy packages: [DONE]
    Check SSSD AD packages: [DONE]
    Check SSSD Winbind packages: [WARN]
    
  • записать вывод теста check_krb5_conf_kdc_lookup в файл /tmp/diag-domain-client.log:
    $ diag-domain-client check_krb5_conf_kdc_lookup -w/tmp/diag-domain-client.log
    
    Check DNS lookup kerberos KDC status: [DONE]
    
    просмотреть содержимое файла /tmp/diag-domain-client.log:
    $ cat /tmp/diag-domain-client.log
    
    ===============================================================================
    | Samba environment diagnostic tool |
    -------------------------------------------------------------------------------
    Version: 0.2.8
    Date: Ср 09 окт 2024 12:54:24 EET
    -------------------------------------------------------------------------------
    System information
    Kernel: 5.10.212-std-def-alt1
    Branch: p10
    ===============================================================================
    
    ===============================================================================
    | check_krb5_conf_kdc_lookup |
    -------------------------------------------------------------------------------
    
    /etc/krb5.conf: dns_lookup_kdc is enabled
    
    -------------------------------------------------------------------------------
    Check DNS lookup kerberos KDC status: [DONE]
    ===============================================================================