Wer den Raspberry Pi aus dem Internet erreichbar macht, muss ihn absichern. Ohne grundlegende Schutzmaßnahmen ist ein Pi, der direkt im Internet hängt, innerhalb von Minuten das Ziel automatisierter Angriffe. Diese Anleitung zeigt, wie ihr euren Pi mit wenigen Schritten deutlich sicherer macht.
1. Starkes Passwort setzen
Das wichtigste zuerst: Stellt sicher, dass ihr ein sicheres Passwort verwendet. Das Standard-Passwort raspberry ist öffentlich bekannt und darf unter keinen Umständen für einen Pi im Internet verwendet werden.
|
1 |
passwd |
Ein sicheres Passwort hat mindestens 12 Zeichen und enthält Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen. Noch besser: SSH-Key-Authentifizierung (siehe unten).
2. System aktuell halten
Regelmäßige Updates schließen bekannte Sicherheitslücken:
|
1 |
sudo apt update && sudo apt full-upgrade -y |
Für automatische Sicherheitsupdates:
|
1 2 |
sudo apt install unattended-upgrades -y sudo dpkg-reconfigure -plow unattended-upgrades |
3. SSH härten
SSH ist das häufigste Angriffsziel. Öffnet die SSH-Konfiguration:
|
1 |
sudo nano /etc/ssh/sshd_config |
Folgende Einstellungen setzen oder anpassen:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Port ändern (statt Standard 22) Port 2222 # Root-Login deaktivieren PermitRootLogin no # Passwort-Login deaktivieren (nur nach SSH-Key-Einrichtung!) PasswordAuthentication no # Maximale Login-Versuche MaxAuthTries 3 # Leerlauf-Timeout (10 Minuten) ClientAliveInterval 600 ClientAliveCountMax 0 |
SSH neu starten:
|
1 |
sudo systemctl restart ssh |
4. SSH-Keys einrichten (empfohlen)
SSH-Keys sind deutlich sicherer als Passwörter. Auf eurem lokalen Rechner (nicht auf dem Pi):
|
1 2 3 4 5 |
# Schlüsselpaar erstellen (Windows: PowerShell / Linux/Mac: Terminal) ssh-keygen -t ed25519 -C "mein-raspberry-pi" # Public Key auf den Pi übertragen ssh-copy-id -p 2222 benutzer@raspberrypi.local |
Nach erfolgreichem Test könnt ihr Passwort-Login in der sshd_config deaktivieren (PasswordAuthentication no).
5. Firewall mit UFW einrichten
UFW (Uncomplicated Firewall) ist die einfachste Möglichkeit, eingehende Verbindungen zu kontrollieren:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
sudo apt install ufw -y # Alle eingehenden Verbindungen standardmäßig blockieren sudo ufw default deny incoming sudo ufw default allow outgoing # Nur erlaubte Ports öffnen sudo ufw allow 2222/tcp # SSH (euren Port anpassen!) sudo ufw allow 80/tcp # HTTP (nur wenn Webserver läuft) sudo ufw allow 443/tcp # HTTPS (nur wenn Webserver läuft) # UFW aktivieren sudo ufw enable # Status prüfen sudo ufw status verbose |
6. Fail2Ban gegen Brute-Force-Angriffe
Fail2Ban überwacht Log-Dateien und sperrt IPs, die zu viele fehlgeschlagene Login-Versuche haben:
|
1 |
sudo apt install fail2ban -y |
Konfiguration für SSH anpassen:
|
1 |
sudo nano /etc/fail2ban/jail.local |
Folgendes einfügen:
|
1 2 3 4 5 6 |
[sshd] enabled = true port = 2222 maxretry = 5 bantime = 3600 findtime = 600 |
|
1 2 3 4 5 |
sudo systemctl enable fail2ban sudo systemctl start fail2ban # Status prüfen sudo fail2ban-client status sshd |
7. Unnötige Dienste deaktivieren
Dienste, die ihr nicht benötigt, sollten deaktiviert werden:
|
1 2 3 4 5 6 |
# Aktive Dienste auflisten sudo systemctl list-units --type=service --state=running # Beispiel: Bluetooth deaktivieren (falls nicht benötigt) sudo systemctl disable bluetooth sudo systemctl stop bluetooth |
8. Login-Banner setzen
Ein rechtlicher Hinweis, der Angreifern zeigt dass unbefugter Zugriff illegal ist:
|
1 |
sudo nano /etc/issue.net |
Inhalt: Unauthorized access is prohibited.
Dann in /etc/ssh/sshd_config: Banner /etc/issue.net
Zusammenfassung Checkliste
- ✅ Sicheres Passwort gesetzt
- ✅ System aktuell (unattended-upgrades)
- ✅ SSH-Port geändert, Root-Login deaktiviert
- ✅ SSH-Keys eingerichtet, Passwort-Login deaktiviert
- ✅ UFW Firewall aktiv
- ✅ Fail2Ban installiert und konfiguriert
- ✅ Unnötige Dienste deaktiviert
