www.SAMURAJ-cz.com 

27.04.2024 Jaroslav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Group Policy - Politiky hesel a zamykání účtů

Pondělí, 21.02.2011 18:46 | Samuraj - Petr Bouška |
V každé síti je třeba řídit bezpečnost. Jedním z hlavních útoků je prolomení hesla a proto musíme mít definovánu politiku, jak mají být hesla silná a co se děje při zadání špatných hesel. V Microsoft prostředí na to využijeme Group Policy, které nám dovolí definovat a vynutit parametry hesel. Hesla můžeme definovat pro lokální účty a v doménovém prostředí také pro doménové účty. Windows Server 2008 navíc přináší možnost definovat více rozdílných politik pro doménové účty.

Tento článek vyšel také na Microsoft TechNet Blogu CZ/SK pod názvem Politiky hesel a zamykání účtů pomocí Group Policy.

Anglicky se tato oblast označuje jako Password and Account Lockout Policy. Politika hesel (Password Policy) nám dovoluje specifikovat parametry hesla, jako je minimální počet znaků, zda musí být heslo komplexní, zda se musí hesla v pravidelném intervalu měnit (minimální a maximální stáří hesla), jestli a kolik starších hesel se pamatuje (ty se pak nedají nastavit znovu).

Komplexní heslo v tomto případě znamená, že nesmí obsahovat část uživatelova jména a musí obsahovat znaky minimálně ze tří skupin (ze čtyř možných), což jsou:

  • velké písmeno (A-Z)
  • malé písmeno (a-z)
  • číslice (0-9)
  • speciální (ne-alfanumerický) znak (třeba *#,.@%)

V Group Policy se nastavení politiky hesel nachází v cestě Computer Configuration/Windows Settings/Security Settings/Account Policies/Password Policy. Nastavení v této politice se uplatňuje při změně hesla. To znamená, že když změníme nastavení politiky, tak se pro uživatele nic nemění, dokud si nebudou měnit heslo, pak musí dodržet tyto parametry.

Změna hesla může být vynucena intervalem (maximální stáří hesla) nebo nastavením na účtu User must change password at next logon. Pokud je na uživatelském účtu nastaveno Password never expires, tak se pro tento účet neuplatňuje stáří hesla (není povinnost měnit heslo, i když je nastavena politika). Není možno nastavit současně User must change password at next logon a Password never expires. Pokud tedy nastavíme politiku hesel, a chceme mít hesla podle ní, tak máme jedinou možnost. Nastavíme na účty atribut User must change password at next logon a vypneme (pro jistotu) Password never expires. To můžeme udělat jednoduše pomocí PowerShellu, například:

Get-ADUser -Filter * -SearchBase "OU=Firma,DC=firma,DC=local" | Set-ADUser -PasswordNeverExpires $false
Get-ADUser -Filter * -SearchBase "OU=Firma,DC=firma,DC=local" | Set-ADUser -ChangePasswordAtLogon $true 
Group Policy Password Policy

Politika zamykání účtů (Account Lockout Policy) nám určuje jestli, a po kolika chybně zadaných heslech, se účet zamkne, jestli se po zadané době automaticky odemkne a po jaké době se resetuje počítadlo chybných hesel. V Group Policy se nastavení politiky hesel nachází v cestě Computer Configuration/Windows Settings/Security Settings/Account Policies/Account Lockout Policy.

Group Policy Account Lockout Policy

Politika pro doménové účty před Windows Server 2008

Pokud máme doménu nižšího stupně než Windows Server 2008, tak můžeme mít pouze jednu politiku hesel pro jednu doménu. To znamená, že pro všechny účty v doméně platí stejná pravidla. Obecně je to dáno tím, že může existovat pouze jedna politika hesel pro každou databázi účtů. Active Directory je jedna databáze, každý počítač pak má jednu svoji lokální databázi pro lokální účty. Takže pro každý počítač může být jiná politika pro lokální účty a pak může být pouze jedna společná politika pro doménu a doménové účty v ní. Obejít se to dá pouze složitě, třeba vytvořením více domén.

Standardně se při instalaci prvního DC vytvoří dvě GPO:

  • Default Domain Policy GPO - připojena na kořen domény, hlavní nastavení pro doménu včetně politiky hesel
  • Default Domain Controller Policy GPO - připojena k OU Domain Controllers, úvodní bezpečnostní nastavení pro DC

Pozn.: Doporučené řešení je neměnit nastavení těchto dvou GPO, ale vytvořit nové GPO na stejném místě a dát jim vyšší prioritu. Protože se tak můžeme rychle vrátit k originálnímu nastavení v případě problémů (stačí vypnout novou GPO).

Doménová politika hesel je standardně součástí Default Domain Policy, ale to není naprosto nutné. Můžeme použít libovolnou politiku (vytvořit novou), kde definujeme pravidla politiky hesel pro doménové účty, ale tuto politiku musíme připojit na kořenový kontejner domény. A její hodnoty nesmí přepisovat jiná politika na tomto místě, jinak řečeno nastavit této politice nejvyšší prioritu.

Politika pro lokální účty

Politiku hesel pro lokální účty na počítači můžeme definovat buďto lokálně pomocí Local Group Polici Editor nebo centrálně doménovou politikou. Když vytvoříme politiku hesel a připojíme ji na kontejner s počítači, tak se toto nastavení neuplatní pro doménové účty, ale pro lokální účty na daných počítačích.

Další politiky pro doménové účty na Windows Server 2008

Pokud máme funkční stupeň domény Windows Server 2008, tak můžeme použít Fine-Grained Password Policy (FGPP), které nám dovolí definovat více politik hesel pro různé skupiny doménových účtů. Základní politiku hesel (defaultní) ale vytváříme pořád stejně a linkujeme ji na kořen domény.

Pokud chceme vytvořit další politiku hesel a aplikovat ji na určité účty, tak musíme použít FGPP. AD schéma je rozšířeno o dva objekty Password Settings Container a Password Setting, které se v tomto případě využijí. Nejde tedy použít standardní metody a nástroj Group Policy Management Console, ale musíme buď využít ADSI Edit (adsiedit.msc) nebo PowerShell a modul Active Directory (mnou upřednostňovaná metoda).

Postup je pak takový, že nejprve vytvoříme Password Settings Object (PSO) uvnitř Password Settings Containeru, kterému nastavíme parametry politiky. Potom PSO aplikujeme na uživatele nebo bezpečnostní skupinu (global security group). Nemůžeme PSO aplikovat na počítač nebo organizační jednotku (OU).

Abychom si to shrnuli. Microsoft konečně doplnil možnost vytvořit více politik hesel v doméně. Bohužel to ale neudělal standardním způsobem, takže další politiky musíme vytvářet úplně jiným postupem. Navíc změnil i to, že standardní politiky aplikujeme na OU (či doménu nebo site), ale PSO se aplikuje na bezpečnostní skupinu nebo uživatele (neříkám, že je to špatné).

Vytvoření PSO pomocí ADSI Edit

Pouze stručná informace, jak můžeme využít ADSI Edit.

  • pomocí adsiedit.msc se připojíme k doméně (pod účtem s oprávněními k AD - Domain Admin) k Default naming context
  • rozbalíme CN=Password Settings Container,CN=System,DC=firma,DC=local
  • klikneme pravým tlačítkem a z kontextového menu zvolíme New - Object
  • vybereme msDS-PasswordSettings a Next
  • nyní projdeme jednoduchého průvodce, kde vyplníme 11 povinných atributů

MS popis, který obsahuje detaily o jednotlivých atributech je v článku AD DS Fine-Grained Password and Account Lockout Policy Step-by-Step Guide.

Přiřazení PSO pomocí ADUC

Vytvořené PSO objekty vidíme i pomocí Active Directory Users and Computers (ADUC), pokud máme nastaveno v menu View - Advanced Features. A právě v ADUC budeme přiřazovat politiky uživatelům nebo skupinám (můžeme to samozřejmě udělat i v ADSI Edit).

  • rozbalíme naši doménu, kontejner System a Password Settings Container
  • otevřeme PSO (dvojklik)
  • přepneme se na záložku Attribute Editor
  • najdeme hodnotu msDS-PSOAppliesTo a zvolíme Edit
  • zde přidáme požadované uživatele nebo skupiny

Pokud chceme zjistit jestli, a případně jaká, PSO se aplikuje na uživatele, tak si otevřeme uživatelský účet v ADUC a přepneme se na záložku Attribute Editor. Pokud nemáme zobrazené konstruované atributy, tak klikneme na Filter a zaškrtneme Constructed. Potom najdeme atribut msDS-ResultantPSO, který obsahuje název aplikované (vítězné) politiky (PSO). Také se můžeme podívat na atribut msDS-PSOApplied, kde je seznam všech aplikovaných PSO (tento atribut vidíme i u skupin).

Vytvoření a přiřazení PSO pomocí PowerShellu

Záleží na vkusu, ale jako lepší metoda se mi zdá využití PowerShellu. Potřebujeme k tomu modul ActiveDirectory, který je součástí Remote Server Administration Tools.

Pro vytvoření PSO využijeme cmdlet New-ADFineGrainedPasswordPolicy. Jednotlivé parametry jsou pochopitelné již názvu. Je tu však důležitý rozdíl oproti standardní politice a to, že hodnotu MaxPasswordAge nemůžeme nastavit na 0, aby platnost hesla nikdy nevypršela. Pokud v cmdletu nulu zadáme, tak dostaneme chybu, která mi nepřipadá moc informativní.

New-ADFineGrainedPasswordPolicy : The modification was not permitted for security reasons

Řešením je buď na účtech nastavit Password never expires nebo nastavit MaxPasswordAge na maximální hodnotu 10675199.00:00:00, která je opravdu vysoká. Následují dva příklady vytvoření PSO.

New-ADFineGrainedPasswordPolicy -Name "JmenoPSO" -DisplayName "Domain Users PSO" -Description "The Domain Users Password Policy" -Precedence 500 -LockoutDuration "0.12:00:00" -LockoutObservationWindow "0.00:15:00" -LockoutThreshold 10 -MaxPasswordAge "60.00:00:00" -MinPasswordAge "1.00:00:00" -ComplexityEnabled $true -MinPasswordLength 8 -PasswordHistoryCount 24 -ReversibleEncryptionEnabled $false
New-ADFineGrainedPasswordPolicy -Name "PSO2" -Precedence 10 -LockoutDuration "0.12:00:00" -LockoutObservationWindow "0.00:15:00" -LockoutThreshold 3 -MaxPasswordAge "10675199.00:00:00" -MinPasswordAge "0.00:00:00" -ComplexityEnabled $true -MinPasswordLength 12 -PasswordHistoryCount 0 -ReversibleEncryptionEnabled $false

Ještě jsem narazil na problém, že někdy mi PowerShell nefungoval na doménovém řadiči a dostával jsem chybu.

New-ADFineGrainedPasswordPolicy : Access is denied 

Pomocí PowerShellu můžeme také přiřadit PSO k uživateli/skupině jednoduchým příkazem.

Add-ADFineGrainedPasswordPolicySubject JmenoPSO -Subjects 'Domain Users'

Změna hodnot v PSO.

Set-ADFineGrainedPasswordPolicy "JmenoPSO" -MinPasswordLength 8 -PasswordHistoryCount 24

Smazání PSO.

Remove-ADFineGrainedPasswordPolicy -Identity JmenoPSO

Zrušení přiřazení PSO k uživateli/skupině.

Remove-ADFineGrainedPasswordPolicySubject JmenoPSO -Subjects User1

Vypsání seznamu PSO.

Get-ADFineGrainedPasswordPolicy -Filter 'Name -like "*"' | FT Name,Precedence,MinPasswordLength -AutoSize

Zobrazení detailů k jedné PSO.

Get-ADFineGrainedPasswordPolicy JmenoPSO -Properties *

Jaká PSO se aplikuje na určitého uživatele.

Get-ADUserResultantPasswordPolicy User1

Zajímavý je i následující příkaz, který zobrazí defaultní politiku hesel pro aktuálního (přihlášeného) uživatele.

Get-ADDefaultDomainPasswordPolicy
zobrazeno: 33828krát | Komentáře [7]

Autor:

Související články:

Group Policy

Základem centrální správy počítačů v doméně jsou určitě skupinové politiky (Group Policy). Pomocí nich můžeme řídit nastavení, bezpečnost a chování pracovních stanic a serverů.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Pavlíček

    Dobrý den, jde na ws2008r2 nastavit vyřazení stanice z domény po autorizaci uživatele špatným heslem? Stává se mi to a nevim kde to zrušit.

    Dekuji

    Honza

    Středa, 17.05.2017 12:25 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Pavlíček: O něčem takovém jsem nikdy neslyšel. Nemyslím si, že by to šlo.

    Sobota, 20.05.2017 23:17 | odpovědět
  3. [3] Miroslav

    Mam Huawei rio 8gt som zabudol bespecnostne heslo jak sa dostanem do mobilu

    Čtvrtek, 28.06.2018 20:15 | odpovědět
  4. [4] Pepan

    Dobry den

    Vim ze je to na domenu 2008,alena domene 2016 nemohu toto nastaveni najit. Je nejaka zmena? Kdyz nastavim novou delku hesel vynuti domena zmenu hesla u vsech uzivatelu i tech co splnuji novou politiku?

    Dekuji za info.

    Středa, 08.09.2021 09:47 | odpovědět
  5. [5] Samuraj

    odpověď na [4]Pepan: Nevím, kterou část nemůžete nalézt. Politiky hesel tam stále jsou :). Pouze nastavení požadavků nevynutí změnu hesla, jen ve chvíli nastavování hesla se podle ní kontroluje.

    Středa, 08.09.2021 10:52 | odpovědět
  6. [6] Pepan

    Diky za odpoved

    Pomoci adsi:

    "klikneme pravým tlačítkem a z kontextového menu zvolíme New - Object,vybereme msDS-PasswordSettings a Next" - tato volba chybi

    Pomoci ADUC:

    "přepneme se na záložku Attribute Editor

    najdeme hodnotu msDS-PSOAppliesTo a zvolíme Edit" taktez hodnota chybi.

    Nevadi chtel jsem jen overit ze zmena delky a minimalni platnost hesla nevynuti vsem uzivatelum zmenu.

    Dekuji

    Středa, 08.09.2021 11:59 | odpovědět
  7. [7] Samuraj

    odpověď na [6]Pepan: Od Windows Server 2012 se Fine-grained Password Policy spravuje pomocí Active Directory Administration Center. Pod System - Password Settings Container.

    Ale pomocí ADSI by se tam mělo dát dostat také. A vyzkoušel jsem a ano, stále to funguje stejně.

    Středa, 08.09.2021 12:36 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách