Server-Sicherheitshärtung: Umfassende Checkliste
Linux-Server-Sicherheitshärtung: SSH-Härtung, Root-Login deaktivieren, Fail2Ban, automatische Updates, Firewall-Regeln, unnötige Dienste und Dateiberechtigungen.
Inhaltsverzeichnis
Server-Sicherheitshärtung: Umfassende Checkliste
Bei der Einrichtung eines neuen Linux-Servers ist die Standardkonfiguration nicht sicherheitsoptimiert. Server-Härtung umfasst systematische Konfigurationsänderungen zur Reduzierung der Angriffsfläche und zum Schließen von Sicherheitslücken. Diese Anleitung bietet eine umfassende Sicherheitscheckliste für Ihre REXE-Server.
Warum Server-Härtung?
Standard-Linux-Installationen können haben:
- Unnötige laufende Dienste
- SSH offen für Passwort-Authentifizierung
- Root-Login aktiviert
- Minimale Firewall-Regeln
- Automatische Updates deaktiviert
Schließen Sie Ihre bestehende SSH-Verbindung während der Härtung nicht. Testen Sie nach jedem Schritt die Verbindung von einem neuen Terminal.
✅ Checkliste 1: Systemupdates
# System aktualisieren
sudo apt update && sudo apt upgrade -y
# Automatische Sicherheitsupdates installieren
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
✅ Checkliste 2: SSH-Härtung
sudo nano /etc/ssh/sshd_config
# SSH-Sicherheitseinstellungen
# Root-Login deaktivieren
PermitRootLogin no
# Passwort-Authentifizierung deaktivieren (nach SSH-Schlüssel-Einrichtung)
PasswordAuthentication no
# Leere Passwörter nicht erlauben
PermitEmptyPasswords no
# X11-Weiterleitung deaktivieren
X11Forwarding no
# Maximale Login-Versuche
MaxAuthTries 3
# Maximale gleichzeitige Sitzungen
MaxSessions 5
# Login-Timeout (Sekunden)
LoginGraceTime 30
# Protokollversion
Protocol 2
# Nur bestimmte Benutzer erlauben
AllowUsers admin deploy
# SSH-Port ändern (optional)
# Port 2222
# Starke Verschlüsselungsalgorithmen
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,diffie-hellman-group14-sha256
# SSH-Konfiguration testen
sudo sshd -t
# SSH-Dienst neu starten
sudo systemctl restart sshd
✅ Checkliste 3: Firewall-Konfiguration
# UFW installieren und konfigurieren
sudo apt install ufw -y
# Standardrichtlinien
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH zuerst erlauben!
sudo ufw allow ssh
# Webdienste
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Zugriff von bestimmter IP erlauben
sudo ufw allow from 192.168.1.0/24 to any port 3306
# UFW aktivieren
sudo ufw enable
# Status prüfen
sudo ufw status verbose
Erweiterte UFW-Regeln
# Rate-Limiting für Brute-Force-Schutz
sudo ufw limit ssh
# Bestimmte IP blockieren
sudo ufw deny from 1.2.3.4
# Regel löschen
sudo ufw delete allow 80/tcp
✅ Checkliste 4: Fail2Ban-Einrichtung
# Fail2Ban installieren
sudo apt install fail2ban -y
# Lokale Konfiguration erstellen
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
# Fail2Ban starten
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
# Status prüfen
sudo fail2ban-client status
sudo fail2ban-client status sshd
# Gesperrte IPs anzeigen
sudo fail2ban-client status sshd | grep "Banned IP"
# IP entsperren
sudo fail2ban-client set sshd unbanip 1.2.3.4
✅ Checkliste 5: Unnötige Dienste deaktivieren
# Laufende Dienste auflisten
sudo systemctl list-units --type=service --state=running
# Unnötige Dienste deaktivieren
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
sudo systemctl disable --now bluetooth
sudo systemctl disable --now rpcbind
# Offene Ports prüfen
sudo ss -tlnp
✅ Checkliste 6: Dateisystem-Sicherheit
# SUID/SGID-Dateien finden
find / -perm /4000 -type f 2>/dev/null
find / -perm /2000 -type f 2>/dev/null
# Weltschreibbare Dateien finden
find / -perm -0002 -type f 2>/dev/null
# Kritische Dateien unveränderlich machen
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow
✅ Checkliste 7: Kernel-Sicherheitsparameter
sudo nano /etc/sysctl.d/99-security.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
fs.suid_dumpable = 0
sudo sysctl -p /etc/sysctl.d/99-security.conf
✅ Checkliste 8: Log-Überwachung
tail -f /var/log/auth.log
tail -f /var/log/fail2ban.log
tail -f /var/log/ufw.log
# Fehlgeschlagene SSH-Logins zählen
grep "Failed password" /var/log/auth.log | wc -l
# Logwatch installieren
sudo apt install logwatch -y
sudo logwatch --output stdout --format text --range today
✅ Checkliste 9: Sicherheitsscan
# Sicherheitsaudit mit Lynis
sudo apt install lynis -y
sudo lynis audit system
# Rootkit-Scan mit rkhunter
sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check
Der Lynis-Sicherheitsscore sollte 70+ betragen. Führen Sie es regelmäßig (monatlich) aus.
Schnellreferenz-Checkliste
- Systemupdates angewendet
- Automatische Sicherheitsupdates aktiviert
- SSH Root-Login deaktiviert
- SSH Passwort-Login deaktiviert (Schlüssel installiert)
- SSH MaxAuthTries auf 3 gesetzt
- UFW-Firewall aktiviert und konfiguriert
- Fail2Ban installiert und läuft
- Unnötige Dienste deaktiviert
- Kernel-Sicherheitsparameter konfiguriert
- Log-Überwachung konfiguriert
- Lynis-Sicherheitsaudit abgeschlossen
Fazit
Server-Härtung ist kein einmaliger Vorgang, sondern ein kontinuierlicher Prozess. Wenden Sie diese Checkliste bei neuen Server-Einrichtungen an und führen Sie regelmäßige Sicherheitsaudits durch. Diese Schritte verbessern die Sicherheit Ihrer REXE-Server erheblich.
Verwandte Artikel
VDS-Server per SSH verbinden: PuTTY, Terminal & Schlüssel
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Windows VDS per RDP verbinden: Vollständige Anleitung
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
VDS-Server Betriebssystem wechseln: Schritt-für-Schritt
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.