ActiveDirectory/MachinePassword: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 14 промежуточных версий 2 участников)
Строка 9: Строка 9:


== Локальная политика смены пароля машинного аккаунта ==
== Локальная политика смены пароля машинного аккаунта ==
Сменой пароля машинного аккаунта можно управлять с помощью групповых политик. Для этого нужно отредактировать параметр  политики домена по умолчанию (Default domain policy) '''"Domain member: Maximum machine account password age"''' ('''"Член домена: максимальный срок действия пароля учётной записи компьютера"'''), который располагается в подразделе '''"Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options"''' ('''"Конфигурация компьютера/Политики/Конфигурация Windows/Параметры безопасности/Локальные политики/Параметры безопасности"'''). Значение по умолчанию: 30 дней.
Сменой пароля машинного аккаунта можно управлять с помощью групповых политик. Для этого нужно отредактировать параметр  политики домена по умолчанию (Default domain policy) '''«Domain member: Maximum machine account password age»''' («Член домена: максимальный срок действия пароля учётной записи компьютера»), который располагается в подразделе '''«Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options»''' («Конфигурация компьютера/Политики/Конфигурация Windows/Параметры безопасности/Локальные политики/Параметры безопасности»). Значение по умолчанию: 30 дней.


С помощью другого параметра '''"Член домена: отключить изменение пароля учётных записей компьютера"''' можно отключить обновления пароля машинного аккаунта совсем, но делать этого не рекомендуется.
С помощью другого параметра '''«Член домена: отключить изменение пароля учётных записей компьютера»''' можно отключить обновления пароля машинного аккаунта совсем, но делать этого не рекомендуется.


{{Attention|Выше указанные параметры корректно работают на машинах с ОС MS Windows 2000 и старше.}}
{{Attention|Вышеуказанные параметры корректно работают на машинах с ОС MS Windows 2000 и старше.}}
{{Attention|На машинах с ОС Альт (sssd 2.8.1) данные параметры игнорируются (необходимо проверить).}}
{{Attention|На машинах с ОС Альт ({{pkg|sssd}} 2.8.1) данные параметры игнорируются (необходимо проверить).}}
{{Attention|В ADMC, на данный момент (admc 0.11.2), нет возможности настроить данные параметры групповой политики. Необходимо использовать оснастку RSAT "Управление групповыми политиками".}}
{{Attention|В ADMC на текущий момент ({{pkg|admc}} 0.11.2) нет возможности настроить данные параметры групповой политики. Следует использовать оснастку RSAT «Управление групповыми политиками».}}


== Включение обновления пароля машинного аккаунта ==
== Включение обновления пароля машинного аккаунта ==
Строка 26: Строка 26:


==== Winbind ====
==== Winbind ====
Winbind, на текущий момент (samba-winbind 4.16.7), не умеет после смены пароля машинного аккаунта обновлять системный keytab файл (/etc/krb5.keytab). Следовательно, во избежание конфликтов с sssd, следует отключить этот функционал. Для этого в файл /etc/samba/smb.conf в секцию [global] необходимо добавить параметр '''machine password timeout = 0'''.
Winbind, на текущий момент ({{pkg|samba-winbind}} 4.16.7), не умеет после смены пароля машинного аккаунта обновлять системный keytab файл ({{path|/etc/krb5.keytab}}). Следовательно, во избежание конфликтов с sssd, следует отключить этот функционал. Для этого в файл {{path|/etc/samba/smb.conf}} в секцию [global] необходимо добавить параметр '''machine password timeout = 0''':
 
'''/etc/samba/smb.conf'''
<source lang="bash">[global]
<source lang="bash">[global]
machine password timeout = 0</source>
machine password timeout = 0</source>


==== SSSD ====
==== SSSD ====
Sssd для обновления пароля машинного аккаунта использует утилиту adcli. Необходимо убедиться, что она установлена в системе.
Sssd для обновления пароля машинного аккаунта использует утилиту {{pkg|adcli}}. Необходимо убедиться, что она установлена в системе.


<source lang="bash"># apt-get install adcli</source>
<source lang="bash"># apt-get install adcli</source>


