Transcript
Page 1: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

Der DNS Socketpool ermöglicht es einem DNS Server beim Ausgeben von DNS Abfragen

einen Random Quell-Port einzusetzen. Wenn der DNS Dienst gestartet wird, wählt der

Server einen Quell-Port aus einem Pool von Sockets aus. Somit wird kein statischer bzw.

vorherzusehender Port genutzt, sondern ein zufälliger Port. Diese Technik macht es

einem Angreifer noch schwieriger den DNS Cache zu manipulieren. Für eine erfolgreiche

Manipulation müsste der Angreifern nun den Port, die DNS Abfrage sowie die zufällige

Transaction-ID erraten.

Den Socket-Pool fragen wir mit dnscmd /info /socketpoolsize ab.

Der Pool lässt sich mit dem Befehl dnscmd /config /socketpoolsize 5000 vergrößern.

Page 2: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

Über die Powershell:

Page 3: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

DNS Cache-Sperre:

Mit der DNS Cache Sperre bestimmen wir wann Informationen im DNS Cache

überschrieben werden dürfen.

Wenn ein DNS Server auf eine rekursive Anfrage antwortet, speichert er die Information

so ab, dass diese für die nächste Anfrage schneller zur Verfügung stehen.

Ein DNS Server speichert Informationen nicht ewig zwischen, denn die Die TTL bestimmt

wie lange die Daten vorgehalten werden.

Dieses Beispiel zeigt einen Wert von 100. Das bedeutet, dass die zwischengespeicherte

Information (DNS-Eintrag) bis zum Ablauf ihrer Zeit gültig ist und nicht aktualisiert bzw.

überschrieben werden kann.

Page 4: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

An diesem Eintrag sehen wir eine verbleibende Gültigkeit von 58:35 Minuten.

Informationen im Cache können vor Ablauf ihrer TTL grundsätzlich überschrieben, und

zwar dann wenn eine Aktualisierung an der Ressource vorliegt.

Wenn es jetzt ein Angreifer schafft diesen DNS Eintrag zu manipulieren dann gelangen

wir nicht mehr auf die Seite des Windows Papst, sondern auf eine manipulierte Seite des

Angreifers. Zum Beispiel durch einen IP-Change für den Eintrag www.der-windows-

papst.de.

Mit der Cache Sperre verhindern wir ein Überschreiben der zwischengespeicherten

Informationen für die Dauer ihrer Gültigkeit. Das trägt dazu dabei, dass ein Angreifer den

Datenverkehr nicht umleiten kann, denn die zwischengespeicherten Informationen haben

eine feste Gültigkeit (Schreibschutz), siehe Bild oben.

Natürlich lässt sich der Wert anpassen. Was aber dafür sorgt, das dem Angreifer ein

Zeitfenster für eine Manipulation eingeräumt wird.

Set-DnsServerCache –LockingPercent 90

Page 5: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

Response Rate Limiting RRL:

Mit dieser Funktion haben wir die Möglichkeit DOS (Denial of Services) zu verringern

bestenfalls zu verhindern. DoS Angriffe haben das Ziel, bereitgestellte Services außer

Betrieb zu setzen. Dazu wird auf dem Server eine Überlastung herbeigeführt. Bei einem

Exchange Server z.B. durch eine Überflutung von E-Mails bei einem Netzwerk durch

Datenpakete. Bei diesen Angriffen geht es nicht um Datenspionage oder dem Ausspähen

von Daten, sondern um den herbeigeführten Zusammenbruch eines Service.

Dabei kommen verschiedene Vorgehensweisen zum Einsatz, wie z.B. Mailbombing,

Broadcaststurm, Smurf-Attacke, Distributed Denial of Service, Advances Persistent Denial

of Service.

Damit ein Clientsystem im Netzwerk nicht zum Gehilfen eines Angreifers wird, können wir

dieses durch die Aktivierung von RRL vermeiden oder deutlich verringern. Der Modus ist

im Default deaktiviert.

Mit GetDnsServerRRL lesen wir die aktuelle Konfiguration aus. Aktuell wäre der Client in

der Lage maximal 5 Antworten zu empfangen.

Mit Set-DNSServerRRL -Mode LogOnly aktivieren wir nur das Logging.

Mit Set-DNSServerRRL -Mode Enable aktivieren wir die Funktion.

DNS RRL lässt für einen bestimmten IP-Adressbereich nur eine bestimmte Anzahl

identischer DNS Antworten. Wird der eingestellte Schwellwert überschritten, verwirft RRL

die Antwort fordert den Resolver über das Truncated Bit (TC) aber trotzdem auf, die

Anfrage noch einmal per TCP zu stellen. Da bei reflektierende DNS Angriffen die

Quelladresse verfälscht ist, kommt eine Verbindung per TCP nie zu Stande.

Empfehlung:

Set-DNSServerRRL -LeakRate 5

Set-DNSServerRRL -MaximumResponsesPerWindow 512

Page 6: Server 2016 - DNS-Socketpool und RRL konfigurieren · PDF fileServer 2016 - DNS-Socketpool und RRL konfigurieren Erstellt von Jörn Walter 10.09.2017 DNS Cache-Sperre: Mit der DNS

Server 2016 - DNS-Socketpool und RRL konfigurieren

Erstellt von Jörn Walter 10.09.2017

Get-DNSServer

dnscmd /info /socketpoolsize

dnscmd /config /socketpoolsize 5000

Dnscmd /Info /SocketPoolExcludedPortRanges

net stop dns

net start dns

Set-DnsServerCache –LockingPercent 100

# Response Rate Limiting (DOS Angriffe verringern)

Get-DNSServerRRL

Set-DNSServerRRL -Mode LogOnly

Set-DNSServerRRL -Mode Enable

Set-DNSServerRRL -LeakRate 5

Set-DNSServerRRL -MaximumResponsesPerWindow 512

Set-DNSServerResponseRateLimiting -MaximumResponsesPerWindow

Add-DnsServerResponseRateLimitingExceptionList

Add-DnsServerResponseRateLimitingExceptionlist -Name "Ethernet0" -ServerInterfaceIP

"EQ,171.18.32.31"

Get-DnsServerResponseRateLimitingExceptionList

Set-DNSServerRecursionScope

Add-DNSServerRecursionScope

Add-DNSServerQueryResolutionPolicy

Set-DnsServerRecursionScope -Name -EnableRecursion $false

Add-DNSServerRecursionScope -Name "Internes Netzwerk" -EnableRecursion $True

Add-DnsServerQueryResolutionPolicy -Name "RecursionControl" -Action Allow -

ApplyOnRecursion -RecursionScope "interneclients" -ServerInterfaceIP "eq,172.18.32.31"


Recommended