Abuse-Meldung

NRG21

New Member
Hallo,

ich habe bei Hetzner einen Dedizierten Server und habe 2 Abuse-Messages bekommen:

Code:
[...] wir haben Hinweise, dass ein Angriff auf Ihren Server erfolgt. Die Verantwortlichen hierfür wurden aufgefordert das Problem zu loesen und eine Stellungnahme zur Ursache abzugeben. [...]

----- attachment -----
 
Direction IN
Internal xxx.xxx.xxx.xxx
Threshold Packets 50.000 packets/s
Sum 17.721.000 packets/300s (59.070 packets/s), 14.445 flows/300s (48 flows/s), 0,990 GByte/300s (27 MBit/s)
External 88.80.223.151, 17.717.000 packets/300s (59.056 packets/s), 14.442 flows/300s (48 flows/s), 0,990 GByte/300s (27 MBit/s)
External 95.208.35.202, 4.000 packets/300s (13 packets/s), 3 flows/300s (0 flows/s), 0,000 GByte/300s (0 MBit/s)

2. Mail zur selben Zeit:

Code:
[...]wir haben Hinweise, dass von Ihrem Server aus ein Angriff durchgeführt wurde.
 
Wir bitten Sie alle nötigen Maßnahmen zu treffen, um dies künftig zu vermeiden und um die Lösung des Problems. Außerdem bitten wir Sie um die Abgabe einer kurzen Stellungnahme an uns. Diese Stellungnahme soll Angaben enthalten, wie es zu dem Vorfall kommen konnte, bzw. was Sie dagegen unternehmen werden. Sollten folgende Schritte nicht erfolgreich durchgeführt werden, kann Ihr Server zu jedem Zeitpunkt nach dem Sat Mar 30 12:10:10 +0100 2013 gesperrt werden.[...]

----- attachment -----
 
Direction OUT
Internal xxx.xxx.xxx.xxx
Threshold Packets 30.000 packets/s
Sum 17.004.000 packets/300s (56.680 packets/s), 14.045 flows/300s (46 flows/s), 0,809 GByte/300s (22 MBit/s)
External 88.80.223.151, 16.999.000 packets/300s (56.663 packets/s), 14.042 flows/300s (46 flows/s), 0,807 GByte/300s (22 MBit/s)
External 95.208.35.202, 5.000 packets/300s (16 packets/s), 3 flows/300s (0 flows/s), 0,002 GByte/300s (0 MBit/s)

Was genau ist hier passiert? Wurde auf meinen Server ein DoS-Angriff durchgeführt? Warum macht mein Server dann auch so viel ausgehenden Traffic?

Logs habe ich alle überprüft, dort ist nichts zu finden.
Auf dem Server werden CSS-Gameserver gehostet. Keine weiteren Dienste (außer SSH) laufen.

Wie sollte ich hier verfahren? Was will Hetzner für eine Stellungnahme? Wie kann man so etwas verhindern?

MfG
 
Linux oder Windows?

Bei Linux beispielsweise mal schauen, woher, wohin und auf welchen Ports was an Traffic fließt. Am besten mit iptraf und iftop.
 
Hast du zufälligerweise einen Nameserver laufen mit aktivierter Rekursion?

bind9 o.ä.?

Dann könntest du u.a. für die 300 Gbit-Attacken auf Cloudflare mitverantwortlich sein.
 
Wie sollte ich hier verfahren? Was will Hetzner für eine Stellungnahme? Wie kann man so etwas verhindern?

1. Hetzner informiert dich über einen möglichen Angriff von deinem Server.

2. Hetzner vermutet weiter, dass der Angreifer (Hacker) noch Zugriff zu deinem Server hat und daher drohen die mit der Sperre, um weitere Angriffe zu vermeiden.

3. Du solltest Hetzner schreiben, dass du deinen Server in den Rescue-Modus fährst, damit von diesem keine weitere Gefahr ausgeht und um mehr Zeit bitten zur Analyse.

Lösungsansatz:

1. Server in den Rescue-Modus booten

2. Analysieren was passiert ist und Hetzner über deren Abuse-Formular informieren.

3. Sollte man dem System nicht mehr vertrauen können, je nach Art des Angriffs, sollte man eine Re-Initialisierung in Betracht ziehen.

Wie kann man so was verhindern?

Leider gibt es hier keine einfache Antwort, doch was du immer machen solltest ist dein System aktuell zu halten, dazu gehört z.B.

- Linux Distribution
- Einzelne Dienste (z.B. FTP,MySQL,etc)
- CMS (Joomla,Wordpress,etc)
- etc.
 
Vielen Dank für die Hilfe!

Linux oder Windows?

Bei Linux beispielsweise mal schauen, woher, wohin und auf welchen Ports was an Traffic fließt. Am besten mit iptraf und iftop.
Linux (Debian 6).
Hast du zufälligerweise einen Nameserver laufen mit aktivierter Rekursion?

bind9 o.ä.?

