Windows Server vor SYN-Flood schützen
Moin-Moin!
Seit letzter Woche Donnerstag hat offenbar jemand im Internet entdeckt, dass man anderer Leute Server aus dem Internet schmeißen kann, indem man mit deren gespoofeter IP-Adresse SYN-Pakete an offene Ports (z.B. Port 80/TCP) an alle Server im Internet richtet und so gewaltige Paketraten erzeugt - denn auf ein SYN-Paket erfolgt ein SYN-ACK, und der wird 3-5 Mal wiederholt wenn dieser nicht bestätigt wird. Soviel als Präambel.
Das ist für die so als Reflektor/Verstärker missbrauchten Server auch normalerweise kein Problem.
Nun habe ich aber hier einen Kunden, der einen Windows-Server hier im Rechenzentrum stehen hat, welcher unter Windows 2012 R2 läuft und auf dem ca. 35 IPv4-Adressen konfiguriert sind.
Jede dieser IP-Adressen bekommt so ca. 30-40 SYN-Pakete in der Minute ab, was dem Server nicht weh tun würde. Aufgrund der vielen IP-Adressen bekommt der Server aber natürlich die 35-Fache Menge an Paketen und kämpft auf diese Weise mit ca. 1.400 SYN-Paketen pro Minute. Auch das ist aus meiner Sicht eigentlich etwas, was ein Server aushalten können muss.
Tut er aber nicht, stattdessen beginnt er irgendwann damit, die CPU voll auszulasten (100% CPU-Zeit entfallen auf PID 4, "System") bis das System nicht mehr reagiert und mit Gewalt neugestartet werden muss.
Sind nur 2-3 IP-Adressen konfiguriert tritt das Problem nicht auf. Dafür sind dann aber auch Dienste nicht erreichbar
Momentan filtere ich auf unserem Router teilweise den Traffic mit statischen Paketfilter-Regeln, damit der Server zumindest am Tag mehr Up- als Downtime hat. Aber das ist natürlich kein Zustand.
Schon alleine deshalb, weil die Source-IPs mit einer hohen Wahrscheinlichkeit auch wechseln werden
Da ich in der Windows-Welt überhaupt nicht mit solchen Szenarien vertraut bin:
Gibt es irgendwas, entweder direkte Windows-Funktionen oder als zusätzliche Software, was man konfigurieren kann damit Windows nicht ständig deswegen die Latschen aufstellt?
Ich bin mir nicht sicher, ob das wirklich ein Problem des TCP-Stacks ist oder ob der IIS da nicht vielleicht die Ursache setzt. Aber rein vom OSI-Modell her dürfte das eigentlich nicht passieren, denn da keine voll aufgebaute TCP-Verbindung zustande kommt, dürfte der IIS überhaupt nicht mitbekommen, dass da was auf Port 80 anklopft.
"Attackiert" wird Port 80/TCP, wo ein IIS Webseiten ausliefert. Attackiert wird er im engeren Sinne eigentlich nicht, es geht ja nur darum die SYN-ACK-Pakete vom Server in Richtung DDoS-Opfer zu bekommen
Virenscanner wurde schon testweise ausgeschaltet, als Firewall wird die Windows-Firewall verwendet. Die lässt aber Port 80/TCP natürlich eingehend zu, das ist schließlich Sinn und Zweck dieses Servers. Eine Hardware-Firewall ist nicht vorgschaltet.
Vielen Dank!
Seit letzter Woche Donnerstag hat offenbar jemand im Internet entdeckt, dass man anderer Leute Server aus dem Internet schmeißen kann, indem man mit deren gespoofeter IP-Adresse SYN-Pakete an offene Ports (z.B. Port 80/TCP) an alle Server im Internet richtet und so gewaltige Paketraten erzeugt - denn auf ein SYN-Paket erfolgt ein SYN-ACK, und der wird 3-5 Mal wiederholt wenn dieser nicht bestätigt wird. Soviel als Präambel.
Das ist für die so als Reflektor/Verstärker missbrauchten Server auch normalerweise kein Problem.
Nun habe ich aber hier einen Kunden, der einen Windows-Server hier im Rechenzentrum stehen hat, welcher unter Windows 2012 R2 läuft und auf dem ca. 35 IPv4-Adressen konfiguriert sind.
Jede dieser IP-Adressen bekommt so ca. 30-40 SYN-Pakete in der Minute ab, was dem Server nicht weh tun würde. Aufgrund der vielen IP-Adressen bekommt der Server aber natürlich die 35-Fache Menge an Paketen und kämpft auf diese Weise mit ca. 1.400 SYN-Paketen pro Minute. Auch das ist aus meiner Sicht eigentlich etwas, was ein Server aushalten können muss.
Tut er aber nicht, stattdessen beginnt er irgendwann damit, die CPU voll auszulasten (100% CPU-Zeit entfallen auf PID 4, "System") bis das System nicht mehr reagiert und mit Gewalt neugestartet werden muss.
Sind nur 2-3 IP-Adressen konfiguriert tritt das Problem nicht auf. Dafür sind dann aber auch Dienste nicht erreichbar
Momentan filtere ich auf unserem Router teilweise den Traffic mit statischen Paketfilter-Regeln, damit der Server zumindest am Tag mehr Up- als Downtime hat. Aber das ist natürlich kein Zustand.
Schon alleine deshalb, weil die Source-IPs mit einer hohen Wahrscheinlichkeit auch wechseln werden
Da ich in der Windows-Welt überhaupt nicht mit solchen Szenarien vertraut bin:
Gibt es irgendwas, entweder direkte Windows-Funktionen oder als zusätzliche Software, was man konfigurieren kann damit Windows nicht ständig deswegen die Latschen aufstellt?
Ich bin mir nicht sicher, ob das wirklich ein Problem des TCP-Stacks ist oder ob der IIS da nicht vielleicht die Ursache setzt. Aber rein vom OSI-Modell her dürfte das eigentlich nicht passieren, denn da keine voll aufgebaute TCP-Verbindung zustande kommt, dürfte der IIS überhaupt nicht mitbekommen, dass da was auf Port 80 anklopft.
"Attackiert" wird Port 80/TCP, wo ein IIS Webseiten ausliefert. Attackiert wird er im engeren Sinne eigentlich nicht, es geht ja nur darum die SYN-ACK-Pakete vom Server in Richtung DDoS-Opfer zu bekommen
Virenscanner wurde schon testweise ausgeschaltet, als Firewall wird die Windows-Firewall verwendet. Die lässt aber Port 80/TCP natürlich eingehend zu, das ist schließlich Sinn und Zweck dieses Servers. Eine Hardware-Firewall ist nicht vorgschaltet.
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 388542
Url: https://administrator.de/forum/windows-server-vor-syn-flood-schuetzen-388542.html
Ausgedruckt am: 16.03.2025 um 09:03 Uhr
20 Kommentare
Neuester Kommentar
Zitat von @LordGurke:
Gibt es irgendwas, entweder direkte Windows-Funktionen oder als zusätzliche Software, was man konfigurieren kann damit Windows nicht ständig deswegen die Latschen aufstellt?
Gibt es irgendwas, entweder direkte Windows-Funktionen oder als zusätzliche Software, was man konfigurieren kann damit Windows nicht ständig deswegen die Latschen aufstellt?
Üblicherweise hängt man genau aus diesem Grund immer eine Firewall vor einen Server, insbesondere bei Windows-Servern.
lks
Servus,
entweder eine Firewall die das erkennt und die entsprechenden Sourcen zumindest temporär aussperrt. Wenn mehr als 1-2 Syn.Reqs kommen.
Ist aber in dem Fall nicht praktikabel. Für jede eingehende Verbindung belegt der Server ein Stück RAM, und die Summe macht es dann. Darum ist das eine DOS-Atacke gegen die man kaum etwas machen kann.
TCP Connection Timeout deutlich runter drehen. Eine andere Chance wirst Du sonst nicht haben.
Evtl auch einen sehr potenten Reverse-Proxy davor.
Ansonsten kannst Du nicht wirklich was machen, wenn die Dienste weiterhin auf einem Windowsserver erreichbar sein sollen.
Wenn die Atacken aus gewissen Regionen (bei gespooften Adressen schwer) kommen, würde ich auf alle Fälle mit dem Provider reden. So haben wir damals die Antenne Bayern am leben gehalten.
Grüße, Henere
entweder eine Firewall die das erkennt und die entsprechenden Sourcen zumindest temporär aussperrt. Wenn mehr als 1-2 Syn.Reqs kommen.
Ist aber in dem Fall nicht praktikabel. Für jede eingehende Verbindung belegt der Server ein Stück RAM, und die Summe macht es dann. Darum ist das eine DOS-Atacke gegen die man kaum etwas machen kann.
TCP Connection Timeout deutlich runter drehen. Eine andere Chance wirst Du sonst nicht haben.
Evtl auch einen sehr potenten Reverse-Proxy davor.
Ansonsten kannst Du nicht wirklich was machen, wenn die Dienste weiterhin auf einem Windowsserver erreichbar sein sollen.
Wenn die Atacken aus gewissen Regionen (bei gespooften Adressen schwer) kommen, würde ich auf alle Fälle mit dem Provider reden. So haben wir damals die Antenne Bayern am leben gehalten.
Grüße, Henere
Moin...
also als erstes würde ich mal prüfen ob der Server alle MS Updates hat, und natürlich von welcher Hardware reden wir eigentlich?
hast du das schon glesen?
Sync attack protection
How to protect Windows server from SYN flood
Tsunami SYN Flood attack
Syn attack protection on Windows Vista, Windows 2008, Windows 7, Windows 2008 R2, Windows 8/8.1, Windows 2012 and Windows 2012 R2
Frank
also als erstes würde ich mal prüfen ob der Server alle MS Updates hat, und natürlich von welcher Hardware reden wir eigentlich?
hast du das schon glesen?
Sync attack protection
How to protect Windows server from SYN flood
Tsunami SYN Flood attack
Syn attack protection on Windows Vista, Windows 2008, Windows 7, Windows 2008 R2, Windows 8/8.1, Windows 2012 and Windows 2012 R2
Frank
Moin,
Windows hat einen eingebauten Schutz - limitiert durch CPU-Power / RAM (https://blogs.technet.microsoft.com/nettracer/2010/06/01/syn-attack-prot ..)
Die einzige mir bekannte Methode, solche Angriffe wirklich in den Griff zu bekommen, ist massive Power. Diese bieten Anbieter wie Cloudflare https://www.cloudflare.com/learning/ddos/syn-flood-ddos-attack/
Gruß
Windows hat einen eingebauten Schutz - limitiert durch CPU-Power / RAM (https://blogs.technet.microsoft.com/nettracer/2010/06/01/syn-attack-prot ..)
Die einzige mir bekannte Methode, solche Angriffe wirklich in den Griff zu bekommen, ist massive Power. Diese bieten Anbieter wie Cloudflare https://www.cloudflare.com/learning/ddos/syn-flood-ddos-attack/
Gruß
Hallo,
auf einer Sophos UTM Firewall z.B. kann man u.a. TCP SYN Flood Protection aktivieren. Ab einer bestimmten Anzahl Pakete/s (einstellbar) wird dann gedrosselt, damit der Server dahinter nicht alles abbekommt.
Eine Sophos läßt sich auch virtuell als VM betreiben. Du kannst das ja mal mit einer 30-Tage-Testlizenz ausprobieren.
Just my 2c,
ipzipzap
auf einer Sophos UTM Firewall z.B. kann man u.a. TCP SYN Flood Protection aktivieren. Ab einer bestimmten Anzahl Pakete/s (einstellbar) wird dann gedrosselt, damit der Server dahinter nicht alles abbekommt.
Eine Sophos läßt sich auch virtuell als VM betreiben. Du kannst das ja mal mit einer 30-Tage-Testlizenz ausprobieren.
Just my 2c,
ipzipzap
Das kann nicht nur die sondern jede x-beliebige Firewall und auch Loadbalancer.
Der Knackpunkt sind sicher die 35 IP Adressen. Wenn die in einer L2 Broadcast Domain arbeiten wird das die Wurzel allen Übels sein wie der Kollege @certifiedit.net schon richtig gesagt hat.
Die Frage ist ob man dann mit hohem technischen Aufwand an den Symptomen rumdoktert oder gleich die Ursache bekämpft.
Der Knackpunkt sind sicher die 35 IP Adressen. Wenn die in einer L2 Broadcast Domain arbeiten wird das die Wurzel allen Übels sein wie der Kollege @certifiedit.net schon richtig gesagt hat.
Die Frage ist ob man dann mit hohem technischen Aufwand an den Symptomen rumdoktert oder gleich die Ursache bekämpft.
Zitat von @LordGurke:
Hat jemand Erfahrungen, ob beispielsweise Sophos den Traffic auf einem kompletten Subnetz als Referenz für die Pakektrate nehmen kann?
Hat jemand Erfahrungen, ob beispielsweise Sophos den Traffic auf einem kompletten Subnetz als Referenz für die Pakektrate nehmen kann?
Nein, das geht leider nicht. Du kannst zwar eine Paketrate einstellen, aber nur "über alles" und nicht nur für ein bestimmtes Subnetz.
Was Du machen könntest, ist, die Paketrate sehr niedrig zu stellen, und über Ausnahmen alle anderen Bereiche als den gewünschten rauszunehmen. Dann würde es zwar nur noch für das Subnetz gelten, allerdings hat dann der Rest keinen Schutz mehr. Als zeitlich begrenzte Testumgebung aber vorstellbar.
Zitat von @certifiedit.net:
Eine Sophos dafür virtuell zu betreiben ist ziemlicher Blödsinn, ok eigentlich in jedem Fall.
Eine Sophos dafür virtuell zu betreiben ist ziemlicher Blödsinn, ok eigentlich in jedem Fall.
Kann es sein, das Du immer alles nur schwarz und weiß siehst? Ja, eine Firewall gehört im Normalfall auf ein eigenes Blech, da stimme ich jedem sofort zu, aber eine virtualisierte Firewall direkt als Blödsinn zu bezeichnen?
Es kommt immer darauf an, was man damit bezwecken möchte. Wir betreiben z.B. für einen Kunden seit vielen Jahren ohne Probleme eine virtualisierte Sophos; allerdings nur in einem sehr eng gesteckten Szenario.
Aber sowas direkt zu verteufeln?
Schönen Sonntag noch,
ipzipzap
Eine Sophos läßt sich auch virtuell als VM betreiben. Du kannst das ja mal mit einer 30-Tage-Testlizenz ausprobieren.
kam vom Typen über dir
Zitat von @certifiedit.net:
So wie Audi auch nur getestet hat, nicht? Bringt Ihm in dem Fall aber überhaupt nichts, denn 3 Hände voll IP Adressen stellt man nicht mal kurz zum Spaß auf eine virtuelle Appliance um...- bringen tut's auch nix, denn offensichtlich ist dabei ein Lastproblem zu bewerkstelligen.
So wie Audi auch nur getestet hat, nicht? Bringt Ihm in dem Fall aber überhaupt nichts, denn 3 Hände voll IP Adressen stellt man nicht mal kurz zum Spaß auf eine virtuelle Appliance um...- bringen tut's auch nix, denn offensichtlich ist dabei ein Lastproblem zu bewerkstelligen.
Was hat Audi damit zu tun? Und wieso sollte das nichts bringen? Klar, auf Blech ist immer besser, aber auch virtuell kann man damit Lastprobleme lösen. Und man kann auch "3 Hände voll IP-Adressen" mal eben schnell umstellen. Ich weiß nicht, was Du damit immer für Probleme hast.
Aber ist gut jetzt. Du hast wie immer Deine festgefahrene Meinung und dabei lassen wir es. Das geht sonst am Thema vorbei, und das bring LordGurke auch nicht weiter.
Zitat von @LordGurke:
Dennoch ist das System heute Mittag wieder mehrfach vor die Wand gefahren, als da mal (in Summe über alle 5 IPs) ~15 SYN-Pakete pro Sekunde kamen. Dabei wieder 100% CPU-Last auf allen Kernen durch den Prozess "System", bis nichts mehr ging. Selbst der Cursor auf dem Bildschirm bewegte sich nicht mehr.
Dennoch ist das System heute Mittag wieder mehrfach vor die Wand gefahren, als da mal (in Summe über alle 5 IPs) ~15 SYN-Pakete pro Sekunde kamen. Dabei wieder 100% CPU-Last auf allen Kernen durch den Prozess "System", bis nichts mehr ging. Selbst der Cursor auf dem Bildschirm bewegte sich nicht mehr.
Also 15 Pakete/s halte ich jetzt für sehr ungewöhnlich. Das steht in der Sophos z.B. auf 100 Source Pakete/s oder 200 Destination/s. Hier würde die also nichtmal anspringen. Klar kann man das auf z.B. 10 Pakete/s ändern, aber das ist dann doch schon sehr niedrig.
Ich würde hier vielleicht mal auf der Maschine mit ProcMon aus den Sysinternals schauen, ob man nicht im "System" Prozess einen Thread identifizieren kann, der sich da hochschaukelt.