Диагностические инструменты: различия между версиями

Материал из ALT Linux Wiki
 
(не показаны 2 промежуточные версии этого же участника)
Строка 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> — записать подробный вывод в файл (если файл не указан, вывод будет записан в файл diag-domain-client.log);
* <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> — принудительная запись в существующий файл (если не использовать эту опцию, более старые логи будут переименованы: diag-domain-client.log.1, 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}})
|}


Примеры:
Примеры:
*вывести список тестов:
*вывести список тестов:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">$ diag-domain-client -l
$ diag-domain-client -l
 
check_hostnamectl
check_hostnamectl
test_hostname
test_hostname
Строка 98: Строка 243:
</syntaxhighlight>
</syntaxhighlight>
*запустить тест check_smb_conf:
*запустить тест check_smb_conf:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">$ diag-domain-client check_smb_conf
$ diag-domain-client check_smb_conf
 
is_domain_info_available
is_domain_info_available
[DONE]: is_domain_info_available
[DONE]: is_domain_info_available
Строка 106: Строка 251:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">
$ diag-domain-client check_krb5_conf_kdc_lookup  -v
$ diag-domain-client check_krb5_conf_kdc_lookup  -v
===============================================================================
===============================================================================
| Samba environment diagnostic tool |
| Samba environment diagnostic tool |
Строка 130: Строка 276:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">
$ diag-domain-client
$ diag-domain-client
Check hostname persistance: [DONE]
Check hostname persistance: [DONE]
Test hostname is FQDN (not short): [DONE]
Test hostname is FQDN (not short): [DONE]
Строка 162: Строка 309:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">
$ diag-domain-client check_krb5_conf_kdc_lookup -w/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]
Check DNS lookup kerberos KDC status: [DONE]
</syntaxhighlight>
</syntaxhighlight>
Строка 167: Строка 315:
*:<syntaxhighlight lang="bash">
*:<syntaxhighlight lang="bash">
$ cat /tmp/diag-domain-client.log
$ cat /tmp/diag-domain-client.log
===============================================================================
===============================================================================
| Samba environment diagnostic tool |
| Samba environment diagnostic tool |

Текущая версия от 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-билет доменного пользователя.

Примечание: 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]
    ===============================================================================