Dann könntest du u.a. für die 300 Gbit-Attacken auf Cloudflare mitverantwortlich sein.
Nein. Auf dem Server laufen lediglich SSH und 3 CSS-Gameserver. Eigentlich kann ich einen "Einbruch" ausschließen, über SSH hat sich keiner Zugriff verschafft und sonst laufen da überhaupt keine Dienste drauf.
Lösungsansatz:

1. Server in den Rescue-Modus booten

2. Analysieren was passiert ist und Hetzner über deren Abuse-Formular informieren.

3. Sollte man dem System nicht mehr vertrauen können, je nach Art des Angriffs, sollte man eine Re-Initialisierung in Betracht ziehen.
Was genau kann ich noch analysieren? Im Moment ist alles in Ordnung (keine Angriffe), in den Logs ist gar nichts zu finden, und der Server ist von Anfang an abgesichert.

Wie kann man so was verhindern?

Leider gibt es hier keine einfache Antwort, doch was du immer machen solltest ist dein System aktuell zu halten, dazu gehört z.B.

- Linux Distribution
- Einzelne Dienste (z.B. FTP,MySQL,etc)
- CMS (Joomla,Wordpress,etc)
- etc.

Wie gesagt, es läuft nur SSH und 3 Gameserver drauf, SSH ist vernünftig konfiguriert.
Deshalb bin ich gerade etwas ratlos, wie der "Angriff" zustande kommt.

Die IP aus dem Hetzner-Log (1. Post) ist ja bei beiden (IN & OUT) die selbe. Und da das System sauber ist verstehe ich auch nicht wie der Traffic zustandekommt.
Gibt es noch Möglichkeiten das System so zu konfigurieren, das bei so vielen Paketen in der Sekunde die IP geblockt wird, um das zu verhindern?

MfG
 
Bin jetzt zwar nicht so der Fachkundige Admin, würde jetzt aber mal schauen was bei ps -aux so alles auftaucht. Vielleicht wirst Du da ja schon fündig. Was es das Ip sperren angeht, wäre als Pflaster failtoban ein Ansatz, wobei das nicht die Lösung sein sollte. Gibt bestimmt jemanden hier der Dir bessere Lösungen anbieten kann.
 
Der Hosteurope-vServer (88er-IP) schickt(e) Deinem Server 17.000.000 Pakete/300s und hat damit das auf 50.000 Pakete/300s (Incoming) konfigurierte Warnsystem von Hetzner ausgelöst. Da Dein Server diese Pakete auch beantwortet hat, löste das auf 30.000 Pakete/300s (Outgoing) konfigurierte Warnsystem von Hetzner ebenfalls aus.

Da Du Gameserver betreibst, solltest Du nun dafür Sorge tragen, dass Du beziehungsweise Deine Gamer umgehend(!) etwaige Feden mit anderen Gamern beilegt und dass Du Deine Gameserver nur noch für berechtigte Zugriffe zugänglich machst und nicht mehr von Jedem. Auch musst Du etwaige (Security-)Bugs in den Gameservern beheben, welche solche Attacken erst lukrativ oder gar möglich machen.

Erst wenn Du Deine Hausaufgaben gemacht hast, kannst Du Dich um die anstehende Entsperrung Deines Servers und die Anzeige gegen den Betreiber des Hosteurope-vServers kümmern.
 
@Joe: Anzeige gegen den anderen Server-Betreiber sind witzlos.
Handelt es sich wirklich um eine DrDOS Attacke, so ist der andere das wahre Opfer.
Als Angreifer schicke ich einfach gespoofte UPD Pakete an die Gameserver, und die antworten an die gefälschte Absender-Adresse.

Der HE VServer hat wahrscheinlich nicht ein einziges Paket gesendet.

Für Q3-Gameserver kann z.B. folgendes iptables Regelwerk helfen

Code:
iptables -I INPUT 1 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getstatus" -m limit --limit 3/s --limit-burst 10 -j ACCEPT;
iptables -I INPUT 2 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getstatus" -j DROP; 
iptables -I INPUT 3 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getinfo" -m limit --limit 3/s --limit-burst 10 -j ACCEPT;
iptables -I INPUT 4 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getinfo" -j DROP;

Damit wird die Anzahl an getstatus / getinfo Paketen die beantwortet werden massiv eingeschränkt.

getinfo / getstatus muss man halt ggf. gegen die entsprechenden Keywords für CSS tauschen.
 
Die 17kkk Pakete waren/sind Incoming nicht Outgoing, was IMHO gegen einen DOS gegen den HE-vServer spricht.

Aber gut, wenn die Mehrheit hier meint, es sei andersrum, dann täusche ich mich wohl und bin wieder weg.
 
Da Du Gameserver betreibst, solltest Du nun dafür Sorge tragen, dass Du beziehungsweise Deine Gamer umgehend(!) etwaige Feden mit anderen Gamern beilegt und dass Du Deine Gameserver nur noch für berechtigte Zugriffe zugänglich machst und nicht mehr von Jedem. Auch musst Du etwaige (Security-)Bugs in den Gameservern beheben, welche solche Attacken erst lukrativ oder gar möglich machen.

