In Windows 2000 e 2003 non è possibile definire più policy password, magari per avere criteri di sicurezza più stringenti per determinati account, ma si ha una sola Policy password applicata all’intero dominio.
Per avere Policy password diverse era necessario quindi creare un nuovo dominio o affidarsi a soluzioni di terzi produttori.
In Windows 2008 è ora possibile definire password policy multiple tramite l’introduzione della feature fine-grained password and lockout policy che si basa su due nuove classi di oggetti
La Classe Passowrd Settings Container viene creato durante la crezione del dominio
CN=Password Settings Container, CN=System, DC=Domain, DC=ExtensionDomain
questa classe non è cancellabile ne modificabile
La classe Password Settings Object contiene le diverse impostazioni di password che si vogliono utilizzare, gli oggetti di questa classe possono essere creati e modificati.
Bene tenere presente comunque che esiste soltanto una Password and lockup Policy Settings che è applicata a tutti gli utenti del dominio, il Fine-Grained password policy sono applicati tramite i PSO a specifici utenti o membri di gruppi globali.
Requisiti
Domain Functional Level: Windows 2008, questo significa che tutti i domain controller del dominio devono essere almeno Windows 2008 Server.
Solo gli amministratori di dominio possono creare, modificare e collegare PSO. E’ comunque possibile effettuare una delega.
Priorità
Ogni PSO, come per le Policy, ha un valore che ne indica la precedenza, 1 indica la precedenza più alta rispetto a 2.
-PSO vengono applicati quelli con precedenza più alta. PSO con precedenza 1 prioritario rispetto a PSO precedenza 2 ecc…
-PSO applicati direttamente ad utenti hanno la precedenza su quelli applicati ai gruppi
-In caso di PSO con stesso precedenza verrà applicato quello con GUID più basso
Implementazione
I PSO non vengono applicati a specifiche OU ma applicati direttamente a global group o utenti, è possibile quindi creare un gruppo globale, inserire in questo gli utenti oggetto della speficia fine-granted password e poi associare il PSO a questo global group .
Le impostazioni gestibili tramite il fine-grainted password sono identiche a quelle presenti nella Password Policy delle GPO, tuttavia la gestione non avviene tramite GPO ma manca di una propria GUI e va eseguita tramite ADSIEdit, LDIF, PowerShell, tool di terze parti come https://www.specopssoft.com
Questi gli attributi di un PSO
msDS-PasswordSettingsPrecedence
GPO: Password Settings
Valore arbitrario usato per definire quale policy ha la precedenza se ad un gruppo si applicano più PSO.
msDS-PasswordReversibleEncrisptionEnable
GPO: Password Settings
Booleano (default FALSE). Definisce se la password deve essere salvata in reversible encription
msDS-PasswordHistoryLength
GPO: Password Settings
Numero di password usate memorizzate dal sistema. Determina quante password un utente deve cambiare prima di poterne riutilizzare una. (default 24)
msDS-ComplexityEnabled
GPO: Password Settings
Booleano (default TRUE). Definisce se la password deve rispettare i criteri di complessità
msDS-MimimumPasswordLength
GPO: Password Settings
Definisce la lunghezza minima di una password (default 7)
msDS-MinimumPasswordAge
GPO: Password Settings
Formato I8 (default 1 giorno = -864000000000) Durata minima di un password prima di poter essere modificata.
msDS-MaximumPasswordAge
GPO: Password Settings
Formato I8 (default 42 giorni = -36288000000000) Durata massima di una password
msDS-LockoutThreshold
GPO: Account Lockout
(Default 0) Definisce il numero di tentativi falliti prima di mettere un utente in lockout
msDS-LockoutObservationWindows
GPO: Account Lockout
Formato I8 (default 30 minuti = -18000000000) Dopo quanto tempo, dall’ultimo tentativo, il conteggio dei tentativi errati di logon viene azzerato
msDS-LockoutDuration
GPO: Account Lockout
Formato I8 (default 30 minuti = -18000000000)
msDS-PSOAppliesTo
Elenco degli oggetti (User Account e/o Global Security Group) a cui la policy si applica
I valori che indicano intervalli temporali sono espresso nel formato I8, cioè in nanosecondi negativi
Creazione PSO tramite ADSIEdit
- Avviare ADSIEdit
- click tasto destro, selezionare connect to, inserire il nome dominio e premere ok
- Espandere il nome principale, espandere il Distingued Name del dominio, espandere CN=System, e selezionare CN=Password Settings Container. Qui sono elencati i vari PSO creati
- Tasto destro e “New Object”
- proseguire indicando le impostazioni password e lockout volute. nell’ordine viene richiesti
- CN
- msDS-PasswordSettingsPrecedence
- msDS-PasswordReversibleEncryptionEnabled
- msDS-PasswordHistoryLength
- msDS-PasswordComplexityEnabled
- msDS-MinimumPasswordLength
- msDS-MinimumPasswordAge
- MaximumPasswordAge
- msDS-LockoutThreshold
- msDS-LockoutObservationWindow
- msDS-LockoutDuration
- Indicare ora a quali gruppi/utenti/utente applicare tale PSO, tasto destro sul PSO creato e scorrere la lista attributi fino a msDS-PSOAppliesTo, click su “Edit” e aggiungere gli utenti o il DN del Global Group a cui applicare il PSO
msDS-ResultantPSO e msDS-PSOApplied
l’attributo msDS-ResultantPSO mostra il PSO applicato all’utente, per visualizzarlo:
- aprire lo snap-in Active Directory Users and Computers
- e attivare la Advance Features.
- Visualizzare le proprieta’ dell’utente e selezionare la scheda Attribute Editor
- Selezionare Constructed dal pulsante Filter
- Scorrere la lista attributi fino a msDS-ResultantPSO
l’attributo msDS-PSOApplied mostra il PSO applicato ad un dato Global Group, per visualizzarlo:
- aprire lo snap-in Active Directory Users and Computers
- e attivare la Advance Features.
- Visualizzare le proprieta’ dell’Global Gorup e selezionare la scheda Attribute Editor
- Selezionare BackLinks dal pulsante Filter
- Scorrere la lista attributi fino a msDS-PSOApplied
Creazione PSO tramite LDIF
Il file LDIF per la creazione di un PSO deve contenere le direttive:
dn: CN=PSO_LDIF,CN=Password Settings Container,CN=System,DC=protasi,DC=local
changetype: add
objectClass: msDS-PasswordSettings
msDS-MaximumPasswordAge:-1728000000000
msDS-MinimumPasswordAge:-864000000000
msDS-MinimumPasswordLength:15
msDS-PasswordHistoryLength:30
msDS-PasswordComplexityEnabled:TRUE
msDS-PasswordReversibleEncryptionEnabled:FALSE
msDS-LockoutObservationWindow:-18000000000
msDS-LockoutDuration:-18000000000
msDS-LockoutThreshold:0
msDS-PasswordSettingsPrecedence:20
msDS-PSOAppliesTo:CN=PSO_Example2,OU=Group,DC=protasi,DC=local
l’importazione in Active Directory avviene con lo strumento ldifde (supponendo di aver chiamato il file PSO2.ldif) da riga di comando
ldifde -i -f PSO2.ldif
Powershell
non poteva mancare l’opzione PowerShell, ecco un esempio
New-ADFineGrainedPasswordPolicy -Name “PSO_PowerShell” -Precedence 500 -ComplexityEnabled $true -Description “The Domain Users Password Policy”-DisplayName “Domain Users PSO” -LockoutDuration “0.12:00:00” -LockoutObservationWindow “0.00:15:00” -LockoutThreshold 10 -MaxPasswordAge “60.00:00:00” -MinPasswordAge “1.00:00:00” -MinPasswordLength 8 -PasswordHistoryCount 24 -ReversibleEncryptionEnabled $false
Risorse Correlate
https://technet.microsoft.com/en-us/library/dd367859(WS.10).aspx
https://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx
https://technet.microsoft.com/en-us/library/cc754461(WS.10).aspx
https://blogs.technet.com/b/italy/archive/2007/05/23/technet-newwave-tour-approfondimenti-su-password-policy.aspx
https://technet.microsoft.com/it-it/library/cc754461(WS.10).aspx