Групповые Политики/Установка пароля root: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
мНет описания правки
 
(не показано 20 промежуточных версий 1 участника)
Строка 2: Строка 2:
На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации.  
На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации.  
Эта групповая политика позволит централизованно задавать пароль для локальных пользователей root (возможно и для других локальных пользователей) на всех хостах.
Эта групповая политика позволит централизованно задавать пароль для локальных пользователей root (возможно и для других локальных пользователей) на всех хостах.
== способ передачи пароля ==
== Сценарии изменения пароля ==
# ПОСТОЯННО
Предлагается к рассмотрению 2 сценария изменения паролей для локальных пользователей root
#У Microsoft в RSAT есть возможность создания GPO с параметром "Apply once and do not reapply". Если повторить такой функционал в gpupdate и admc, то появится возможность задавать политику с номып паролем единожды.
#'''<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}}
{{Merge|tcb}}
Можно передавать пароль в виде plain text, однако такой способ небезопасен по очевидным причинам. Поэтому предлагается передавать не сам пароль, а его хеш и подставлять его в файл с паролями в соответствии со схемой хранения паролей.
Можно передавать пароль в виде plain text, однако такой способ небезопасен по очевидным причинам. Поэтому предлагается передавать не сам пароль, а его хеш и подставлять его в файл с паролями в соответствии со схемой хранения паролей.
Строка 15: Строка 16:
* [[Restricted]]                                                                     
* [[Restricted]]                                                                     
В Alt по умолчанию используется схема [[TCB]], по этому далее рассмотрим ее.
В Alt по умолчанию используется схема [[TCB]], по этому далее рассмотрим ее.
В отличие от  
В отличие от остальных схем, в TCB для каждого пользователя создается отдельный файл, хранящий пароль в зашифрованном виде. такие файлы имеют путь
<source>
<source lang="text">
/etc/tcb/%username%/shadow
</source>
и содержат в себе одну строку вида:
<source lang="text">
username:password:lastchanged:minimum:maximum:warn:inactive:expire:reserve
username:password:lastchanged:minimum:maximum:warn:inactive:expire:reserve
</source>
</source>
 
со следующими полями (некоторые поля могут быть пустыми):
# '''<big>Username</big></big>''' <br> Имя пользователя, используемое для входа в систему.
# '''<big>Username</big>''' <br> Имя пользователя, используемое для входа в систему.
# '''<big>Password</big>''' <br> Хеш пароля в формате ''$id$salt$hashed''.  
# '''<big>Password</big>''' <br> Хеш пароля в формате ''$id$salt$hashed''.  
## '''id</big>''' <br> идентификатор алгоритма хеширования (см. таблицу ниже)
## '''id''' <br> идентификатор алгоритма хеширования (см. таблицу ниже)
## '''salt</big>''' <br>соль
## '''salt''' <br>соль
## '''hashed''' <br>хеш-сумма пароля
## '''hashed''' <br>хеш-сумма пароля
# '''<big>Lastchanged</big>''' <br> Дата последнего изменения пароля. (Количество дней с 01.01.1970).
# '''<big>Lastchanged</big>''' <br> Дата последнего изменения пароля. (Количество дней с 01.01.1970).
Строка 30: Строка 35:
# '''<big>Warn</big>''' <br> Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля.
# '''<big>Warn</big>''' <br> Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля.
# '''<big>Inactive</big>''' <br> Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя.  
# '''<big>Inactive</big>''' <br> Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя.  
# '''<big>Expire</big>''' <br> Дата, после которой учетная запись будет отключена
# '''<big>Expire</big>''' <br> Дата, после которой учетная запись будет отключена (Количество дней с 01.01.1970).
# '''<big>Reserve</big>''' <br> Не используется.
# '''<big>Reserve</big>''' <br> Не используется.
{| class="wikitable"
{| class="wikitable"
|+Алгоритмы хеширования
|+Алгоритмы хеширования
Строка 48: Строка 52:
| $6 || SHA-512 ||  
| $6 || SHA-512 ||  
|-
|-
| $y || yescript || используется по умолчанию
| $y || [[yescript]] || используется по умолчанию
|-
|-
| $gy || [[OSS-GOST-Crypto/gost-yescrypt|gost-yescrypt]] ||  
| $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

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

На данной странице описана не существующая функциональность, а лишь описание идеи о ее реализации. Эта групповая политика позволит централизованно задавать пароль для локальных пользователей root (возможно и для других локальных пользователей) на всех хостах.

Сценарии изменения пароля

Предлагается к рассмотрению 2 сценария изменения паролей для локальных пользователей root

  1. Применять каждый раз
    Создается GPO, в котором указывается пароль в виде, указанном ниже. К данному GPO привязываются рабочие станции, на которых необходимо изменить пароль. Затем gpupdate на каждой рабочей станции применяет политики с новым паролем. Если администратор или пользователь, знающий текущий пароль root, локально поменяет на свой, то пароль будет сброшен при повторным применением политики
  2. Применить однажды
    У Microsoft в RSAT есть возможность создания GPO с параметром "Apply once and do not reapply". Если повторить такой функционал в gpupdate и admc, то появится возможность задавать политику с новым пармолем, которая будет применяться единожды. При этом у пользователей есть возможность изменить пароль для rotot. Однако при модификации GPO, политика применится и перетрет пароль, заданный пользователем.

Способ передачи пароля

Merge-arrow.svg
Необходимо перенести содержимое этой статьи в статью tcb
Вы можете помочь проекту, объединив их.


Можно передавать пароль в виде plain text, однако такой способ небезопасен по очевидным причинам. Поэтому предлагается передавать не сам пароль, а его хеш и подставлять его в файл с паролями в соответствии со схемой хранения паролей.

Существует три схемы хранения паролей:

В Alt по умолчанию используется схема TCB, по этому далее рассмотрим ее. В отличие от остальных схем, в TCB для каждого пользователя создается отдельный файл, хранящий пароль в зашифрованном виде. такие файлы имеют путь

/etc/tcb/%username%/shadow

и содержат в себе одну строку вида:

username:password:lastchanged:minimum:maximum:warn:inactive:expire:reserve

со следующими полями (некоторые поля могут быть пустыми):

  1. Username
    Имя пользователя, используемое для входа в систему.
  2. Password
    Хеш пароля в формате $id$salt$hashed.
    1. id
      идентификатор алгоритма хеширования (см. таблицу ниже)
    2. salt
      соль
    3. hashed
      хеш-сумма пароля
  3. Lastchanged
    Дата последнего изменения пароля. (Количество дней с 01.01.1970).
  4. Minimum
    Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя может быть снова изменен.
  5. Maximum
    Максимальный срок действия пароля. Количество дней после смены пароля пользователя.
  6. Warn
    Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля.
  7. Inactive
    Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя.
  8. Expire
    Дата, после которой учетная запись будет отключена (Количество дней с 01.01.1970).
  9. 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