Wer zum ersten Mal in die Protokolle eines öffentlich erreichbaren Servers sieht, erschrickt: hunderte Anmeldeversuche, Anfragen auf /wp-login.php an einer Seite ohne WordPress, Scans auf Ports, die nie offen waren. Das ist keine Verfolgung, das ist der Grundzustand des Internets.
Der Lärm selbst ist harmlos, solange die Grundlagen sitzen. Gefährlich ist die Gewöhnung: Wer täglich tausend Zeilen Rauschen überliest, überliest auch die zwanzig Zeilen, in denen jemand tatsächlich etwas gefunden hat. Die Aufgabe ist Trennung, nicht Abwehr.
Was da eigentlich passiert#
Massenscans. Der IPv4-Adressraum ist in Stunden durchsuchbar. Neue Dienste tauchen in Suchdiensten auf, oft bevor der DNS-Eintrag steht, gefunden wird über die IP, nicht über den Namen.
Ausnutzung nach Bauplan. Zwischen einer veröffentlichten Lücke und dem massenhaften Versuch liegen inzwischen Stunden bis Tage. Fertige Bausteine für gängige Werkzeuge erscheinen schnell; die Ausnutzung braucht keine Fachkenntnis mehr, nur eine Liste.
Zugangsdaten aus alten Sammlungen. Dieselben Kombinationen werden überall durchprobiert. Deshalb ist ein wiederverwendetes Passwort auch dann ein Problem, wenn dieser Dienst nie kompromittiert wurde.
Crawler-Wellen. Neu und real spürbar: automatisierte Sammler ziehen Inhalte in einem Tempo ab, das kleine Seiten wie ein Lastangriff trifft, ohne Angriffsabsicht, mit derselben Wirkung.
Rauschen von Absicht unterscheiden#
| Muster | Rauschen | Gezielt |
|---|---|---|
| Ziel | IP-Adresse, beliebige Pfade | dein Name, deine echten Pfade |
| Benutzernamen | admin, root, test, ubuntu | Namen, die es bei dir wirklich gibt |
| Tempo | dauerhaft gleichmäßig | Wellen, dann Pause, dann anderer Weg |
| Reaktion | ignoriert Fehlermeldungen | passt sich an, probiert Varianten |
| Quelle | wechselnde Adressen weltweit | wenige Adressen, oft über Anonymisierer |
Die zweite Zeile ist die aufschlussreichste: Sobald in den Fehlversuchen ein Benutzername auftaucht, den es tatsächlich gibt, ist das kein Wörterbuchangriff mehr, dann hat jemand vorher recherchiert.
# Welche Benutzernamen werden probiert, und existieren sie?
journalctl -u ssh --since -7d | grep -oP 'invalid user \K\w+' | sort | uniq -c | sort -rn | head
journalctl -u ssh --since -7d | grep -oP 'Failed password for \K\w+' | sort | uniq -c | sort -rn | head
Der zweite Befehl listet Versuche auf existierende Konten. Was dort steht, verdient einen zweiten Blick.
Was tatsächlich hilft#
Nichts davon ist neu, das ist der Punkt. Automatisierte Angriffe scheitern an den Grundlagen, nicht an Spezialwerkzeug:
- Kein Passwort-Login (Passwort-Login abschalten). Danach ist die Anmeldeflut wirkungslos.
- Nichts Erreichbares, was nicht erreichbar sein muss (Verwaltungsoberflächen im Internet, Eingehend dichtmachen).
- Automatische Sicherheitsupdates (hier), sie verkürzen genau das Fenster, in dem Massenausnutzung stattfindet.
- Rate-Limits für teure Pfade (DDoS: was wirklich hilft), wirkt gegen Crawler-Wellen wie gegen Anwendungsfluten.
SSH auf einen anderen Port legen senkt die Zahl der Zeilen im Protokoll, nicht das Risiko, wer gezielt sucht, findet den Port in Sekunden. Ganze Länder zu sperren wirkt kurz und trifft am Ende Kunden und Sammelnetze gleichermaßen. Beides ist Lärmschutz, kein Schutzwall, dieselbe Einordnung wie bei Fail2ban.
Crawler messen, bevor man sie sperrt#
# Anteil der Anfragen je Kennung, letzte 10.000 Zeilen
tail -10000 /var/log/nginx/access.log \
| grep -oP '"[^"]*"$' | sort | uniq -c | sort -rn | head -15
Erst danach entscheiden: Ein Sammler, der 3 % der Anfragen erzeugt, ist kein Thema. Einer, der 60 % erzeugt und dabei jede Seite dreimal abruft, ist eins und wird über robots.txt gebeten, über Rate-Limits gebremst und erst zuletzt gesperrt.
Der eigene Referenzwert#
Die einzige Zahl, die zählt, ist die eigene: Wie viele Fehlversuche sind bei dir normal? Ohne diesen Wert ist „ungewöhnlich viel“ ein Gefühl.
# Fehlversuche pro Tag über zwei Wochen
journalctl -u ssh --since -14d | grep -c 'Failed password'
Einmal notieren, in die Bestandsliste legen (Bestandsliste statt Bauchgefühl) und beim nächsten Durchgang vergleichen. Eine Verzehnfachung ist ein Signal, eine hohe absolute Zahl für sich genommen nicht.
Geschrieben aus dem laufenden Betrieb: MRMedia betreibt eigene Hosts, Kundendienste und deren Härtung in der EU. Eine veraltete Anleitung ist hier ein Sicherheitsproblem, kein Schönheitsfehler. Korrekturen bitte über Discord.