Articulo Original (http://blogs.technet.com/b/askpfeplat/archive/2013/11/25/how-to-save-the-dns-cheese-protect-ad-integrated-dns-zones-from-accidental-deletions.aspx)

 

Como seguimiento al reciente artículo sobre la auditoria para eliminaciones DNS, aquí les tenemos un poquito sobre prevención.

Compañeros nuestros, nuestros pares en otras áreas y muchos otros han cubierto esto pero decidimos igual proporcionar nuestro propio aporte a forma de seguimiento lógico al artículo previamente mencionado sobre auditoría en DNS.

Aquí las ligas a algunos de otros valiosos artículos:

Empecemos…  

Para zonas DNS en la partición de dominio:

 

Usted puede usar la consola de “Active Directory Users and Computers” para acceder a uno de los mejores “checkboxes” en la historia de AD… o, igual se puede usar powershell (¡¡¡obviamente!!! J):

 

 

Las zonas en las particiones de aplicación Domain-Wide y Forest-Wide son almacenadas en algún otro lugar dentro de AD:

 

 

Para proteger estas zonas hacemos uso de powershell para habilitar lo equivalente a la opción “Protect object from accidental deletion”, dado que esto no se puede acceder todavía desde ninguna interfaz gráfica (hey Grupo de Producto, ¿cachaste ésta petición? J)

 

Partición de aplicación Domain-wide

Para enumerar todas las zonas dns vulnerables en una “cajita” gráfica:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=DomainDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

 

Para protegerlas:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=DomainDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Set-ADObject –ProtectedFromAccidentalDeletion $true

 

Para checarlas:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=ForestDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $True} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

 

Partición de aplicación Forest-wide

Para enumerar todas las zonas dns vulnerables en una “cajita” gráfica:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=ForestDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

Para protegerlas:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=ForestDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Set-ADObject –ProtectedFromAccidentalDeletion $true

 

Para checarlas:  

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “DC=ForestDnsZones,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $True} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

 

Partición de dominio (legacy)

Para enumerar todas las zonas dns vulnerables en una “cajita” gráfica:

 

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “CN=MicrosoftDNS,CN=System,DC=domain,DC=lab" -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

Para protegerlas:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “CN=MicrosoftDNS,CN=System,DC=domain,DC=lab " -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $False} | Set-ADObject –ProtectedFromAccidentalDeletion $true

 

Para checarlas:

Get-ADObject -Filter 'ObjectClass -like "dnszone"' -SearchScope Subtree -SearchBase “CN=MicrosoftDNS,CN=System,DC=domain,DC=lab " -properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $True} | Select name,protectedfromaccidentaldeletion | out-gridview

 

 

 

Nota:  Si se requiere eliminar alguna de estas zonas en el futuro lo único que habría de hacer es cambiar el atributo ‘ProtectedFromAccidentalDeletion’ a FALSE with PowerShell:

 

Set-ADObject “DC=DOMAIN_APP_PARTITION.COM,DC=DomainDnsZones,DC=domain,DC=lab" protectedFromAccidentalDeletion $False 

 

Bueno, ahora que ya tiene usted un poco más de recursos de ayuda… ¡¡¡es hora de ir y proteger su DNS!!!