SSH-Angriffe verbrauchen 4 GB in 10 Stunden. Möglich?

10

Ich wurde gewarnt, dass mein Server sein Übertragungslimit überschritten hat. Ich dachte, dass mein Tor-Knoten populär geworden ist, also habe ich ihn diesen Monat deaktiviert (nicht die beste Wahl für die Community, aber ich muss runter). Dann bemerkte ich, dass der Server diese Nacht ungefähr 4 GB übertragen hat. Ich habe Apache-Protokolle mit Awstats überprüft, keinen relevanten Datenverkehr (und ich hoste dort keine so beliebten Websites). Ich habe E-Mail-Protokolle überprüft, niemand hat versucht, Müll zu senden. Ich habe messagesProtokolle überprüft und Tonnen davon gefunden

Apr 29 10:17:53 marcus sshd[9281]: Did not receive identification string from 85.170.189.156
Apr 29 10:18:07 marcus sshd[9283]: Did not receive identification string from 86.208.123.132
Apr 29 10:18:24 marcus sshd[9298]: Did not receive identification string from 85.170.189.156
Apr 29 10:18:39 marcus sshd[9303]: Did not receive identification string from 86.208.123.132
Apr 29 10:18:56 marcus sshd[9306]: Did not receive identification string from 85.170.189.156
Apr 29 10:19:11 marcus sshd[9309]: Did not receive identification string from 86.208.123.132
Apr 29 10:19:18 marcus sshd[9312]: Did not receive identification string from 101.98.178.92
Apr 29 10:19:27 marcus sshd[9314]: Did not receive identification string from 85.170.189.156
Apr 29 10:19:41 marcus sshd[9317]: Did not receive identification string from 86.208.123.132
Apr 29 10:20:01 marcus sshd[9321]: Did not receive identification string from 85.170.189.156
Apr 29 10:20:13 marcus sshd[9324]: Did not receive identification string from 86.208.123.132
Apr 29 10:20:32 marcus sshd[9327]: Did not receive identification string from 85.170.189.156
Apr 29 10:20:48 marcus sshd[9331]: Did not receive identification string from 86.208.123.132
Apr 29 10:21:07 marcus sshd[9336]: Did not receive identification string from 85.170.189.156
Apr 29 10:21:20 marcus sshd[9338]: Did not receive identification string from 86.208.123.132
Apr 29 10:21:35 marcus sshd[9341]: Did not receive identification string from 85.170.189.156
Apr 29 10:21:51 marcus sshd[9344]: Did not receive identification string from 86.208.123.132
Apr 29 10:22:06 marcus sshd[9349]: Did not receive identification string from 85.170.189.156
Apr 29 10:22:23 marcus sshd[9353]: Did not receive identification string from 86.208.123.132
Apr 29 10:22:39 marcus sshd[9359]: Did not receive identification string from 85.170.189.156
Apr 29 10:22:54 marcus sshd[9361]: Did not receive identification string from 86.208.123.132
Apr 29 10:23:10 marcus sshd[9367]: Did not receive identification string from 85.170.189.156
Apr 29 10:23:29 marcus sshd[9369]: Did not receive identification string from 86.208.123.132
Apr 29 10:23:45 marcus sshd[9375]: Did not receive identification string from 85.170.189.156
Apr 29 10:24:10 marcus sshd[9387]: Did not receive identification string from 86.208.123.132
Apr 29 10:24:16 marcus sshd[9388]: Did not receive identification string from 85.170.189.156

Alle paar Sekunden versucht ein Bot, mein SSH zu hacken, was unmöglich ist, da ich eine Pubkey-Authentifizierung benötige. Meine Frage ist: Kann dieser Datenverkehr bei dieser Frequenz 4 GB (sagen wir 3,5) in 10 Stunden ununterbrochenen Angriffs verbrauchen?

Ich habe meinen SSH-Port geändert und diese Angriffe gestoppt, bin mir jedoch über meinen Netzwerkverbrauch nicht sicher. Ich habe keine außer Kontrolle geratenen Dienste - meine Firewall ist etwas restriktiv - oder teile den Server mit jemandem, der P2P oder was auch immer missbraucht. Mein Anliegen ist es, unter 400 GB / Monat zu fallen.

Irgendwelche Tipps?

usr-local-ΕΨΗΕΛΩΝ
quelle

Antworten:

16

4 GB sind möglich, aber angesichts der Angriffsrate sehr unwahrscheinlich. Ich schlage vor, OSSEC zu installieren. Es erkennt Unterbrechungsversuche und blockiert die IP automatisch für eine bestimmte Zeit.