Так как Winbind не умеет обновлять системный keytab файл, то хранит текущий пароль машинного аккаунта в своей базе данных (/var/lib/samba/private/secrets.tdb). Необходимо включить в sssd функцию обновления пароля в этой базе. Для этого следует в файл /etc/sssd/ssd.conf в секцию [domain/<Домен>] добавить параметр '''ad_update_samba_machine_account_password = true'''.
Так как Winbind не умеет обновлять системный keytab файл, то хранит текущий пароль машинного аккаунта в своей базе данных ({{path|/var/lib/samba/private/secrets.tdb}}). Необходимо включить в sssd функцию обновления пароля в этой базе. Для этого следует в файл {{path|/etc/sssd/sssd.conf}} в секцию [domain/<Домен>] добавить параметр '''ad_update_samba_machine_account_password = true'''.


Периодичностью обновления пароля машинного аккаунта можно управлять с помощью параметра '''ad_maximum_machine_account_password_age''' в секции [domain/<Домен>] в /etc/sssd/ssd.conf. Значение по умолчанию: 30 дней.
Периодичностью обновления пароля машинного аккаунта можно управлять с помощью параметра '''ad_maximum_machine_account_password_age''' в секции [domain/<Домен>] в {{path|/etc/sssd/ssd.conf}}. Значение по умолчанию: 30 дней.


Для корректного функционирования обновления пароля машинного аккаунта sssd необходим доступ на запись в файл /etc/krb5.keytab. Для этого не достаточно привилегий пользователя _sssd, от которого обычно и запускается sssd. Необходимо запускать sssd с правами суперпользователя. Для этого следует в файле /etc/sssd/sssd.conf в секции [sssd] изменить значение параметра user на root.
Для корректного функционирования обновления пароля машинного аккаунта sssd необходим доступ на запись в файл {{path|/etc/krb5.keytab}}. Для этого не достаточно привилегий пользователя _sssd, от которого обычно и запускается sssd. Необходимо запускать sssd с правами суперпользователя. Для этого следует в файле {{path|/etc/sssd/sssd.conf}} в секции [sssd] изменить значение параметра user на root:
 
<syntaxhighlight lang="ini">
'''/etc/sssd/sssd.conf'''
<source lang="bash">
[sssd]
[sssd]
user = root
user = root


[domain/<Домен>]
[domain/<Домен>]
ad_update_samba_machine_account_password = true</source>
ad_update_samba_machine_account_password = true</syntaxhighlight>


'''Внимание!''' Если вводить машину в домен с помощью Центра управления системой (модуль alterator-auth), то начиная с версии alterator-auth 0.43.13 следующие параметры прописываются в конфигурационные файлы по умолчанию:
{{attention| Если вводить машину в домен с помощью [[Alterator-auth|ЦУС]], то начиная с версии {{pkg|alterator-auth}} 0.43.13 (обновление системы от 21.07.2022) следующие параметры прописываются в конфигурационные файлы по умолчанию:
* '''/etc/samba/smb.conf''': machine password timeout = 0
* {{path|/etc/samba/smb.conf}}: <syntaxhighlight lang="ini">machine password timeout = 0</syntaxhighlight>
* '''/etc/sssd/sssd.conf''': ad_update_samba_machine_account_password = true
* {{path|/etc/sssd/sssd.conf}}: <syntaxhighlight lang="ini">ad_update_samba_machine_account_password = true</syntaxhighlight>
}}
{{attention| Установка обновлений для машины, введенной в домен с помощью [[Alterator-auth|ЦУС]] без обновлений от 21.07.2022, автоматически '''не добавляет''' параметры '''machine password timeout''' и '''ad_update_samba_machine_account_password''' в конфигурационные файлы.
}}


== Отключение обновления пароля машинного аккаунта ==
== Отключение обновления пароля машинного аккаунта ==
=== ОС Windows ===
=== ОС Windows ===
Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС Windows 2000 и старше достаточно включить параметр групповой политики "Default Domain Policy" '''"Член домена: отключить изменение пароля учётных записей компьютера"'''.
Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС Windows 2000 и старше достаточно включить параметр групповой политики "Default Domain Policy" '''«Член домена: отключить изменение пароля учётных записей компьютера»'''.


=== ОС семейства Альт ===
=== ОС семейства Альт ===
Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС семейства Альт необходимо:
Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС семейства Альт необходимо:
* В файле /etc/sssd/sssd.conf в секции [domain/<Домен>] изменить параметр '''ad_maximum_machine_account_password_age''' на 0.
* В файле {{path|/etc/sssd/sssd.conf}} в секции [domain/<Домен>] изменить параметр '''ad_maximum_machine_account_password_age''' на 0:
* В файле /etc/samba/smb.conf в секции [global] изменить параметр '''machine password timeout''' на 0.
: <source lang="bash">[domain/<Домен>]
 
