Групповые Политики/Установка пароля root
На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации. Эта групповая политика позволит централизованно задавать пароль для локальных пользователей 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.