Диагностические инструменты
Для запуска тестов в 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-билет доменного пользователя.
.
Установка:
# 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] ===============================================================================