'''/etc/sssd/sssd.conf'''
<source lang="bash">[domain/<Домен>]
ad_maximum_machine_account_password_age = 0</source>
ad_maximum_machine_account_password_age = 0</source>
 
* В файле {{path|/etc/samba/smb.conf}} в секции [global] изменить параметр '''machine password timeout''' на 0:
'''/etc/samba/smb.conf'''
: <source lang="bash">[global]
<source lang="bash">[global]
machine password timeout = 0</source>
machine password timeout = 0</source>


Строка 86: Строка 81:
=== Потеря доверия между машиной и доменом ===
=== Потеря доверия между машиной и доменом ===
Проверить, имеет ли возможность машина успешно аутентифицироваться в домене можно следующим способам:
Проверить, имеет ли возможность машина успешно аутентифицироваться в домене можно следующим способам:
* Необходимо убедиться, что keytab файл /etc/krb5.keytab содержит корректную информацию.
* необходимо убедиться, что keytab файл {{path|/etc/krb5.keytab}} содержит корректную информацию:
: <source lang="bash">klist -ke
: <source lang="bash"># klist -ke
Keytab name: FILE:/etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
KVNO Principal
Строка 101: Строка 96:
   1 MACHINE01$@DOMAIN.ALT (DEPRECATED:arcfour-hmac)
   1 MACHINE01$@DOMAIN.ALT (DEPRECATED:arcfour-hmac)
</source>
</source>
* Затем следует попытаться получить kerberos билет для машинного аккаунта MACHINE01$ используя keytab файл /etc/krb5.keytab.
* затем следует попытаться получить kerberos билет для машинного аккаунта MACHINE01$ используя keytab файл {{path|/etc/krb5.keytab}}:
: <source lang="bash"># kinit -k MACHINE01\$@DOMAIN.ALT</source>
: <source lang="bash"># kinit -k MACHINE01\$@DOMAIN.ALT</source>
* В заключении, необходимо убедиться, что kerberos билет успешно получен и удалить его.
* в заключении, необходимо убедиться, что kerberos билет успешно получен и удалить его:
: <source lang="bash"># klist
: <source lang="bash"># klist
Ticket cache: KEYRING:persistent:0:0
Ticket cache: KEYRING:persistent:0:0
Строка 112: Строка 107:
         renew until 17.02.2023 22:25:59
         renew until 17.02.2023 22:25:59
# kdestroy -p MACHINE01\$@DOMAIN.ALT</source>
# kdestroy -p MACHINE01\$@DOMAIN.ALT</source>
MACHINE01 - Имя машины в верхнем регистре.<br>
MACHINE01 Имя машины в верхнем регистре.<br>
DOMAIN.ALT - Realm домена в верхнем регистре.
DOMAIN.ALT Realm домена в верхнем регистре.


{{Attention|Команды нужно выполнять с привилегиями суперпользователя.}}
{{Attention|Команды нужно выполнять с привилегиями суперпользователя.}}
Строка 121: Строка 116:
Если диагностика показала, что машина потеряла доверие с доменом, то, для восстановления работоспособности, необходимо выполнить следующие действия:
Если диагностика показала, что машина потеряла доверие с доменом, то, для восстановления работоспособности, необходимо выполнить следующие действия:


* Обновить систему ({{cmd|apt-get update && apt-get dist-upgrade}}).
* обновить систему ({{cmd|apt-get update && apt-get dist-upgrade}});
* Удалить файл {{path|/etc/krb5.keytab}}.
* удалить файл {{path|/etc/krb5.keytab}};
* Повторно ввести машину в домен используя [[Alterator-auth|ЦУС]].
* повторно ввести машину в домен используя [[Alterator-auth|ЦУС]];
* Убедиться, что конфигурационные файлы соответствуют одному из сценариев «Включение обновления пароля машинного аккаунта» или «Отключение обновления пароля машинного аккаунта».
* убедиться, что конфигурационные файлы соответствуют одному из сценариев «Включение обновления пароля машинного аккаунта» или «Отключение обновления пароля машинного аккаунта»;
* Перезагрузить машину.
* перезагрузить машину.