Erst wenn Du Deine Hausaufgaben gemacht hast, kannst Du Dich um die anstehende Entsperrung Deines Servers und die Anzeige gegen den Betreiber des Hosteurope-vServers kümmern.

Die Gameserver sind ganz bewusst für jeden offen und das wird sich auch nicht ändern. Was anderes macht auch keinen Sinn. ;)
Der Server ist außerdem nicht gesperrt.

@schoog:
Das sieht nach einer guten Lösung aus, ich schau mir das mal genauer an!
 
Die 17kkk Pakete waren/sind Incoming nicht Outgoing, was IMHO gegen einen DOS gegen den HE-vServer spricht.
Die meisten Gameserver-Pakete sind UDP und -wie auch bei DNS- ist die Anfrage nur ein Bruchteil der Grösse der Antwort, was also Gameserver ein perfektes Mittel zu Amplification attacks macht.
Allerdings handelt es sich hier um Source-Engine Server welche meines Wissens eine Restriktion an Paketen / Sekunde / IP enthalten um genau solche Angriffe zu minimieren oder negieren.

Die Gameserver sind ganz bewusst für jeden offen und das wird sich auch nicht ändern.
Es geht weniger darum dass die Server erreichbar sind denn dass deine Firewall die Anzahl an Pakete je Empfänger auf zirka 150 (reicht für 2 gleichzeitige Spieler bei Tick66) je Richtung reduzieren sollte und konstantes Überschreiten durch einen Ban zu blockieren wäre.
Damit sind Replay-Angriffe grösstenteils verhindert.

Unter Kenntnis der IP eines Spielers wäre es zwar theoretisch möglich diesen mit einem Angriff unter gespoofter IP zu bannen aber einen wirklichen Schaden sollte dabei nicht entstehen - zumal dazu mal die IP der Spieler bekannt sein muss.


String-Matching kann einen hohen Ressourcenverbrauch verursachen und deinen Server früher zum Stottern bringen wenn ein Angriff reinkommt. Aber da du aktuell vom Angriff weisst und ansonsten nichts dagegen unternehmen würdest, wäre es das kleinere Übel.
 
Die meisten Gameserver-Pakete sind UDP und -wie auch bei DNS- ist die Anfrage nur ein Bruchteil der Grösse der Antwort, was also Gameserver ein perfektes Mittel zu Amplification attacks macht.
Richtig, nur ist hier Outgoing nicht grösser Incoming (siehe Logs) und somit fällt diese Angriffsmethode weg.

Ich bleibe erstmal dabei, dass die Ursache auf zwischenmenschlicher Ebene zu suchen ist...

Egal, das könnt Ihr Game(serverbetreibe)r unter Euch ausdiskutieren, ich bin raus.


EDITH: Die Pakete auf dem Server zu droppen ist sinnfrei, da Hetzner vor dem Server zählt.
 
Last edited by a moderator:
oO stimmt, hatte übersehen dass der incoming so hoch ist.

Die Pakete auf dem Server zu droppen ist sinnfrei, da Hetzner vor dem Server zählt.
Zu droppen hilft gegen Amplification weil dann keine Antwort kommt. Bei gegenseitigem Zerkloppen hilft es natürlich nicht.

Betreibst du die Server für Kunden? Eventuell "zerkloppen" die sich gegenseitig?
(Css und generell alle modul-erweiterbaren Gameserver erlaubt direkten Zugriff auf die Konsole und das Ausführen von arbitraren Befehlen)
 
EDITH: Die Pakete auf dem Server zu droppen ist sinnfrei, da Hetzner vor dem Server zählt.

Meine ausgehenden Pakete zu blocken, die ein gewisses Limit überschreiten, macht aber schon sinn denke ich. Wichtig ist, das mein Server nicht solche Anfragen in dem Ausmaß beantwortet.

Betreibst du die Server für Kunden? Eventuell "zerkloppen" die sich gegenseitig?
Nein, die CSS-Server sind alles eigene.
 
Für Q3-Gameserver kann z.B. folgendes iptables Regelwerk helfen

Code:
iptables -I INPUT 1 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getstatus" -m limit --limit 3/s --limit-burst 10 -j ACCEPT;
iptables -I INPUT 2 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getstatus" -j DROP; 
iptables -I INPUT 3 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getinfo" -m limit --limit 3/s --limit-burst 10 -j ACCEPT;
iptables -I INPUT 4 -i eth1 -p udp -m udp --dport 27000:29000 -m string --algo bm --string "getinfo" -j DROP;

Damit wird die Anzahl an getstatus / getinfo Paketen die beantwortet werden massiv eingeschränkt.

getinfo / getstatus muss man halt ggf. gegen die entsprechenden Keywords für CSS tauschen.

Kann man sowas auch ohne die Angabe der Strings machen? Grundsätzlich alle Anfragen limitieren? Vorallem die Ausgehenden? Wichtig ist mir das mein Server nicht auf die Tausenden von Paketen antwortet.
Es wäre sehr gut wenn mir jemand ein Beispiel machen könnte!

Vielen Dank.
 
Back
Top