Диагностические инструменты: различия между версиями
(не показана 1 промежуточная версия этого же участника) | |||
Строка 3: | Строка 3: | ||
== Инструмент диагностики состояния контроллера домена == | == Инструмент диагностики состояния контроллера домена == | ||
{{pkgL|diag-domain-controller}} — инструмент диагностики состояния контроллера домена. | {{pkgL|diag-domain-controller}} — инструмент диагностики состояния контроллера домена. | ||
diag-domain-controller содержит набор проверок и тестов, по результатам которых можно определить корректность настроек компьютера для работы в качестве контроллера домена. | |||
diag-domain-controller имеет модульную структуру. Модули можно вызывать общим списком или отдельно. | |||
Установка: | Установка: | ||
Строка 16: | Строка 20: | ||
* <tt>-V</tt>, <tt>--version</tt> — вывести версию и выйти; | * <tt>-V</tt>, <tt>--version</tt> — вывести версию и выйти; | ||
* <tt>-h</tt>, <tt>--help</tt> — показать справку и выйти. | * <tt>-h</tt>, <tt>--help</tt> — показать справку и выйти. | ||
Возможные состояния проверок: | |||
* DONE — успешное выполнение модуля; | |||
* WARN — предупреждение для некритических тестов в модуле; | |||
* FAIL — неудачное выполнение проверки. | |||
Список проверок: | |||
{| class="wikitable" | |||
! Проверка | |||
! Описание | |||
|- | |||
| is_domain_info_available | |||
| Проверка доступности просмотра общей информации о домене | |||
|- | |||
| is_hostname_correct | |||
| Проверка правильного написания доменного имени узла | |||
|- | |||
| is_not_empty_sysvol | |||
| Проверяет, содержит ли файлы каталог sysvol | |||
|- | |||
| is_samba_package_installed | |||
| Проверяет, установлен ли в системе пакет Samba ({{pkgL|samba-dc}} или {{pkgL|samba-dc-mitkrb5}}) | |||
|- | |||
| is_samba_service_running | |||
| Проверяет, запущена ли служба Samba | |||
|- | |||
| are_there_errors_in_samba_databases | |||
| Проверяет наличие ошибок в базах Samba | |||
|- | |||
| is_ntp_service_running | |||
| Проверяет, включена ли синхронизация времени | |||
|} | |||
Примеры (команды запускаются на контроллере домена): | Примеры (команды запускаются на контроллере домена): | ||
Строка 48: | Строка 85: | ||
== Инструмент диагностики клиента домена == | == Инструмент диагностики клиента домена == | ||
{{pkgL|diag-domain-client}} — инструмент диагностики состояния клиента домена. | {{pkgL|diag-domain-client}} — инструмент диагностики состояния клиента домена. | ||
diag-domain-client содержит набор проверок и тестов, по результатам которых можно определить корректность настроек компьютера для работы в домене, а также убедиться, что доступны все необходимые ресурсы домена. | |||
diag-domain-client имеет модульную структуру. Модули можно вызывать общим списком или отдельно. Утилита позволяет записать результат в log-файл. Процесс диагностики зависит от того, находится ли компьютер в домене или нет. Выполнение некоторых проверок требует полномочий суперпользователя. Для корректной работы необходимо получить Kerberos-билет доменного пользователя. | |||
{{note|diag-domain-client считает, что компьютер введен в домен, если {{cmd|control system-auth}} имеет значение sss}}. | |||
Установка: | Установка: | ||
Строка 60: | Строка 103: | ||
* <tt>-V</tt>, <tt>--version</tt> — вывести версию и выйти; | * <tt>-V</tt>, <tt>--version</tt> — вывести версию и выйти; | ||
* <tt>-v</tt>, <tt>--verbose</tt> — подробный вывод; | * <tt>-v</tt>, <tt>--verbose</tt> — подробный вывод; | ||
* <tt>-w[FILE]</tt>, <tt>--logfile[=FILE]</tt> — записать подробный | * <tt>-w[FILE]</tt>, <tt>--logfile[=FILE]</tt> — записать подробный протокол в файл по указанному пути. Если файл не указан, вывод будет записан в файл {{path|./diag-domain-client.log}}. В случае если файл уже существует, то запись производится в файл с постфиксом (например, {{path|diag-domain-client.log.1}}, {{path|diag-domain-client.log.2}} и т.д.); | ||
* <tt>-f</tt>, <tt>--force</tt> — принудительная запись в существующий файл; | |||
* <tt>-l</tt>, <tt>--list</tt> — вывести список тестов. | * <tt>-l</tt>, <tt>--list</tt> — вывести список тестов. | ||
Если компьютер введен в домен, утилита diag-domain-client выдаёт FAIL для тех проверок, когда несоответствие проверяемого элемента приводит к неработоспособности машины в домене. При выполнении программы не суперпользователем некоторые проверки могут быть пропущены (SKIP) или находиться в состоянии WARN. В случае успешного выполнения отображается статус DONE. | |||
Возможные состояния проверок: | |||
* DONE — успешное выполнение модуля; | |||
* SKIP — пропуск проверки, если проверка выполняется без полномочий суперпользователя; | |||
* WARN — предупреждение для некритических тестов в модуле; | |||
* FAIL — неудачное выполнение проверки. | |||
Список проверок: | |||
{| class="wikitable" | |||
! Проверка | |||
! Описание | |||
|- | |||
| check_hostnamectl | |||
| Отображает полную информацию о узле и соответствующие настройки: имя, значок, система, версия ядра, архитектура, информация о виртуализации (при наличии) | |||
|- | |||
| test_hostname | |||
| Проверяет, является ли имя компьютера полностью определенным именем домена (FQDN) | |||
|- | |||
| check_system_auth | |||
| Отображает метод аутентификации пользователей, используемый в подсистеме PAM (sss — компьютер введен в домен, local — не введен). Выводит содержимое файла {{path|/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 | |||
| Проверяет наличие, отображает права доступа и содержимое файла конфигурации {{path|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» в {{path|/etc/krb5.conf}} являются — true/yes | |||
|- | |||
| check_krb5_keytab_exists | |||
| Проверяет наличие, права доступа и дату последнего изменения файла {{path|/etc/krb5.keytab}}. В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера | |||
|- | |||
| check_keytab_credential_list | |||
| Отображает содержимое файла {{path|/etc/krb5.keytab}} (файл с учётными данными машинного пользователя). В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера. | |||
Требуется запуск от root, иначе SKIP. | |||
|- | |||
| check_resolv_conf | |||
| Проверяет наличие и выводит содержимое файла конфигурации разрешения имен {{path|resolv.conf}} | |||
|- | |||
| compare_resolv_conf_with_default_realm | |||
| Сравнивает домен для поиска (поле search в {{path|/etc/resolv.conf}}) с доменом по умолчанию, указанным для Kerberos | |||
|- | |||
| check_smb_conf | |||
| Проверяет наличие и выводит содержимое файла настроек конфигурации Samba | |||
|- | |||
| compare_smb_realm_with_krb5_default_realm | |||
| Сравнивает домен, указанный в файле конфигурации Samba, с доменом по умолчанию, указанным для Kerberos | |||
|- | |||
| test_smb_realm | |||
| Проверяет корректное заполнение информации о домене в конфигурационных файлах Samba и Kerberos | |||
|- | |||
| test_domainname | |||
| Сверяет доменное имя из {{path|/etc/hostname}} с именем домена в составе FQDN-имени узла | |||
|- | |||
| check_time_synchronization | |||
| Отображает настройку синхронизации времени с сервером; выводит подробную информацию — часовой пояс, временную зону и т.д. Необходимо для корректной работы с сертификатами, электронной подписью, билетами Kerberos | |||
|- | |||
| test_time_synchronization | |||
| Проверяет, включена ли синхронизация времени | |||
|- | |||
| check_nameservers | |||
| Проверяет доступность всех контроллеров домена по имени ({{cmd|host <domain FQDN>}}) и IP-адресу (работает ли {{path|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 | |||
| Сравнивает короткое имя машины из {{path|/etc/hostname}} с NetBios-именем машины в {{path|smb.conf}} | |||
|- | |||
| check_common_packages | |||
| Проверяет наличие установленных основных пакетов и их версий ({{pkgL|alterator-auth}}, {{pkgL|libnss-role}}, {{pkgL|libkrb5}} и {{pkgL|libsmbclient}}) | |||
|- | |||
| check_group_policy_packages | |||
| Проверяет наличие установленных основных пакетов и их версий для управления групповыми политиками ({{pkgL|local-policy}} и {{pkgL|gpupdate}}) | |||
|- | |||
| check_sssd_ad_packages | |||
| Проверяет наличие установленного мета-пакета и его версии для аутентификации c помощью sssd ({{pkgL|task-auth-ad-sssd}}) | |||
|- | |||
| check_sssd_winbind_packages | |||
| Проверяет наличие установленного мета-пакета и его версии для аутентификации c помощью winbind ({{pkgL|task-auth-ad-winbind}}) | |||
|} | |||
Примеры: | Примеры: |
Текущая версия от 13:14, 11 октября 2024
Для запуска тестов в 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] ===============================================================================