Lucas Kauffman
quelle
1
Ich habe bereits fail2ban, es hat erfolgreich fehlerhafte Anmeldungen blockiert, scheint diese Nachrichten jedoch zu ignorieren. Vielleicht werde ich es tunen.
usr-local-ΕΨΗΕΛΩΝ
1
Akzeptiert. Fail2ban musste optimiert werden, um diese Protokollnachrichten als Einbruchsversuche zu akzeptieren. +1 bis @lain auch, weil ich 2 Antworten nicht akzeptieren kann
usr-local-ΕΨΗΕΛΩΝ
@djechelon: Bitte lassen Sie uns wissen, ob dies das Problem löst. Irgendwie bezweifle ich, dass dies der Fall sein wird, da die Pakete nach Erreichen Ihres Systems verworfen werden.
user9517
@Iain die meisten Angreifer geben auf, wenn sie fallen gelassen werden.
Lucas Kauffman
3
@ LucasKaufman: 4 Gb / 10 Stunden sind ~ 120 Kb / Sek. Ich sehe nicht so viel Durchsatz durch fehlgeschlagene Versuche und das obige Snippet zeigt eine viel niedrigere Angriffsrate (26 in ~ 7 Minuten).
user9517
14

Wenn dies die Ursache für die Bandbreitennutzung ist, ist die Bandbreite bereits verbraucht, wenn Sie sie auf Ihrem System bearbeiten. Sie können ein Tool wie iptraf verwenden, um eine Aufschlüsselung der Vorgänge auf den einzelnen Schnittstellen / Ports zu erhalten, und anschließend anhand von Fakten geeignete Maßnahmen ergreifen.

user9517
quelle
Natürlich kann ich mich ab dem kommenden Monat
darum bemühen
1
Und ... sehr hilfreiche Antwort, aber iptraf funktioniert nicht mit OpenVZ (Referenz webhostingtalk.com/showthread.php?t=924814 ) und ich habe es nicht erwähnt :)
usr-local-ΕΨΗΕΛΩΝ
Die Grundidee bleibt gleich. Finden Sie etwas, das Ihnen sagt, wo die Verwendung ist, und lösen Sie dann das Problem. Alles andere ist Rätselraten.
user9517
4

Nein, diese Verbindungsversuche einmal pro Sekunde selbst werden in zehn Stunden nicht zu 4 GB führen. Denken Sie, Sie könnten eine 4-GB-Datei in 10 Stunden herunterladen, indem Sie einmal pro Sekunde ein kleines Paket erhalten? Eine Stunde hat 3600 Sekunden. Wenn Sie also zehn Stunden lang ein Kilobyte pro Sekunde erhalten, sind das 36000 Kb oder 36 Megabyte.

Ihre Bandbreite wird danach gemessen, was von Ihrem Provider zu Ihrem externen Router geleitet wird und nicht danach, was Ihren Server erreicht. Sie müssen sich den Mist ansehen, der Ihren Server nicht erreicht und den die meisten externen Geräte ablehnen.

Was Ihren Server erreicht, können Sie sich nicht auf Anwendungsprotokolle verlassen. Sogar Pakete, die von der lokalen Firewall stillschweigend verworfen werden, haben Bandbreite. Schnittstellenstatistiken (angezeigt durch ifconfig) zeigen Ihnen Tx / Rx-Bytes an.

Kaz
quelle
Nicht sicher. Aus meiner Sicht zeigen Protokollnachrichten, dass Clients einen Socket für Port 22 geöffnet haben, aber abgelehnt wurden, weil "was sie übertragen haben" nicht als ordnungsgemäßer SSH-Handshake erkannt wurde. Ich wollte Port 22 nicht abhören, um die tatsächliche Nutzlast zu sehen, die die Scanner gesendet haben, aber theoretisch könnten sie Tonnen Müll senden, bis SSH abfällt. Die Frage ist: Wann lässt openSSH einen ungültigen Handshake fallen? Zweitens verbrachte ich eine Nacht mit deaktiviertem Tor und steigendem Verkehr (Apache zeigte keinen signifikanten Verkehr), als der rekonfigurierte Fail2Ban-Verkehr fast gestoppt wurde
usr-local-ΕΨΗΕΛΩ
1
Lassen Sie mich für alle Fälle etwas umformulieren. Wenn ich 4 GB Bandbreite von einem Server abziehen wollte, könnte ich ein Botnetz erstellen, das HTTP-Verbindungen öffnet und für jede Anforderung unbegrenzte POST-Nutzdaten sendet. Protokolle zeigen, dass fehlgeschlagene Anforderungen mit niedrigen Raten auftreten, aber jede ist extrem schwer. Aber das verliert langsam den Sinn. Ich war mit SSH-Scans vertraut ("Fehlgeschlagene Authentifizierung für Root, Administrator ..."), da das Ziel darin besteht, die Kontrolle über den Knoten zu übernehmen. Warum würde es einem Angreifer etwas ausmachen, Bandbreite über SSH zu verbrauchen? Macht keinen Sinn. Es sei denn, jemand hasst Tor-Knoten ...
usr-local-ΕΨΗΕΛΩΝ