Öffentlicher DNS-Server
Öffentlicher DNS-Server
Hi ich habe mal irgend wan gehört, dass es unhöflich ist, einen öffentlichen DNS-Server zu Betreiben. Wegen sowas https://de.wikipedia.org/wiki/DNS_Amplification_Attack und ähnlichem. Gibt's da irgendwelche Gegenmasnahmen und für wie wahrscheinlich haltet ihr es, dass er für sowas genutzt wird?
Zur zeit nutze ich unbound. Und würde den gerne öffentlcih betreiben, dass ich von überall aus drauf zugreifen kann.
Zur zeit nutze ich unbound. Und würde den gerne öffentlcih betreiben, dass ich von überall aus drauf zugreifen kann.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
Du könntest dir iptables-Regeln stricken, die die Verbindungen von oder zu einer IP begrenzen. Auf der anderen Seite macht so ein Setup den eigenen Server für DoS anfällig, weil man eben das Limit definiert. Das Limit darf auch nicht zu niedrig sein,ein paar dutzend Anfragen pro Sekunde können schon hineinkommen, wenn viele Clients über denselben Proxy zugreifen (aber du willst ihn alleine verwenden? = wenig Last). Wie man's macht, es ist verkehrt.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Öffentlicher DNS-Server
Auf die Idee es einfach über iptables zu machen bin ich aber gar nicht gekommen.Cae hat geschrieben:Du könntest dir iptables-Regeln stricken, die die Verbindungen von oder zu einer IP begrenzen.
Warum? Damit der Angriff funktioniert müsst ja jemand auf meine IP spoofen. Auch bei IPv4 sehr unwahrscheinlich, wenn er micht nicht kennt. Und wenn er sich in meinem Netz befindet wird er von mir persönlich gekillt.Cae hat geschrieben:Auf der anderen Seite macht so ein Setup den eigenen Server für DoS anfällig, weil man eben das Limit definiert.
Nutzer werden es so in etwa 3 sein. => Das die die gleiche Proxy nehmen ist unwahrscheinlich. Und wenn sind es 3. Aber alleine der Aufruf von reuters.com verursacht 188 Requests. (Natürlich alle in der selben Sekunde.) Und wenn man den angriff schön ausfhrt und wirklich viele DNS-Server sammelt werden es wenig requests auf den einen. Man will damit ja eben auch Firewalls austriksen, die einen Limit pro IP und Sekunde setzten.Das Limit darf auch nicht zu niedrig sein,ein paar dutzend Anfragen pro Sekunde können schon hineinkommen, wenn viele Clients über denselben Proxy zugreifen (aber du willst ihn alleine verwenden? = wenig Last).
Ich habe keine Ahnung, ob ein Limit von 2k requests/s was bringt. (Das währe nur das Zenfache dessen was das aufrufen der einfachen Seite von Reuters verursacht. Ich denke das kann schon mal vorkommen.)
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
Vielleicht bindest du ihn erstmal auf localhost und SSH-tunnelst ihn zu dir. Mit einer -j LOG-Regel kannst du dann messen, wie viele Requests tatsächlich abgesetzt werden.
Andere Idee: DNS auf Port 5353? Würde daran scheitern, dass man bei bestimmten Eingabemasken definitiv keinen Port mit angeben kann. Rein technisch spricht nichts gegen einen Highport.
Das Risiko, dass man zwar nicht unfreiwillig den kompletten Angriff fährt, aber ein kleiner Fisch zwischen vielen anderen DNS-Servern ist, bleibt natürlich, dagegen kann man vermutlich auch nicht viel machen.
Gruß Cae
Andere Idee: DNS auf Port 5353? Würde daran scheitern, dass man bei bestimmten Eingabemasken definitiv keinen Port mit angeben kann. Rein technisch spricht nichts gegen einen Highport.
Stimmt, wenn man das an der Quell-IP festnagelt. Würde man das nicht machen, könnte die böse Eve den Server bis zum absichlich niedrig gewählten Limit auslasten und deine Anfragen blocken lassen, weil sie insgesamt über der festgelegten Anfragenanzahl liegen.wanne hat geschrieben:Warum? Damit der Angriff funktioniert müsst ja jemand auf meine IP spoofen.Cae hat geschrieben:Auf der anderen Seite macht so ein Setup den eigenen Server für DoS anfällig, weil man eben das Limit definiert.
Das Risiko, dass man zwar nicht unfreiwillig den kompletten Angriff fährt, aber ein kleiner Fisch zwischen vielen anderen DNS-Servern ist, bleibt natürlich, dagegen kann man vermutlich auch nicht viel machen.
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Öffentlicher DNS-Server
Hab's jetzt so:
Das doppelt gemoppelt ist, weil ich auf der einen Seite REJECT haben will auf der anderen seite schneller Blocken will, wenn es jemand schafft Pakete, die über meiner MTU liegen zu erzeugen.
Meint ihr, dass ich pakete mit fragment bit einfach ganz filtern kann?
Angeschlagen hat die Regel noch nie. (Ist aber auch unwahrscheinlich, dass den jemand in den 48h Betribszeit überhaupt schon gefunden hat.)
Code: Alles auswählen
-A OUTPUT -p udp -m udp --sport 53 -m hashlimit --hashlimit-above 25/sec --hashlimit-burst 2000 --hashlimit-mode dstip --hashlimit-name dnsout -j DROP
-A INPUT -p udp -m udp --dport 53 -m hashlimit --hashlimit-above 25/sec --hashlimit-burst 2000 --hashlimit-mode srcip --hashlimit-name dnsin -j REJECT --reject-with icmp-port-unreachable
Meint ihr, dass ich pakete mit fragment bit einfach ganz filtern kann?
Angeschlagen hat die Regel noch nie. (Ist aber auch unwahrscheinlich, dass den jemand in den 48h Betribszeit überhaupt schon gefunden hat.)
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
So, Heute gab's den ersten "Angriff":
404MiB in 6126K Paketen wurden aufgehalten. Klingt für mich jetzt nicht so viel. Waren aber auch mindestens 3 mit mehr als meiner MTU dabei (zusammen 11MiB.)
Leider werde ich nie erfahren, wie erfolgreich das unterfangen war...
404MiB in 6126K Paketen wurden aufgehalten. Klingt für mich jetzt nicht so viel. Waren aber auch mindestens 3 mit mehr als meiner MTU dabei (zusammen 11MiB.)
Leider werde ich nie erfahren, wie erfolgreich das unterfangen war...
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
OK, ich kapier nicht so ganz was der bezweckt:
derfragt nach ripe.net (Das gibt im prinzip ne ordntlich amplification. (ca. 32))
Aber: Er greift von 2 Maschienen aus an. (Zumindest sieht es für mich so aus (Die Header sehen immer sehr gleich aus (TTL usw.))
Und spooft auf ca. 8 verschiedene Adressen von ISPs und Cloud services.
Glaubt der wirklich er kann mit der Bandbreite von virtuell 2*32/8=8 Rechenern einen Cloud service down machen?
Oder hab ich da was übersehen?
Leider hällt so mein iptables nur etwa 2 von 3 Paketen ab. Weil es wenige Pakete und dann auch noch auf viele Ziele sind.
derfragt nach ripe.net (Das gibt im prinzip ne ordntlich amplification. (ca. 32))
Aber: Er greift von 2 Maschienen aus an. (Zumindest sieht es für mich so aus (Die Header sehen immer sehr gleich aus (TTL usw.))
Und spooft auf ca. 8 verschiedene Adressen von ISPs und Cloud services.
Glaubt der wirklich er kann mit der Bandbreite von virtuell 2*32/8=8 Rechenern einen Cloud service down machen?
Oder hab ich da was übersehen?
Leider hällt so mein iptables nur etwa 2 von 3 Paketen ab. Weil es wenige Pakete und dann auch noch auf viele Ziele sind.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
Naja, DNS-Server sollten nicht zu selten sein auf dieser Welt, da bringt eine große Anzahl an Kisten mit niedriger Bandbreite viel Gesamtbandbreite.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Öffentlicher DNS-Server
Das ding ist, dass es eben 2 Rechner sind, die mit sehr kleiner Bandbreite daher kommen. => Ich nehme an, dass es nur die beiden sind und die auf mehrere DNS-Server gehen.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
OK Solangsam wird das nervig. Obwohl der Server seit 5h nicht mehr da ist, laufen die Anfragen weiter.
Der macht mir auch Bandbreite tot...
Der macht mir auch Bandbreite tot...
rot: Moderator wanne spricht, default: User wanne spricht.
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Öffentlicher DNS-Server
Ich bin gestern auch "Opfer" vom DNS Amplification Attack geworden: von einigen Hosts kamen nachts tonnenweise Anfragen an meinem öffentlichen DNS-Server an mit dem DoS-Angriff auf andere DNS-Server, ich habe jetzt einen ähnlichen iptables-Eintrag wie "wanne" (den hatte ich im Internet gefunden von Jemandem, der mal eine genauere Analyse gemacht hatte), jedoch etwas enger gefasst und die Option "--hashlimit-srcmask" hinzugefügt, so daß Anfragen mit IP-prefix/28 zusammengefasst werden :
Mal sehen, was heute nacht passiert. Mein erster Versuch mittels "recent" und einem Maximum von Requests/Zeiteinheit war nicht sinnvoll, weil ich mich damit selbst gedrosselt hatte, "hashlimit" mit "burst" scheint sinnvoller zu sein.
Gruss, mistersixt.
Code: Alles auswählen
$IPTABLES -A INPUT -i $EXTIF -p udp --dport 53 -m hashlimit \
--hashlimit-name DNS --hashlimit-above 20/second --hashlimit-mode srcip \
--hashlimit-burst 100 --hashlimit-srcmask 28 -j DROP
Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
Re: Öffentlicher DNS-Server
Hi, ich hatte das --hashlimit-srcmask 27 anfangs auch drin. Das ist aber Unsinn. Bei DNS Amplification Attacks sind die src-IPs ja die Adressen der Angegriffenen. (Nichtr des Angriefers der spooft ja.) Es ist aber eher unwahrscheinlich, dass jemand Angriffe auf viele Rechner im gleichen Subnetz angriffe statet. Man sucht sich eine kritische Stelle aus und greift die an. Wenn das Ziel loadbalancing zur hochverfügbarkeit hat sind die im Normalerweise nicht im selben Netz. (Da man ja eben nicht abhänig sein will, von einem Internetzugang.) (Gleiche Subnetze werden großteils gleich geroutet. Wenn der Bagger da dazischen funkt ist alles tot.)
Außerdem habe ich beobachtet, das die Angriffe meist sehr moderat ablaufen. Pro Ziel, (das sind meistens so zirka 5-15 in völlig unterschiedlichen Ländern von völlig unterschiedlichen Organisationen.) gibt es meistens so 15-30 anfragen pro Sekunde.
Deswegen musste ich die --hashlimit-above 25/second auf mittlerweile 4/sec runter gesetzt. Das klingt zwar ziemlich wenig aber mit einem Burst von 800-2000 ist das gut zu machen. (Dauerhaft macht kein Mensch so viele Anfragen. Die meiste Ziet passiert gar nichts. Aber der Angreifer hat den burst in wenigen Sekunden weg.) Damit gehen mir mittlerweile die meisten der DOS-Anfragen ind den Filter (Aber bei weitem nicht alle. Ein Großteil kommt immernoch durch) aber selbst bin ich noch nie in den Filter geraten.
Außerdem habe ich beobachtet, das die Angriffe meist sehr moderat ablaufen. Pro Ziel, (das sind meistens so zirka 5-15 in völlig unterschiedlichen Ländern von völlig unterschiedlichen Organisationen.) gibt es meistens so 15-30 anfragen pro Sekunde.
Deswegen musste ich die --hashlimit-above 25/second auf mittlerweile 4/sec runter gesetzt. Das klingt zwar ziemlich wenig aber mit einem Burst von 800-2000 ist das gut zu machen. (Dauerhaft macht kein Mensch so viele Anfragen. Die meiste Ziet passiert gar nichts. Aber der Angreifer hat den burst in wenigen Sekunden weg.) Damit gehen mir mittlerweile die meisten der DOS-Anfragen ind den Filter (Aber bei weitem nicht alle. Ein Großteil kommt immernoch durch) aber selbst bin ich noch nie in den Filter geraten.
rot: Moderator wanne spricht, default: User wanne spricht.
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Öffentlicher DNS-Server
Ja, Du hast recht, die Logs von heute nacht zeigen, daß die Anfragen aus ganz unterschiedlichen Netzen gekommen sind, nicht innerhalb eines Netzes.
Offensichtlich ist jetzt noch etwas Fine-Tuning angesagt, prinzipiell hat der Filter bei mir aber schon mal einiges geblockt.
Gruss, mistersixt
Offensichtlich ist jetzt noch etwas Fine-Tuning angesagt, prinzipiell hat der Filter bei mir aber schon mal einiges geblockt.
Gruss, mistersixt
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE
Re: Öffentlicher DNS-Server
Nachdem alle Angreifer ripe.net abfragen, habe ich jetzt mal die Antwort künstlich verkürzt.
Ich liefere nur noch Antworten auf A und AAAA Records zurück. (Auch google blockt ANY bei ripe.net)
Mehr dürfte keinen Endnutzer interessieren.
Bin mal gespannt ob die Angreifer nachziehen...
Wenn nicht lache ich mich tot...
Ich liefere nur noch Antworten auf A und AAAA Records zurück. (Auch google blockt ANY bei ripe.net)
Mehr dürfte keinen Endnutzer interessieren.
Bin mal gespannt ob die Angreifer nachziehen...
Wenn nicht lache ich mich tot...
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Öffentlicher DNS-Server
Der Erfolg ist durchschlagend...
Angriffe haben komplett aufgehört. Die scheinen tatsächlich alle nur auf ripe.net zu testen und wenn da die Anwort zu kurz ist suchen sie sich nen anderen.
Angriffe haben komplett aufgehört. Die scheinen tatsächlich alle nur auf ripe.net zu testen und wenn da die Anwort zu kurz ist suchen sie sich nen anderen.
rot: Moderator wanne spricht, default: User wanne spricht.