Jeder Server, der eine öffentliche IP-Adresse hat, wird angegriffen. Nicht vielleicht, nicht irgendwann — sondern innerhalb von Minuten nach der Inbetriebnahme. Automatisierte Scanner suchen rund um die Uhr nach offenen Ports, Standard-Passwörtern und bekannten Schwachstellen.
Laut dem BSI-Lagebericht 2024 werden täglich über 250.000 neue Schadprogramm-Varianten entdeckt. Ein ungesicherter Server ist kein Risiko — er ist eine Einladung.
1. SSH absichern
SSH ist der wichtigste Zugang zu Ihrem Server — und damit das erste Ziel von Angreifern.
Passwort-Login deaktivieren
# SSH-Key generieren (auf Ihrem lokalen Rechner)
ssh-keygen -t ed25519 -C "server-admin"
# Key auf den Server kopieren
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
# Auf dem Server: Passwort-Login deaktivieren
sudo nano /etc/ssh/sshd_config
Ändern Sie folgende Zeilen:
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
sudo systemctl restart sshd
SSH-Port ändern (optional)
# Port von 22 auf z.B. 2222 ändern
# In /etc/ssh/sshd_config:
Port 2222
Das stoppt keine gezielten Angriffe, reduziert aber automatisierte Scans um über 90%.
Fail2Ban installieren
sudo apt install -y fail2ban
# Konfiguration erstellen
sudo cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
EOF
sudo systemctl enable --now fail2ban
Nach drei fehlgeschlagenen Login-Versuchen wird die IP-Adresse für eine Stunde gesperrt.
2. Firewall einrichten
# UFW (Uncomplicated Firewall) installieren
sudo apt install -y ufw
# Standard: alles blockieren, nur explizit freigegebene Ports erlauben
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH erlauben (wichtig: VOR dem Aktivieren!)
sudo ufw allow ssh
# Webserver erlauben (falls benötigt)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Firewall aktivieren
sudo ufw enable
# Status prüfen
sudo ufw status verbose
3. Automatische Sicherheitsupdates
# Unattended-Upgrades installieren
sudo apt install -y unattended-upgrades
# Automatische Sicherheitsupdates aktivieren
sudo dpkg-reconfigure -plow unattended-upgrades
Prüfen Sie die Konfiguration in /etc/apt/apt.conf.d/50unattended-upgrades. Stellen Sie sicher, dass mindestens Security-Updates automatisch installiert werden.
4. Unnötige Dienste deaktivieren
Jeder laufende Dienst ist eine potentielle Angriffsfläche:
# Laufende Dienste auflisten
sudo systemctl list-units --type=service --state=running
# Nicht benötigte Dienste deaktivieren
sudo systemctl disable --now SERVICE_NAME
Typische Kandidaten zum Deaktivieren: cups (Druckserver), avahi-daemon (mDNS), bluetooth (auf Servern nicht nötig).
5. Benutzer und Rechte
# Eigenen Admin-User erstellen (nicht als root arbeiten)
sudo adduser admin
sudo usermod -aG sudo admin
# Root-Login per SSH deaktivieren (bereits in Schritt 1)
# Sicherstellen dass der neue User SSH-Key hat
6. Logs überwachen
# Fehlgeschlagene Login-Versuche
grep "Failed password" /var/log/auth.log | tail -20
# Fail2Ban Status
sudo fail2ban-client status sshd
Für eine zentrale Log-Überwachung über mehrere Server empfiehlt sich ein SIEM-System — damit sehen Sie Angriffe in Echtzeit statt erst beim manuellen Log-Durchsuchen.
Checkliste
[ ] SSH: Key-Auth aktiv, Passwort-Login aus
[ ] SSH: MaxAuthTries auf 3
[ ] Fail2Ban installiert und aktiv
[ ] Firewall (UFW) aktiv, nur nötige Ports offen
[ ] Automatische Sicherheitsupdates aktiv
[ ] Unnötige Dienste deaktiviert
[ ] Eigener Admin-User, kein direkter Root-Login
[ ] Logs werden regelmäßig geprüft
Fazit
Diese Maßnahmen sind kein Hexenwerk — sie dauern zusammen unter einer Stunde und decken die häufigsten Angriffsvektoren ab. Für Unternehmen, die mehrere Server betreiben oder regulatorische Anforderungen erfüllen müssen, empfehlen wir zusätzlich zentrales Monitoring und regelmäßige Schwachstellenscans.