Heute habe ich das Auth.log meines Raspberrys überprüft (private IP-Adresse in meinem Heimnetzwerk hinter einem wrt54gl). Überraschenderweise habe ich viele Zeilen mit der Meldung „Fehlerhaftes Passwort für Root von“ gesehen.
Die SRC-IP ist auf Listen von SSH-Brute-Force-Angreifern zu finden.
Wenn ich mich über das Internet mit meinem Raspberry verbinde, stelle ich normalerweise eine SSH-Verbindung zur öffentlichen IP-Adresse meines Routers her und verbinde mich mit der privaten Adresse des Raspberry.
Wie kann also jemand eine direkte Verbindung zu diesem Gerät herstellen, das nur über eine private Adresse verfügt?
eth0 Link encap:Ethernet Hardware Adresse b8:27:eb:e5:7a:5b
inet Adresse:192.168.0.5 Bcast:192.168.0.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:2774178 errors:0 dropped:933 overruns:0 frame:0
TX packets:5544091 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:1000
RX bytes:457172801 (435.9 MiB) TX bytes:875979564 (835.3 MiB)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX packets:2695 errors:0 dropped:0 overruns:0 frame:0
TX packets:2695 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:0
RX bytes:725188 (708.1 KiB) TX bytes:725188 (708.1 KiB)
Jun 15 13:42:12 rpi sshd[15608]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.31 user=root
Antwort1
Auf die gleiche Weise wie Sie, vorausgesetzt, Sie verwenden Portweiterleitung. Wenn Sie versuchen, sich von einem Remote-Computer aus bei Ihrem Raspberry anzumelden, möglicherweise sogar mit einem falschen Passwort, sollten Sie eine sehr ähnliche Zeile in auth.log sehen.
Natürlich stellen Sie eine Verbindung zu Ihrer öffentlichen IP-Adresse her, die der externen Schnittstelle des Routers zugewiesen ist. Ich gehe davon aus, dass Sie im Router eine Portweiterleitung eingerichtet haben, sodass jede Verbindung zu einem bestimmten Port Ihrer öffentlichen IP-Adresse an den Raspberry weitergeleitet wird. In diesem speziellen Fall gehe ich davon aus, dass Sie Port 22 im Router so weitergeleitet haben, dass er an Port 22 Ihres Raspberry weitergeleitet wird.
Der Weg des Typen hinter der anderen IP-Adresse ist der gleiche und wahrscheinlich
- Durchsuchen des Internets nach Hosts, deren Ports geöffnet sind
- Ausführen eines Tools, das
- stellt eine Verbindung zu diesem Host und Port her
- versucht sich mit Passwortlisten anzumelden
Oder er macht es manuell und startet seinen SSH-Client, stellt eine Verbindung zu Ihrer öffentlichen IP-Adresse (Port 22) her, die an den Raspberry weitergeleitet wird, und probiert einfach gängige Benutzernamen-/Passwortkombinationen aus (pi/raspberry, root/root, …).
Um das zu vermeiden, können Sie
- Konfigurieren Sie SSHD so, dass die Authentifizierung mit privatem/öffentlichem Schlüssel und nicht mit Kennwortauthentifizierung verwendet wird.
- Sagen Sie Ihrem Router, dass er einen anderen Port (z. B. 2222) an Port 22 des Raspberry weiterleiten soll. Passen Sie unbedingt Ihren (Remote-)SSH-Client so an, dass Sie weiterhin eine Verbindung herstellen können.
- Installieren Sie
knockd
den Port und öffnen Sie ihn, bevor Sie ihn verwenden möchten. - Installieren
fail2ban
, um nicht autorisierte IP-Adressen zu blockieren
(für einen etwas detaillierteren Überblick über die genannten Methoden siehe auchHier.)