10 grundlegende Schritte für die Serversicherheit
10 grundlegende Schritte zur Sicherung eines Linux-Servers: SSH-Schlüsselauthentifizierung, Firewall, Fail2ban, automatische Updates, DDoS-Schutz und mehr. Ein Leitfaden mit Befehlen und Erklärungen.
Inhaltsverzeichnis
10 grundlegende Schritte für die Serversicherheit
Wenn Sie einen neuen Linux-Server einrichten, ist die Standardkonfiguration nicht für die Sicherheit optimiert. Jeder Server, der dem Internet ausgesetzt ist, wird innerhalb von Minuten zum Ziel automatisierter Scan-Tools. Dieser Leitfaden erklärt die 10 grundlegenden Schritte, die Sie implementieren müssen, um Ihren Server zu sichern, komplett mit Befehlen.
Achten Sie darauf, den Zugang zu Ihrem Server beim Anwenden dieser Schritte nicht zu verlieren. Besonders beim Ändern der SSH-Konfiguration halten Sie Ihre aktuelle Sitzung offen und testen Sie mit einem neuen Terminalfenster.
Schritt 1: SSH-Schlüsselauthentifizierung und Deaktivierung der Passwort-Anmeldung
Passwortbasierte SSH-Anmeldung ist anfällig für Brute-Force-Angriffe. Die Verwendung eines SSH-Schlüsselpaars ist viel sicherer.
SSH-Schlüsselpaar erstellen (auf lokalem Rechner)
# Ed25519-Schlüssel erstellen
ssh-keygen -t ed25519 -C "server-name@rexe"
# Oder wenn Sie RSA verwenden möchten
ssh-keygen -t rsa -b 4096 -C "server-name@rexe"
Öffentlichen Schlüssel auf den Server kopieren
# Vom lokalen Rechner ausführen
ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@server-ip
Passwort-Anmeldung deaktivieren
# /etc/ssh/sshd_config bearbeiten
sudo nano /etc/ssh/sshd_config
# Diese Zeilen ändern:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# SSH-Dienst neu starten
sudo systemctl restart sshd
Schritt 2: Firewall-Konfiguration (UFW)
# UFW installieren
sudo apt install ufw -y
# Standardrichtlinien festlegen
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH erlauben
sudo ufw allow 22/tcp
# Webserver-Ports
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# UFW aktivieren
sudo ufw enable
Schritt 3: Fail2ban-Installation und -Konfiguration
# Fail2ban installieren
sudo apt install fail2ban -y
# Konfigurationsdatei erstellen
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
maxretry = 3
bantime = 86400
Schritt 4: Automatische Sicherheitsupdates
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
Schritt 5: Deaktivierung ungenutzter Dienste
# Laufende Dienste auflisten
sudo systemctl list-units --type=service --state=running
# Offene Ports prüfen
sudo ss -tlnp
# Unnötige Dienste stoppen
sudo systemctl stop bluetooth
sudo systemctl disable bluetooth
Schritt 6: Starke Passwörter und Zwei-Faktor-Authentifizierung
sudo apt install libpam-pwquality -y
minlen = 12
ucredit = -1
lcredit = -1
dcredit = -1
ocredit = -1
Schritt 7: Regelmäßige Backups
# Lokales Backup mit rsync
rsync -avz --delete /var/www/ /backup/www/
# Cron-Job für automatisches Backup
0 2 * * * rsync -avz /var/www/ /backup/www/
# Datenbank-Backup
mysqldump -u root -p --all-databases | gzip > /backup/db_$(date +%Y%m%d).sql.gz
Wenden Sie die 3-2-1-Backup-Regel an: 3 Kopien, 2 verschiedene Medien, 1 anderer Standort.
Schritt 8: Log-Überwachung
tail -f /var/log/auth.log
tail -f /var/log/syslog
grep "Failed password" /var/log/auth.log | tail -20
Schritt 9: DDoS-Schutz
# SYN-Flood-Schutz
sudo iptables -A INPUT -p tcp --syn -m limit \
--limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
# Verbindungsanzahl-Limit (pro IP)
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 50 -j REJECT
Softwarebasierter DDoS-Schutz kann bei großangelegten Angriffen unzureichend sein. Die Path.net-Infrastruktur von REXE bietet DDoS-Filterung auf Netzwerkebene und bereinigt Angriffsdatenverkehr, bevor er Ihren Server erreicht.
Schritt 10: SSL/TLS-Konfiguration
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
server {
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
}
Sicherheits-Checkliste
- SSH-Schlüsselauthentifizierung aktiv, Passwort-Anmeldung deaktiviert
- Root-SSH-Anmeldung deaktiviert
- Firewall konfiguriert
- Fail2ban installiert und läuft
- Automatische Sicherheitsupdates aktiv
- Ungenutzte Dienste deaktiviert
- Starke Passwortrichtlinie angewendet
- 2FA aktiviert
- Regelmäßiger Backup-Plan erstellt
- Log-Überwachung konfiguriert
- DDoS-Schutz aktiv
- SSL/TLS-Zertifikat installiert
Verwandte Artikel
Malware & Rootkit-Scan: rkhunter und ClamAV Anleitung
Schützen Sie Ihren Linux-Server vor Malware und Rootkits. rkhunter und ClamAV Installation, Scan-Konfiguration, Ergebnisinterpretation, geplante Scans und Incident-Response-Anleitung.
Fail2Ban Konfiguration: SSH Brute-Force-Schutz Anleitung
Schützen Sie Ihren Server vor SSH-Brute-Force-Angriffen mit Fail2Ban. Installation, jail.local-Konfiguration, Nginx/Apache-Jails, IP-Whitelist, Ban-Überwachung und E-Mail-Benachrichtigungen.
WireGuard VPN-Server einrichten: Schritt-für-Schritt-Anleitung
WireGuard VPN-Server einrichten: Schlüsselgenerierung, Server- und Client-Konfiguration, IP-Weiterleitung, Firewall-Regeln und Windows/Linux/Android-Client-Setup.