AUF DIESER SEITE
Firewall-DoS-Angriffe
Der Schutz vor DoS-Angriffen nutzt die zustandsbehaftete Überprüfung, um nach allen Verbindungsversuchen zu suchen und diese dann zuzulassen oder abzulehnen, die das Überqueren einer Schnittstelle auf dem Weg zum und vom beabsichtigten Ziel erfordern. Weitere Informationen finden Sie in den folgenden Themen:
Grundlegendes zu Session-Table-Flood-Angriffen
Ein erfolgreicher DoS-Angriff überwältigt sein Opfer mit einer derart massiven Flut von falsch simuliertem Datenverkehr, dass es nicht mehr in der Lage ist, legitime Verbindungsanfragen zu verarbeiten. DoS-Angriffe können viele Formen annehmen – SYN-Flood, SYN-ACK-ACK-Flood, UDP-Flood, ICMP-Flood und so weiter –, aber sie alle verfolgen das gleiche Ziel, nämlich die Sitzungstabelle ihres Opfers zu füllen.
Wenn die Sitzungstabelle voll ist, kann dieser Host keine neuen Sitzungen erstellen und beginnt, neue Verbindungsanforderungen abzulehnen. Die Bildschirmoption "Quellbasierte Sitzungslimits" und die Bildschirmoption "Zielbasiertes Sitzungslimit" tragen zur Abwehr solcher Angriffe bei.
Grundlegendes zu quellenbasierten Sitzungslimits
Sie können nicht nur die Anzahl gleichzeitiger Sitzungen von derselben Quell-IP-Adresse begrenzen, sondern auch die Anzahl der gleichzeitigen Sitzungen auf dieselbe Ziel-IP-Adresse. Ein Vorteil des Festlegens eines quellenbasierten Sitzungslimits besteht darin, dass es einen Angriff wie den Nimda-Virus (der eigentlich sowohl ein Virus als auch ein Wurm ist) eindämmen kann, der einen Server infiziert und dann beginnt, riesige Mengen an Datenverkehr von diesem Server zu generieren. Da der gesamte von Viren generierte Datenverkehr von derselben IP-Adresse stammt, stellt ein quellenbasiertes Sitzungslimit sicher, dass die Firewall solche übermäßigen Mengen an Datenverkehr eindämmen kann. Siehe Abbildung 1.
Ein weiterer Vorteil der quellenbasierten Sitzungsbegrenzung besteht darin, dass sie Versuche, die Sitzungstabelle der Firewall zu füllen, abschwächen kann, wenn alle Verbindungsversuche von derselben Quell-IP-Adresse ausgehen.
Um zu bestimmen, was eine akzeptable Anzahl von Verbindungsanforderungen darstellt, ist ein Zeitraum der Beobachtung und Analyse erforderlich, um eine Baseline für typische Datenverkehrsströme festzulegen. Sie müssen auch die maximale Anzahl gleichzeitiger Sitzungen berücksichtigen, die erforderlich sind, um die Sitzungstabelle der von Ihnen verwendeten Plattform von Juniper Networks zu füllen. Um die maximale Anzahl von Sitzungen anzuzeigen, die Ihre Sitzungstabelle unterstützt, verwenden Sie den CLI-Befehl show security flow session summary, und sehen Sie sich dann die letzte Zeile in der Ausgabe an, in der die Anzahl der aktuellen (zugewiesenen) Sitzungen, die maximale Anzahl von Sitzungen und die Anzahl der fehlgeschlagenen Sitzungszuweisungen aufgeführt sind:
userhost# show security flow session summary Unicast-sessions: 0 Multicast-sessions: 0 Failed-sessions: 0 Sessions-in-use: 0 Valid sessions: 0 Pending sessions: 0 Invalidated sessions: 0 Sessions in other states: 0 Maximum-sessions: 2097152
Das standardmäßige Maximum für quellenbasierte Sitzungslimits beträgt 128 gleichzeitige Sitzungen, ein Wert, der möglicherweise an die Anforderungen Ihrer Netzwerkumgebung und der Plattform angepasst werden muss.
Junos OS unterstützt quellenbasierte Sitzungslimits für IPv4- und IPv6-Datenverkehr.
Beispiel: Festlegen quellenbasierter Sitzungslimits
In diesem Beispiel wird gezeigt, wie die Anzahl der Sitzungen basierend auf der Quell-IP begrenzt wird.
Anforderungen
Vor der Konfiguration dieser Funktion ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Übersicht
Das folgende Beispiel zeigt, wie Sie die Anzahl der Sitzungen begrenzen, die ein Server in der DMZ und in Zone a initiieren kann. Da die DMZ nur Webserver enthält, von denen keiner Datenverkehr initiieren sollte, legen Sie das Quellsitzungslimit auf den niedrigstmöglichen Wert fest, d. h. auf eine Sitzung. Auf der anderen Seite enthält Zone a PCs, Server, Drucker usw., von denen viele Datenverkehr initiieren. Für Zone a legen Sie das Quellsitzungslimit auf maximal 80 gleichzeitige Sitzungen fest.
Topologie
Konfiguration
Verfahren
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security screen ids-option 1-limit-session limit-session source-ip-based 1 set security zones security-zone dmz screen 1-limit-session set security screen ids-option 80-limit-session limit-session source-ip-based 80 set security zones security-zone zone_a screen 80-limit-session
Schritt-für-Schritt-Anleitung
Geben Sie die Anzahl der gleichzeitigen Sitzungen basierend auf der Quell-IP für die DMZ-Zone an.
[edit security] user@host# set screen ids-option 1-limit-session limit-session source-ip-based 1
Legen Sie die Sicherheitszone für die DMZ auf den Konfigurationsgrenzwert fest.
[edit security] user@host# set zones security-zone dmz screen 1-limit-session
Geben Sie die Anzahl der gleichzeitigen Sitzungen basierend auf der Quell-IP für die Zone einer Zone an.
[edit security] user@host# set screen ids-option 80-limit-session limit-session source-ip-based 80
Legen Sie die Sicherheitszone für Zone a auf den Konfigurationsgrenzwert fest.
[edit security] user@host# set zones security-zone zone_a screen 80-limit-session
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show security screen Befehle und show security zones eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security screen
ids-option 1-limit-session {
limit-session {
source-ip-based 1;
}
}
ids-option 80-limit-session {
limit-session {
source-ip-based 80;
}
}
[edit]
user@host# show security zones
security-zone dmz {
screen 1-limit-session;
}
security-zone zone_a {
screen 80-limit-session;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit .
Überprüfung
Überprüfen von quellenbasierten Sitzungslimits
Zweck
Überprüfen Sie die quellbasierten Sitzungslimits.
Aktion
Geben Sie die Befehle , , show security screen ids-option 80-limit-sessionund show security zones aus dem show security screen ids-option 1-limit-session Betriebsmodus ein.
user@host> show security screen ids-option 1-limit-session Screen object status: Name Value Session source limit threshold 1 user@host> show security screen ids-option 80-limit-session Screen object status: Name Value Session source limit threshold 80 user@host> show security zones Security zone: dmz Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1-limit-session Interfaces bound: 0 Interfaces:
Bedeutung
Die Beispielausgabe zeigt die Grenzwerte der Quellsitzung für die DMZ-Zone und Zone a.
Grundlegendes zu zielbasierten Sitzungslimits
Sie können nicht nur die Anzahl gleichzeitiger Sitzungen von derselben Quell-IP-Adresse begrenzen, sondern auch die Anzahl der gleichzeitigen Sitzungen auf dieselbe Ziel-IP-Adresse. Ein gerissener Angreifer kann einen DDoS-Angriff (Distributed Denial-of-Service) starten. Bei einem DDoS-Angriff kann der bösartige Datenverkehr von Hunderten von Hosts stammen, die als "Zombie-Agenten" bezeichnet werden und heimlich unter der Kontrolle eines Angreifers stehen. Zusätzlich zu den Bildschirmoptionen SYN, UDP und ICMP zur Erkennung und Verhinderung von Überschwemmungen kann durch das Festlegen eines zielbasierten Sitzungslimits sichergestellt werden, dass Junos OS nur eine akzeptable Anzahl gleichzeitiger Verbindungsanforderungen – unabhängig von der Quelle – zulässt, einen Host zu erreichen. Siehe Abbildung 2.
Das standardmäßige Maximum für zielbasierte Sitzungslimits beträgt 128 gleichzeitige Sitzungen, ein Wert, der möglicherweise angepasst werden muss, um den Anforderungen Ihrer Netzwerkumgebung und der Plattform gerecht zu werden.
Beispiel: Festlegen zielbasierter Sitzungslimits
In diesem Beispiel wird gezeigt, wie die zielbasierten Sitzungslimits festgelegt werden.
Anforderungen
Vor der Konfiguration dieser Funktion ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Übersicht
In diesem Beispiel begrenzen Sie die Menge des Datenverkehrs zu einem Webserver auf 1.2.2.5. Der Server befindet sich in der DMZ. Im Beispiel wird davon ausgegangen, dass Sie nach der Beobachtung des Datenverkehrsflusses von der externen Zone zu diesem Server einen Monat lang ermittelt haben, dass die durchschnittliche Anzahl gleichzeitiger Sitzungen, die er empfängt, 2000 beträgt. Außerdem legen Sie das neue Sitzungslimit auf 2000 gleichzeitige Sitzungen fest. Obwohl Datenverkehrsspitzen diesen Grenzwert manchmal überschreiten können, wird im Beispiel davon ausgegangen, dass Sie sich für Firewallsicherheit statt für gelegentliche Serverunerreichbarkeit entscheiden.
Konfiguration
Verfahren
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000 set security zones security-zone external_zone screen 2000-limit-session
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. So legen Sie die zielbasierten Sitzungslimits fest:
Geben Sie die Anzahl der gleichzeitigen Sitzungen an.
[edit] user@host# set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000
Legen Sie die Sicherheitszone für die externe Zone fest.
[edit] user@host# set security zones security-zone external_zone screen 2000-limit-session
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show security screen Befehle und show security zones eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security screen
ids-option 2000-limit-session {
limit-session {
destination-ip-based 2000;
}
}
[edit]
user@host# show security zones
security-zone external_zone {
screen 2000-limit-session;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit .
Überprüfung
Überprüfen zielbasierter Sitzungslimits
Zweck
Überprüfen Sie die zielbasierten Sitzungslimits.
Aktion
Geben Sie die Befehle und show security zones aus dem show security screen ids-option 2000-limit-session Betriebsmodus ein.
user@host> show security screen ids-option 2000-limit-session
node0:
--------------------------------------------------------------------------
Screen object status:
Name Value
Session destination limit threshold 2000
Value
user@host> show security zones
Security zone: external_zone
Send reset for non-SYN session TCP packets: Off
Policy configurable: Yes
Screen: 2000-limit-session
Interfaces bound: 0
Interfaces:
Bedeutung
Die Beispielausgabe zeigt die Grenzwerte der Zielsitzung für die externe Zone.
Grundlegendes zu SYN-ACK-ACK-Proxy-Flood-Angriffen
Wenn ein Authentifizierungsbenutzer eine Telnet- oder FTP-Verbindung initiiert, sendet der Benutzer ein SYN-Segment an den Telnet- oder FTP-Server. Junos OS fängt das SYN-Segment ab, erstellt einen Eintrag in der Sitzungstabelle und leitet ein SYN-ACK-Segment an den Benutzer weiter. Der Benutzer antwortet dann mit einem ACK-Segment. Zu diesem Zeitpunkt ist der erste Drei-Wege-Handshake abgeschlossen. Junos OS sendet eine Anmeldeaufforderung an den Benutzer. Wenn sich der Benutzer in böswilliger Absicht nicht anmeldet, sondern stattdessen weiterhin SYN-ACK-ACK-Sitzungen initiiert, kann sich die Firewall-Sitzungstabelle bis zu dem Punkt füllen, an dem das Gerät beginnt, legitime Verbindungsanforderungen abzulehnen.
Um einen solchen Angriff zu verhindern, können Sie die Option SYN-ACK-ACK-Proxy-Schutzbildschirm aktivieren. Nachdem die Anzahl der Verbindungen von derselben IP-Adresse den SYN-ACK-ACK-Proxy-Schwellenwert erreicht hat, lehnt Junos OS weitere Verbindungsanforderungen von dieser IP-Adresse ab. Standardmäßig beträgt der Schwellenwert 512 Verbindungen von einer einzelnen IP-Adresse. Sie können diesen Schwellenwert ändern (auf eine beliebige Zahl zwischen 1 und 250.000), um ihn besser an die Anforderungen Ihrer Netzwerkumgebung anzupassen.
Junos OS unterstützt SYN-ACK-ACK-Proxy-Schutz sowohl für IPv4- als auch für IPv6-Adressen.
Schützen Sie Ihr Netzwerk vor einem SYN-ACK-ACK-Proxy-Flood-Angriff
Dieses Beispiel zeigt, wie Sie Ihr Netzwerk vor einem SYN-ACK-ACK-Proxy-Flood-Angriff schützen können.
Anforderungen
Vor der Konfiguration dieser Funktion ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Übersicht
In diesem Beispiel aktivieren Sie den Schutz vor einer SYN-ACK-ACK-Proxy-Flood. Die Werteinheit sind Verbindungen pro Quelladresse. Der Standardwert ist 512 Verbindungen von einer einzelnen Adresse.
Konfiguration
Verfahren
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000 set security zones security-zone zone screen 1000-syn-ack-ack-proxy
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. So schützen Sie sich vor einem SYN-ACK-ACK-Proxy-Flood-Angriff:
Geben Sie die Grenzwerte für die Quellsitzung an.
[edit] user@host# set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000
Legen Sie die Sicherheitszone für den Zonenbildschirm fest.
[edit] user@host# set security zones security-zone zone screen 1000-syn-ack-ack-proxy
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show security screen Befehle und show security zones eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security screen
ids-option 1000-syn-ack-ack-proxy {
tcp {
syn-ack-ack-proxy threshold 1000;
}
}
[edit]
user@host# show security zones
security-zone zone {
screen 1000-syn-ack-ack-proxy;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit .
Überprüfung
Verifizieren eines SYN-ACK-ACK-Proxy-Flood-Angriffs
Zweck
Überprüfen Sie den SYN-ACK-ACK-Proxy-Flood-Angriff.
Aktion
Geben Sie die Befehle und show security zones aus dem show security screen ids-option 1000-syn-ack-ack-proxy Betriebsmodus ein.
user@host> show security screen ids-option 1000-syn-ack-ack-proxy node0: -------------------------------------------------------------------------- Screen object status: Name Value TCP SYN-ACK-ACK proxy threshold 1000 user@host> show security zones Security zone: zone Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1000-syn-ack-ack-proxy Interfaces bound: 0 Interfaces:
Bedeutung
Die Beispielausgabe zeigt, dass es keinen Angriff von SYN-ACK-ACK-Proxy-Flood gibt.