Brug PowerShell til at begrænse registrering af DNS-ressourceoptagelse

Jeg skal begynde med PowerShell.

Faktisk er jeg i stand til at skrive denne sætning ikke startede med PowerShell!

# Udfør på domænecontrolleren for at være 'skjult'

$ DataValue = "Ldap", "Gc", "DcByGuid", "Kdc", "Dc", "Rfc1510Kdc", "GenericGc", "Rfc1510UdpKdc", "Rfc1510Kpwd", "Rfc1510UdpKpwd"

New-ItemProperty -Path "HKLM: SYSTEMCurrentControlSetServicesNetlogonParameters" -Name DnsAvoidRegisterRecords -Value $ DataValue -PropertyType Multistring

Genstart-Service-Navn Netlogon

Forstået? Godt. Jeg behøver ikke at gå videre! Hvad? Åh, okay ...

Nogle sammenhænge: Minimering af risiko under opdateringer af Active Directory

Et par år tilbage kaldes en kollega Glenn LeCheminant offentliggjort en store blogindlæg om hvordan man udfører testning i produktion af en ny domænecontroller, der kører et nyere operativsystem. Dette var især relevant på det tidspunkt på grund af antallet af sikkerhedskonfigurationsændringer, der blev introduceret med Windows Server 2008 R2. Posten anbefalede at isolere den nye DC i et "skjult" site. Dette blev opnået ved at kontrollere SRV-registreringer registreret af DC: domæne specifikke poster er ikke registreret; Kun stedspecifikke poster og dem, der kræves til replikation og normal DNS-funktion, opbevares. Dette skaber en opeational grænse - stedet. Kun klienter placeret på webstedet kan bruge DC.

Pyha!

For at opsummere trinene:

  • opret et nyt websted
  • brug PowerShell ovenfor for at forhindre, at snart-til-være-DC registrerer bestemte SRV-poster
  • Fremme den nye DC til det nye websted (forudsætter at Schema-udvidelse allerede er udført)
  • Tilføj en klient til webstedet - den vil bruge den nye DC
  • udføre test

Selvfølgelig er begrænsning af registrering af DNS-ressourceregistrering ikke kun for domæneopgraderingstestning. Du kan bruge den til at skjule et katastrofeinddrivelsessted, eller ... ja, verden af ​​Active Directory er din ordsprogede østers!

Noget mere kontekst: Baggrundslæsning

Begræns de DNS-ressourceoptegnelser, der opdateres af Netlogon

Nok kontekst: Begræns!

I det følgende eksempel vil jeg sikre, at kun klienter på samme sted som min test DC, HALODC02, kan få adgang til denne DC, dvs. der vil kun være stedspecifikke ressourceoptegnelser registreret af DC.
Nedenstående eksempel viser placeringen af ​​forskellige DC-specifikke poster, der skal fjernes fra DNS:

Her er et eksempel på en eksisterende SRV-post for målet DC:

Her er hvad vi får, når vi kigger på domæne-specifikke SRV-poster med PowerShell (to poster returneres):
Opløs-DnsName -Name _ldap._tcp.dc._msdcs.halo.net -Type SRV -Server halodc01.halo.net

Nu, for at gøre ændringen med PowerShell:

$ DataValue = "Ldap", "Gc", "DcByGuid", "Kdc", "Dc", "Rfc1510Kdc", "GenericGc", "Rfc1510UdpKdc", "Rfc1510Kpwd", "Rfc1510UdpKpwd"

New-ItemProperty -Path "HKLM: SYSTEMCurrentControlSetServicesNetlogonParameters" -Name DnsAvoidRegisterRecords -Value $ DataValue -PropertyType Multistring

Her er en grafisk gengivelse af hvad PowerShell gør. For det første er vejen til nøglen i registreringsdatabasen på DC til at være skjult:

Her er Multi-String-værdien, der skal tilføjes til registreringsdatabasen:

Her er værdidataene for tilføjelsen:

Genstart nu Netlogon på den pågældende DC (eller vente op til 15 minutter for Netlogon til automatisk opdatering):

Genstart-Service-Navn Netlogon

Prøven SRV-rekord fra tidligere er nu gået:

Her er hvad vi får, når vi kigger på DCLocator, domæne-specifikke SRV-poster med PowerShell (kun én post returneres):

Opløs-DnsName -Name _ldap._tcp.dc._msdcs.halo.net -Type SRV -Server halodc01.halo.net

Endelig er her noget lidt mere rigtigt klar:

#Check for at se, om registreringsdatabasen allerede eksisterer

Get-ItemProperty -Path "HKLM: SYSTEMCurrentControlSetServicesNetlogonParameters" -Name DnsAvoidRegisterRecords -ErrorAction SilentlyContinue

#Fjern indgangen, hvis den allerede findes

hvis ($?) {

Fjern-ItemProperty -Path "HKLM: SYSTEMCurrentControlSetServicesNetlogonParameters" -Name DnsAvoidRegisterRecords

}

#Bemærk registreringsdatabasenes dataværdi

$ DataValue = "Ldap", "Gc", "DcByGuid", "Kdc", "Dc", "Rfc1510Kdc", "GenericGc", "Rfc1510UdpKdc", "Rfc1510Kpwd", "Rfc1510UdpKpwd"

# Indstil den nye registreringsnøgle

New-ItemProperty -Path "HKLM: SYSTEMCurrentControlSetServicesNetlogonParameters" -Name DnsAvoidRegisterRecords -Value $ DataValue -PropertyType MultiString

#Start netlogon-tjenesten

Genstart-Service-Navn Netlogon

#Test DNS

Opløs-DnsName -Name _ldap._tcp.dc._msdcs.halo.net -Type SRV -Server halodc01.halo.net

Jeg tror jeg skal nu lave en avanceret funktion eller noget ...

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.