Текущая версия от 03:14, 25 июля 2024

Настройки обновления паролей аккаунтов машин в домене Miscrosoft Active Directory и Samba DC.

Описание

После завершения процедуры ввода в домен каждая машина получает специальный аккаунт вида MACHINE01$. Такой аккаунт, ассоциированный с машиной, а не с конкретным пользователем, позволяет машине выполнять в домене действия от своего имени. Например, запрашивать информацию о пользователях, получать машинные групповые политики и т. д.

Как и у любого другого пользователя, у машинного пользователя есть свой пароль, генерируемый автоматически в процессе ввода машины в домен. В отличии от обычных пользователей, у машинных аккаунтов нет ограничения на время жизни пароля, но машина имеет возможность поменять его самостоятельно. По умолчанию машины с MS Windows 2000 и старше меняют пароль раз в 30 дней. Информация о последней смене пароля хранится в атрибуте машинного аккаунта pwdlastset.

Локальная политика смены пароля машинного аккаунта

Сменой пароля машинного аккаунта можно управлять с помощью групповых политик. Для этого нужно отредактировать параметр политики домена по умолчанию (Default domain policy) «Domain member: Maximum machine account password age» («Член домена: максимальный срок действия пароля учётной записи компьютера»), который располагается в подразделе «Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options» («Конфигурация компьютера/Политики/Конфигурация Windows/Параметры безопасности/Локальные политики/Параметры безопасности»). Значение по умолчанию: 30 дней.

С помощью другого параметра «Член домена: отключить изменение пароля учётных записей компьютера» можно отключить обновления пароля машинного аккаунта совсем, но делать этого не рекомендуется.

Внимание! Вышеуказанные параметры корректно работают на машинах с ОС MS Windows 2000 и старше.
Внимание! На машинах с ОС Альт (sssd 2.8.1) данные параметры игнорируются (необходимо проверить).
Внимание! В ADMC на текущий момент (admc 0.11.2) нет возможности настроить данные параметры групповой политики. Следует использовать оснастку RSAT «Управление групповыми политиками».


Включение обновления пароля машинного аккаунта

ОС Windows

Для включения периодического обновления пароля машинного аккаунта на машинах под управлением ОС Windows 2000 и старше дополнительных действий не требуется. Периодичность обновления настраивается с помощью соответствующей групповой политики.

ОС семейства Альт

За обновление пароля машинного аккаунта на машинах под управлением ОС Альт отвечают сервисы sssd и winbind.

Winbind

Winbind, на текущий момент (samba-winbind 4.16.7), не умеет после смены пароля машинного аккаунта обновлять системный keytab файл (/etc/krb5.keytab). Следовательно, во избежание конфликтов с sssd, следует отключить этот функционал. Для этого в файл /etc/samba/smb.conf в секцию [global] необходимо добавить параметр machine password timeout = 0:

[global]
machine password timeout = 0

SSSD

Sssd для обновления пароля машинного аккаунта использует утилиту adcli. Необходимо убедиться, что она установлена в системе.

# apt-get install adcli

Так как Winbind не умеет обновлять системный keytab файл, то хранит текущий пароль машинного аккаунта в своей базе данных (/var/lib/samba/private/secrets.tdb). Необходимо включить в sssd функцию обновления пароля в этой базе. Для этого следует в файл /etc/sssd/sssd.conf в секцию [domain/<Домен>] добавить параметр ad_update_samba_machine_account_password = true.

Периодичностью обновления пароля машинного аккаунта можно управлять с помощью параметра ad_maximum_machine_account_password_age в секции [domain/<Домен>] в /etc/sssd/ssd.conf. Значение по умолчанию: 30 дней.

Для корректного функционирования обновления пароля машинного аккаунта sssd необходим доступ на запись в файл /etc/krb5.keytab. Для этого не достаточно привилегий пользователя _sssd, от которого обычно и запускается sssd. Необходимо запускать sssd с правами суперпользователя. Для этого следует в файле /etc/sssd/sssd.conf в секции [sssd] изменить значение параметра user на root:

[sssd]
user = root

