Групповые Политики/Установка пароля root: различия между версиями
Нет описания правки |
мНет описания правки |
||
(не показано 39 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Stub}} | {{Stub}} | ||
На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации. | На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации. | ||
Эта групповая политика | Эта групповая политика позволит централизованно задавать пароль для локальных пользователей root (возможно и для других локальных пользователей) на всех хостах. | ||
== | == Сценарии изменения пароля == | ||
Предлагается к рассмотрению 2 сценария изменения паролей для локальных пользователей root | |||
#'''<big>Применять каждый раз</big>'''<br> Создается GPO, в котором указывается пароль в виде, указанном ниже. К данному GPO привязываются рабочие станции, на которых необходимо изменить пароль. Затем gpupdate на каждой рабочей станции применяет политики с новым паролем. Если администратор или пользователь, знающий текущий пароль root, локально поменяет на свой, то пароль будет сброшен при повторным применением политики | |||
#'''<big>Применить однажды</big>'''<br> У Microsoft в RSAT есть возможность создания GPO с параметром "Apply once and do not reapply". Если повторить такой функционал в gpupdate и admc, то появится возможность задавать политику с новым пармолем, которая будет применяться единожды. При этом у пользователей есть возможность изменить пароль для rotot. Однако при модификации GPO, политика применится и перетрет пароль, заданный пользователем. | |||
== Способ передачи пароля == | |||
{{Merge|tcb}} | |||
Можно передавать пароль в виде plain text, однако такой способ небезопасен по очевидным причинам. Поэтому предлагается передавать не сам пароль, а его хеш и подставлять его в файл с паролями в соответствии со схемой хранения паролей. | |||
Существует три схемы хранения паролей: | Существует три схемы хранения паролей: | ||
* [[TCB]] | * [[TCB]] | ||
* [[Traditional]] | * [[Traditional]] | ||
* [[Restricted]] | * [[Restricted]] | ||
В Alt по умолчанию используется схема [[TCB]], по этому далее рассмотрим ее. | |||
В отличие от остальных схем, в TCB для каждого пользователя создается отдельный файл, хранящий пароль в зашифрованном виде. такие файлы имеют путь | |||
<source lang="text"> | |||
/etc/tcb/%username%/shadow | |||
</source> | |||
и содержат в себе одну строку вида: | |||
<source lang="text"> | |||
username:password:lastchanged:minimum:maximum:warn:inactive:expire:reserve | |||
</source> | |||
со следующими полями (некоторые поля могут быть пустыми): | |||
# '''<big>Username</big>''' <br> Имя пользователя, используемое для входа в систему. | |||
# '''<big>Password</big>''' <br> Хеш пароля в формате ''$id$salt$hashed''. | |||
## '''id''' <br> идентификатор алгоритма хеширования (см. таблицу ниже) | |||
## '''salt''' <br>соль | |||
## '''hashed''' <br>хеш-сумма пароля | |||
# '''<big>Lastchanged</big>''' <br> Дата последнего изменения пароля. (Количество дней с 01.01.1970). | |||
# '''<big>Minimum</big>''' <br> Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя может быть снова изменен. | |||
# '''<big>Maximum</big>''' <br> Максимальный срок действия пароля. Количество дней после смены пароля пользователя. | |||
# '''<big>Warn</big>''' <br> Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля. | |||
# '''<big>Inactive</big>''' <br> Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя. | |||
# '''<big>Expire</big>''' <br> Дата, после которой учетная запись будет отключена (Количество дней с 01.01.1970). | |||
# '''<big>Reserve</big>''' <br> Не используется. | |||
{| class="wikitable" | |||
|+Алгоритмы хеширования | |||
|- | |||
! идентификатор !! способ хеширования !! комментарий | |||
|- | |||
| $1 || MD5 || | |||
|- | |||
| $2a || Blowfish || | |||
|- | |||
| $2y || Eksblowfish || | |||
|- | |||
| $5 || SHA-256 || | |||
|- | |||
| $6 || SHA-512 || | |||
|- | |||
| $y || [[yescript]] || используется по умолчанию | |||
|- | |||
| $gy || [[OSS-GOST-Crypto/gost-yescrypt|gost-yescrypt]] || | |||
|} | |||
К примеру, строка для пользователя ''root'' с паролем ''password'' будет такая: | |||
<source lang="text"> | |||
root:$y$j9T$jqfB3ZPUUnifIk09RvnjZ/$Pwz0u55QpZo/JQ.eEuEi2Rip1bS5/.mSvzvdYP2mVj.:18926:::::: | |||
</source> | |||
Именно такую строку предлагается передавать с помощью групповых политик. | |||
Помимо поля ''pasword'' нас интересуют и другие поля. Например, добавление в поле 'Expire' прошедшей даты позволит отключать учетную запись root. | |||
== TODO == | |||
''(данный список, возможно, не полный)'' | |||
* Реализовать в ADMC и gpupdate функцию "Apply once and do not reapply" | |||
* Создать шаблон групповой политики для изменения пароля | |||
* реализовать в gpupdate механизм применения данной политики. | |||
= LAPS = | |||
'''LAPS''' (Local admin password solution) - решение от Microsoft, позволяющее централизованно управлять паролями локальных администраторов. | |||
LAPS включает в себя три компонента: | |||
* '''Агент''' - Group Policy Client Side Extension (CSE). Является расширением групповой политики. Устанавливается на управляемые рабочие станции с помощью MSI. Отвечает за генерацию пароля и передачу его на контроллер домена. | |||
* '''Модуль PowerShell''' - используется для конфигурации LAPS. | |||
* '''Active Directory''' | |||
LAPS позволяет автоматически по расписанию (или по запросу) генерировать новые пароли на рабочих станциях, а затем передавать их (с использованием шифрования Kerberos, шифр AES по умолчанию). | |||
= References = | |||
* LAPS: https://habr.com/ru/post/440624/ | |||
** Download https://www.microsoft.com/en-us/download/details.aspx?id=46899 | |||
* https://adsecurity.org/?p=2288 | |||
* https://docs.admpwd.com/AdmPwd.PS/AdmPwd.PS.html | |||
* https://docs.microsoft.com/en-us/previous-versions/mt227395(v=msdn.10)?redirectedfrom=MSDN | |||
* Lithnet Password Protection: https://blog.lithnet.io/2019/01/lppad-1.html |
Текущая версия от 14:38, 20 апреля 2022
На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации. Эта групповая политика позволит централизованно задавать пароль для локальных пользователей root (возможно и для других локальных пользователей) на всех хостах.
Сценарии изменения пароля
Предлагается к рассмотрению 2 сценария изменения паролей для локальных пользователей root
- Применять каждый раз
Создается GPO, в котором указывается пароль в виде, указанном ниже. К данному GPO привязываются рабочие станции, на которых необходимо изменить пароль. Затем gpupdate на каждой рабочей станции применяет политики с новым паролем. Если администратор или пользователь, знающий текущий пароль root, локально поменяет на свой, то пароль будет сброшен при повторным применением политики - Применить однажды
У Microsoft в RSAT есть возможность создания GPO с параметром "Apply once and do not reapply". Если повторить такой функционал в gpupdate и admc, то появится возможность задавать политику с новым пармолем, которая будет применяться единожды. При этом у пользователей есть возможность изменить пароль для rotot. Однако при модификации GPO, политика применится и перетрет пароль, заданный пользователем.
Способ передачи пароля
Можно передавать пароль в виде plain text, однако такой способ небезопасен по очевидным причинам. Поэтому предлагается передавать не сам пароль, а его хеш и подставлять его в файл с паролями в соответствии со схемой хранения паролей.
Существует три схемы хранения паролей:
В Alt по умолчанию используется схема TCB, по этому далее рассмотрим ее. В отличие от остальных схем, в TCB для каждого пользователя создается отдельный файл, хранящий пароль в зашифрованном виде. такие файлы имеют путь
/etc/tcb/%username%/shadow
и содержат в себе одну строку вида:
username:password:lastchanged:minimum:maximum:warn:inactive:expire:reserve
со следующими полями (некоторые поля могут быть пустыми):
- Username
Имя пользователя, используемое для входа в систему. - Password
Хеш пароля в формате $id$salt$hashed.- id
идентификатор алгоритма хеширования (см. таблицу ниже) - salt
соль - hashed
хеш-сумма пароля
- id
- Lastchanged
Дата последнего изменения пароля. (Количество дней с 01.01.1970). - Minimum
Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя может быть снова изменен. - Maximum
Максимальный срок действия пароля. Количество дней после смены пароля пользователя. - Warn
Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля. - Inactive
Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя. - Expire
Дата, после которой учетная запись будет отключена (Количество дней с 01.01.1970). - Reserve
Не используется.
идентификатор | способ хеширования | комментарий |
---|---|---|
$1 | MD5 | |
$2a | Blowfish | |
$2y | Eksblowfish | |
$5 | SHA-256 | |
$6 | SHA-512 | |
$y | yescript | используется по умолчанию |
$gy | gost-yescrypt |
К примеру, строка для пользователя root с паролем password будет такая:
root:$y$j9T$jqfB3ZPUUnifIk09RvnjZ/$Pwz0u55QpZo/JQ.eEuEi2Rip1bS5/.mSvzvdYP2mVj.:18926::::::
Именно такую строку предлагается передавать с помощью групповых политик.
Помимо поля pasword нас интересуют и другие поля. Например, добавление в поле 'Expire' прошедшей даты позволит отключать учетную запись root.
TODO
(данный список, возможно, не полный)
- Реализовать в ADMC и gpupdate функцию "Apply once and do not reapply"
- Создать шаблон групповой политики для изменения пароля
- реализовать в gpupdate механизм применения данной политики.
LAPS
LAPS (Local admin password solution) - решение от Microsoft, позволяющее централизованно управлять паролями локальных администраторов. LAPS включает в себя три компонента:
- Агент - Group Policy Client Side Extension (CSE). Является расширением групповой политики. Устанавливается на управляемые рабочие станции с помощью MSI. Отвечает за генерацию пароля и передачу его на контроллер домена.
- Модуль PowerShell - используется для конфигурации LAPS.
- Active Directory
LAPS позволяет автоматически по расписанию (или по запросу) генерировать новые пароли на рабочих станциях, а затем передавать их (с использованием шифрования Kerberos, шифр AES по умолчанию).
References
- LAPS: https://habr.com/ru/post/440624/
- https://adsecurity.org/?p=2288
- https://docs.admpwd.com/AdmPwd.PS/AdmPwd.PS.html
- https://docs.microsoft.com/en-us/previous-versions/mt227395(v=msdn.10)?redirectedfrom=MSDN
- Lithnet Password Protection: https://blog.lithnet.io/2019/01/lppad-1.html