Server absichern mit KI-Unterstützung
UFW, Fail2ban, SSH-Hardening und Tailscale — mit Claude Code als Security-Assistent.
Warum Absicherung Pflicht ist
Ein Server im Netzwerk wird sofort angegriffen. Automatisierte Bots scannen rund um die Uhr nach offenen Ports, Standard-Passwörtern und bekannten Schwachstellen. Ohne Absicherung ist es nur eine Frage der Zeit, bis jemand einbricht.
1. SSH absichern
SSH ist der Haupteingang zu deinem Server. Hier gelten strenge Regeln:
# /etc/ssh/sshd_config
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
AllowUsers dein-user
MaxAuthTries 3
LoginGraceTime 30
# Nur moderne Algorithmen
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256
HostKeyAlgorithms ssh-ed25519
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
# SSH-Key generieren (auf deinem Rechner)
ssh-keygen -t ed25519 -C "dein-name@server"
# Key auf den Server kopieren
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip
# Dienst neu starten
sudo systemctl restart sshd
2. Firewall mit UFW
Prinzip: Alles verbieten, nur Erlaubtes zulassen (Zero-Trust).
# UFW installieren und konfigurieren
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default deny outgoing
# Nur das Nötigste erlauben
sudo ufw allow in on tailscale0 # Tailscale-Traffic
sudo ufw allow out 443/tcp # HTTPS
sudo ufw allow out 80/tcp # HTTP
sudo ufw allow out 53 # DNS
# Aktivieren
sudo ufw enable
sudo ufw status verbose
3. Fail2ban gegen Brute-Force
# Fail2ban installieren
sudo apt install fail2ban
# Konfiguration erstellen
sudo tee /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 3
bantime = 3600
findtime = 600
EOF
sudo systemctl enable --now fail2ban
4. Monitoring mit Telegram-Alerts
Werde sofort benachrichtigt, wenn sich jemand einloggt oder ein Login fehlschlägt:
# Login-Benachrichtigung in /etc/profile.d/login-notify.sh
#!/bin/bash
TITLE="SSH Login"
MSG="User: $(whoami) | Host: $(hostname) | IP: $(echo $SSH_CLIENT | awk '{print $1}')"
curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-d "chat_id=<CHAT_ID>" \
-d "text=$TITLE: $MSG" >/dev/null 2>&1
5. Claude Code als Security-Assistent
Mit Claude Code kannst du deine Sicherheitskonfiguration prüfen und verbessern lassen:
- Audit: „Prüfe meine sshd_config auf Schwachstellen“
- Firewall: „Zeige mir alle offenen Ports und ob sie nötig sind“
- Logs: „Analysiere /var/log/auth.log auf verdächtige Aktivitäten“
- Updates: „Prüfe ob Sicherheitsupdates ausstehen“
Nie blind Befehle ausführen, die du nicht verstehst — auch nicht von einer KI. Lies immer zuerst, was ein Befehl tut, bevor du ihn mit sudo ausführst.