[domain/<Домен>]
ad_update_samba_machine_account_password = true
Внимание! Если вводить машину в домен с помощью ЦУС, то начиная с версии alterator-auth 0.43.13 (обновление системы от 21.07.2022) следующие параметры прописываются в конфигурационные файлы по умолчанию:
  • /etc/samba/smb.conf:
    machine password timeout = 0
    
  • /etc/sssd/sssd.conf:
    ad_update_samba_machine_account_password = true
    
Внимание! Установка обновлений для машины, введенной в домен с помощью ЦУС без обновлений от 21.07.2022, автоматически не добавляет параметры machine password timeout и ad_update_samba_machine_account_password в конфигурационные файлы.


Отключение обновления пароля машинного аккаунта

ОС Windows

Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС Windows 2000 и старше достаточно включить параметр групповой политики "Default Domain Policy" «Член домена: отключить изменение пароля учётных записей компьютера».

ОС семейства Альт

Для отключения периодического обновления пароля машинного аккаунта на машинах под управлением ОС семейства Альт необходимо:

  • В файле /etc/sssd/sssd.conf в секции [domain/<Домен>] изменить параметр ad_maximum_machine_account_password_age на 0:
[domain/<Домен>]
ad_maximum_machine_account_password_age = 0
  • В файле /etc/samba/smb.conf в секции [global] изменить параметр machine password timeout на 0:
[global]
machine password timeout = 0

Диагностика

Дата последней смены пароля

Дата последней смены пароля хранится в базе данных AD. Запросить её можно одни из способов, перечисленных ниже:

На введённой в домен машине выполняем с правами суперпользователя:

# net ads info

Если машина уже потеряла доверие в домене, то выполнить эту же команду от доменного пользователя:

# net ads info -U <user>

Нас интересует поле Last machine account password change.

Потеря доверия между машиной и доменом

Проверить, имеет ли возможность машина успешно аутентифицироваться в домене можно следующим способам:

  • необходимо убедиться, что keytab файл /etc/krb5.keytab содержит корректную информацию:
# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
  1 host/machine01.domain.alt@DOMAIN.ALT (aes256-cts-hmac-sha1-96) 
  1 host/MACHINE01@DOMAIN.ALT (aes256-cts-hmac-sha1-96) 
  1 host/machine01.domain.alt@DOMAIN.ALT (aes128-cts-hmac-sha1-96) 
  1 host/MACHINE01@DOMAIN.ALT (aes128-cts-hmac-sha1-96) 
  1 host/machine01.domain.alt@DOMAIN.ALT (DEPRECATED:arcfour-hmac) 
  1 host/MACHINE01@DOMAIN.ALT (DEPRECATED:arcfour-hmac) 
  1 MACHINE01$@DOMAIN.ALT (aes256-cts-hmac-sha1-96) 
  1 MACHINE01$@DOMAIN.ALT (aes128-cts-hmac-sha1-96) 
  1 MACHINE01$@DOMAIN.ALT (DEPRECATED:arcfour-hmac)
  • затем следует попытаться получить kerberos билет для машинного аккаунта MACHINE01$ используя keytab файл /etc/krb5.keytab:
# kinit -k MACHINE01\$@DOMAIN.ALT
  • в заключении, необходимо убедиться, что kerberos билет успешно получен и удалить его:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: MACHINE01$@DOMAIN.ALT

Valid starting       Expires              Service principal
10.02.2023 22:25:59  11.02.2023 08:25:59  krbtgt/DOMAIN.ALT@DOMAIN.ALT
        renew until 17.02.2023 22:25:59
# kdestroy -p MACHINE01\$@DOMAIN.ALT

MACHINE01 — Имя машины в верхнем регистре.
DOMAIN.ALT — Realm домена в верхнем регистре.

Внимание! Команды нужно выполнять с привилегиями суперпользователя.
Внимание! Убедитесь, что имя машины в keytab файле /etc/krb5.keytab соответствует реальному имени машины (см. hostnamectl).


Восстановление работоспособности

Если диагностика показала, что машина потеряла доверие с доменом, то, для восстановления работоспособности, необходимо выполнить следующие действия:

  • обновить систему (apt-get update && apt-get dist-upgrade);
  • удалить файл /etc/krb5.keytab;
  • повторно ввести машину в домен используя ЦУС;
  • убедиться, что конфигурационные файлы соответствуют одному из сценариев «Включение обновления пароля машинного аккаунта» или «Отключение обновления пароля машинного аккаунта»;
  • перезагрузить машину.