Active Directory: Evitare e ripristinare i danni accidentali

Active Directory è un repository di oggetti e come tale può essere oggetto nella sua vita anche operazioni errati di cancellazione e/o modifica. Le cause di questi danni accidentali possono essere varie come ad esempio l’errore umano oppure l’esecuzione di un tool/script che segue operazioni massive . Diventa quindi importante mettere in campo una serie di best practices atte a prevenire e quando non possibile recuperare i dati persi. Di seguito elencherò una serie di accorgimenti e procedure derivate dalla mia personale esperienza.

1. Prevenzione mediante delega amministrativa

Molto spesso all’interno di infrastrutture informatiche vi sono soggetti che eseguono alcune operazioni amministrative su determinate Organizational Unit come la creazione e la manutenzione di utenti. Di conseguenza è consigliabile concedere solo le autorizzazioni necessarie a tali soggetti . L’operazione può essere semplicemente eseguita tramite la GUI di Active Directory Users and Computers a riguardo si vedano:

Va precisato che perché questo metodo di protezione abbia effetto occorre sviluppare in modo iterativo un modello di delega seguendo ad esempio questa procedura come descritto nell’articolo Delega dell’autorità in Active Directory di Joel Yoker (Senior Consultant Microsoft Consulting Services) e Rob Campbell (Senior Technical Microsoft Consulting Services):

  • Definire i ruoli amministrativi IT all’interno dell’organizzazione
  • Sviluppare un modello per unità amministrative e gruppi di protezione
  • Definire gli account secondari per gli amministratori IT
  • Delegare i diritti

Ovviamente un prerequisito essenziale per l’adozione delle delega amministrativa è l’utilizzo di account dedicati da parte dei soggetti che a vario titolo e autorizzazione intervengono su Active Directory. La Bad Practice di utilizzare l’account Administrator deve essere relegata solo per operazioni eccezionali di istallazione o configurazioni particolari come ad esempi una migrazione di AD. A riguardo il mio consiglio è quello di configurare, ad esempio, tramite script l’invio di mail di allarme quando si rileva sui domain controller un login tramite l’account Administrator in modo da scoraggiarne l’utilizzo perché in conseguenza all’uso occorre motivarlo per evitare allarmi.

2. Prevenzione tramite la protezione da cancellazione accidentale di oggetti AD

La protezione dalla cancellazione accidentale è possibile fin da Windows 2003 in quanto in realtà si basa sull’impostazione di permissions sugli oggetti AD in modo che non sia possibile l’eliminazione. Scendendo nel dettaglio questo significa impostare un Deny per le Delete and Delete Subtree advanced permissions sul gruppo Everyone.

In Windows Server 2008 tale impostazione è stata semplificata introducendo l’opzione “Protect object from accidental deletion” nello snap-in Active Directory Users and Computers che se selezionato imposta appunto la  Deny delete subtree permission. Per poter utilizzare questa funzionalità occorre abilitare le visualizzazione delle Advanced Features nel menu View menu che rende disponibile l’opzione Protect object from accidental deletion nel tab Object. Inoltre è necessario avere nell’infrastruttura almeno un DC con Windows Server 2008 o successivo.

In Windows Server 2008 R2 sono stati resi disponibili gli Active Directory Cmdlets in Windows PowerShell tramite cui è possibile impostare in modo massivo la protezione da cancellazione accidentale sugli oggetti in AD.

Di seguito, ad esempio, i cmdlets per impostare la protezione da cancellazione accidentale sulla OU Ufficio001 nel dominio WindowsServer.it per oggetti di tipo Utente, Computer, Gruppo e Organizational Unit:

Get-ADObject -Searchbase ‘OU=Ufficio001,DC=windowserver,DC=it’ -Filter ‘ObjectClass -eq “user” -or ObjectClass -eq “computer” -or ObjectClass -eq “group” -or ObjectClass -eq “organizationalUnit”‘ -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} | Set-ADObject -ProtectedFromAccidentalDeletion:$true

A riguardo si vedano anche i seguenti:

3. Recupero mediante abilitazione del cestino di Active Directory

Per velocizzare il recupero di oggetti cancellati è possibile abilitare il Cestino di Active Directory disponibile a partire da Windows Server 2008 R2 grazie al quale viene migliorato e semplificato il ripristino a seguito di eliminazioni che in  Windows Server 2003 e Windows Server 2008 erano più difficoltosi e parziali. A riguardo si veda Windows Server 2008 R2: Active Directory Recycle Bin.

In Windows Server 2012 la gestione è stata semplificata grazie alla GUI offerta da Active Directory Administration Center, a riguardo si vedano Gestione di Active Directory Recycle Bin in Windows Server 2012 e Active Directory Accidental Deletion – Prevention & Cure.

4. Recupero mediante restore autoritativo di Active Directory

Se il danno accidentale su AD non si sviluppa tramite eliminazione di oggetti, ma tramite una modifica o se non si ha a disposizione il Cestino di AD è possibile tentare il recupero tramite il restore di AD autoritativo totale o parziale.

A riguardo si vedano i seguenti:

Inoltre si vedano anche le Active Directory Backup and Disaster Recovery Procedures pubblicate da EDE Consulting nella sezione Active Publications, al momento sono disponibili le seguenti versioni dei documenti:

Per dei semplici step by step si vedano anche l’articolo Windows Server – How to Perform an Authoritative Restore of Active Directory Objects della DELL Knowledge Base e la sessione WS03 – Windows Server 2012 Active Directory Disaster Recovery della  Server Infrastructure Days 2013.

5. Recupero mediante ripristino manuale

Nel caso estremo in cui i precedenti metodi di recupero non siano applicabili, ad esempi nei casi in cui gli oggetti AD da recuperare siano sparsi su varie OU o siano già intervenuti una serie di modifiche successive da preservare è possibile approcciare il recovery ripristinando un DC in una ambiente di test separato dalla produzione in un periodo temporale antecedente al disastro e utilizzare un tool di reportistica di AD per generare una fotografia dello stato da utilizzare poi per confronto e ripristino manuale.

Vi sono sono vari tool disponibili uno che ho avuto modo di testare  è ADManager Plus disponibile in versione Trial per 30 giorni in grado di generare report Html, PDF e Csv.

Conclusioni

Se possibile è ovviamente meglio prevenire le situazioni disastrose generate per cause accidentali, ma non si può ovviamente pensare di riuscire ad evitare in modo completo eventuali danni accidentali. Quindi è necessario avere sempre a disposizione backup dei System State aggiornati dei Domain Controller.

Inoltre può essere utile abilitare il l’Auditing delle operazioni di modifica su Active Directory per capire come il danno accidentale si è sviluppato ed evitare che si ripresenti in futuro ed adottare la più corretta procedura di ripristino. Per informazioni su come abilitare l’Auditing in AD si vedano:

Esistono anche una serie di tool di terze parti in grado di eseguire l’auditing di Active Directory fornendo feature ulteriori rispetto a quelle offerte nativamente dal sistema operativo. Di seguito alcuni esempi: