Ein frisch installierter Server ist noch nicht sicher. Diese Maßnahmen sollten Sie unmittelbar nach der Installation durchführen.

1. System aktualisieren

apt update && apt upgrade -y

Automatische Sicherheitsupdates aktivieren:

apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

2. Neuen Admin-Benutzer erstellen

Nicht als root arbeiten:

adduser admin
usermod -aG sudo admin

Testen Sie den Login mit dem neuen Benutzer, bevor Sie root deaktivieren!

3. SSH absichern

Bearbeiten Sie /etc/ssh/sshd_config:

# Root-Login verbieten
PermitRootLogin no

# Nur bestimmte Benutzer
AllowUsers admin

# Passwort-Auth deaktivieren (nach Key-Setup!)
PasswordAuthentication no

# Leere Passwörter verbieten
PermitEmptyPasswords no

# Timeout für inaktive Sessions
ClientAliveInterval 300
ClientAliveCountMax 2

SSH neu starten:

systemctl restart sshd

Wichtig: Erst SSH-Key einrichten, dann Passwort-Auth deaktivieren!

SSH-Key einrichten

Auf Ihrem lokalen Computer:

ssh-keygen -t ed25519
ssh-copy-id admin@server-ip

4. Firewall aktivieren

apt install ufw

# Standardregeln
ufw default deny incoming
ufw default allow outgoing

# SSH erlauben (wichtig!)
ufw allow ssh

# Weitere Ports nach Bedarf
ufw allow http
ufw allow https

# Aktivieren
ufw enable

5. Fail2ban installieren

Schützt vor Brute-Force-Angriffen:

apt install fail2ban
systemctl enable fail2ban

Basis-Konfiguration /etc/fail2ban/jail.local:

[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
maxretry = 3
systemctl restart fail2ban

6. Unnötige Dienste deaktivieren

Prüfen Sie laufende Dienste:

systemctl list-units --type=service --state=running
ss -tulpn

Nicht benötigte Dienste stoppen:

systemctl disable --now cups      # Druckserver
systemctl disable --now avahi-daemon  # Bonjour/mDNS

7. Kernel-Hardening

Erstellen Sie /etc/sysctl.d/99-security.conf:

# IP-Spoofing-Schutz
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# ICMP-Redirects ignorieren
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Source-Routing deaktivieren
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# SYN-Flood-Schutz
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2

# Log Martians (verdächtige Pakete)
net.ipv4.conf.all.log_martians = 1

Anwenden:

sysctl -p /etc/sysctl.d/99-security.conf

8. Berechtigungen prüfen

Wichtige Dateien absichern:

chmod 600 /etc/ssh/sshd_config
chmod 700 /root
chmod 600 /etc/shadow

Welt-beschreibbare Dateien finden:

find / -xdev -type f -perm -0002 2>/dev/null

9. Logging einrichten

Logs sollten zentral gesammelt werden:

# Log-Rotation prüfen
cat /etc/logrotate.conf
ls /etc/logrotate.d/

Wichtige Logs überwachen:

tail -f /var/log/auth.log    # Login-Versuche
tail -f /var/log/syslog      # System-Events

10. Regelmäßige Backups

Ohne Backup ist alles andere nutzlos:

# Beispiel-Backup-Skript
cat > /root/backup.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf /backup/system-$DATE.tar.gz /etc /var/www /home
mysqldump --all-databases | gzip > /backup/db-$DATE.sql.gz
rsync -avz /backup/ user@backup-server:/backup/
EOF

chmod +x /root/backup.sh

Cron einrichten:

crontab -e
# 0 3 * * * /root/backup.sh

Sicherheits-Checkliste

Unmittelbar nach Installation

  • [ ] System aktualisiert
  • [ ] Admin-Benutzer erstellt
  • [ ] SSH-Key eingerichtet
  • [ ] Root-Login deaktiviert
  • [ ] Passwort-Auth deaktiviert
  • [ ] Firewall aktiviert
  • [ ] Fail2ban installiert

Fortgeschritten

  • [ ] Kernel-Hardening
  • [ ] Unnötige Dienste deaktiviert
  • [ ] Automatische Updates aktiviert
  • [ ] Backup eingerichtet und getestet
  • [ ] Monitoring eingerichtet

Regelmäßig

  • [ ] System-Updates prüfen
  • [ ] Logs durchsehen
  • [ ] Backup-Tests
  • [ ] Fail2ban-Status prüfen
  • [ ] Offene Ports prüfen (ss -tulpn)

Weitere Maßnahmen

Zwei-Faktor-Authentifizierung für SSH

apt install libpam-google-authenticator

Intrusion Detection

apt install aide
aideinit

Rootkit-Scanner

apt install rkhunter chkrootkit
rkhunter --check
chkrootkit

Port Knocking (optional)

Versteckt SSH-Port bis zur "Klopf-Sequenz".

Was NICHT tun

1. Alles als root: Immer sudo für Admin-Tasks 2. Passwort-Auth mit schwachen Passwörtern: SSH-Keys nutzen 3. Firewall vergessen: Nur benötigte Ports öffnen 4. Updates aufschieben: Sicherheitsupdates sofort einspielen 5. Keine Backups: Immer 3-2-1-Regel befolgen

Fazit

Server-Sicherheit ist kein einmaliges Setup, sondern ein fortlaufender Prozess. Die hier gezeigten Maßnahmen bilden eine solide Grundlage. Bleiben Sie wachsam, halten Sie das System aktuell, und testen Sie regelmäßig Ihre Backups.