← Alle Artikel
Open Source Security 20. Februar 2026 15 Min. Lesezeit

Linux Server härten: Best Practices für Admins

Ein ungehärteter Linux-Server ist ein leichtes Ziel. Wir zeigen die wichtigsten Maßnahmen, um Ihre Server gegen Angriffe zu schützen - von SSH bis Kernel-Parameter.

Die meisten erfolgreichen Angriffe auf Linux-Server nutzen keine Zero-Day-Exploits. Sie nutzen Fehlkonfigurationen, schwache Passwörter und fehlende Updates. Mit den richtigen Maßnahmen schützen Sie sich gegen 90% aller Angriffe.

Wichtig: Server-Härtung ist keine einmalige Aktion. Es ist ein kontinuierlicher Prozess aus Updates, Monitoring und regelmäßiger Überprüfung.

1. SSH absichern - Der wichtigste Schritt

SSH ist das primäre Einfallstor für Angreifer. Ein falsch konfigurierter SSH-Dienst ist eine offene Einladung. Hier sind die essentiellen Einstellungen:

# /etc/ssh/sshd_config

# Root-Login verbieten
PermitRootLogin no

# Nur Key-Authentifizierung erlauben
PasswordAuthentication no
PubkeyAuthentication yes

# SSH-Port ändern (optional, aber effektiv)
Port 2222

# Nur bestimmte Benutzer erlauben
AllowUsers admin deploy

# Idle-Timeout setzen
ClientAliveInterval 300
ClientAliveCountMax 2

Wichtig: Bevor Sie PasswordAuthentication deaktivieren, stellen Sie sicher, dass Ihr SSH-Key korrekt hinterlegt ist und funktioniert. Sonst sperren Sie sich selbst aus!

2. Firewall konfigurieren

Eine Firewall ist Pflicht. UFW (Uncomplicated Firewall) macht die Konfiguration einfach:

# UFW installieren und aktivieren
apt install ufw

# Default-Policies setzen
ufw default deny incoming
ufw default allow outgoing

# Notwendige Ports öffnen
ufw allow 2222/tcp  # SSH (angepasster Port)
ufw allow 80/tcp    # HTTP
ufw allow 443/tcp   # HTTPS

# Firewall aktivieren
ufw enable

# Status prüfen
ufw status verbose

Für komplexere Setups empfehlen wir nftables oder iptables direkt. Aber für die meisten Server ist UFW ausreichend und weniger fehleranfällig.

3. Fail2Ban gegen Brute-Force

Fail2Ban blockiert IP-Adressen nach mehreren fehlgeschlagenen Login-Versuchen automatisch:

# Installation
apt install fail2ban

# Konfiguration kopieren
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# /etc/fail2ban/jail.local anpassen
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

# Dienst starten
systemctl enable fail2ban
systemctl start fail2ban

4. Updates automatisieren

Ungepatchte Systeme sind das größte Sicherheitsrisiko. Automatische Sicherheitsupdates sind ein Muss:

# Unattended-upgrades installieren
apt install unattended-upgrades

# Automatische Updates aktivieren
dpkg-reconfigure -plow 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";

Tipp: Setzen Sie Automatic-Reboot auf "false" für Produktionssysteme und planen Sie Reboots nach Kernel-Updates manuell ein.

5. Benutzer und Rechte

Das Prinzip der minimalen Rechte ist fundamental für Sicherheit:

  • Kein Root-Login: Arbeiten Sie immer mit einem normalen Benutzer und sudo
  • Starke Passwörter: Minimum 16 Zeichen, Passphrasen sind ideal
  • Sudo mit Logging: Alle sudo-Befehle werden protokolliert
  • Keine Shared Accounts: Jeder Admin hat seinen eigenen Benutzer
  • SSH-Keys rotieren: Regelmäßiger Austausch der Schlüssel
# Neuen Admin-Benutzer anlegen
adduser adminuser
usermod -aG sudo adminuser

# Passwort-Policy verschärfen
apt install libpam-pwquality

# /etc/security/pwquality.conf
minlen = 16
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1

6. Dienste minimieren

Jeder laufende Dienst ist eine potentielle Angriffsfläche. Deaktivieren Sie alles, was nicht benötigt wird:

# Alle laufenden Dienste anzeigen
systemctl list-units --type=service --state=running

# Unbenötigte Dienste deaktivieren
systemctl disable --now cups.service
systemctl disable --now avahi-daemon.service
systemctl disable --now bluetooth.service

# Offene Ports prüfen
ss -tlnp

# Nur benötigte Pakete behalten
apt autoremove

7. Kernel-Parameter härten

Sysctl-Einstellungen verbessern die Sicherheit auf Kernel-Ebene:

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

# IP Spoofing Protection
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.ipv6.conf.all.accept_redirects = 0

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

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

# Log Martians (impossible addresses)
net.ipv4.conf.all.log_martians = 1

# Einstellungen anwenden
sysctl -p /etc/sysctl.d/99-security.conf

8. Logging und Monitoring

Ohne Logs können Sie Angriffe nicht erkennen. Zentrales Logging ist essentiell:

  • Auditd: Kernel-Level Auditing für kritische Aktionen
  • Rsyslog: Zentrales Logging auf externen Server
  • Logwatch: Tägliche Zusammenfassung per E-Mail
  • OSSEC/Wazuh: Host-basierte Intrusion Detection
# Auditd installieren
apt install auditd

# Wichtige Audit-Regeln
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
auditctl -w /var/log/auth.log -p wa -k auth_log

Fazit: Härtung ist ein Prozess

Server-Härtung ist keine einmalige Aktion, sondern ein kontinuierlicher Prozess. Die hier gezeigten Maßnahmen sind die Grundlage - aber regelmäßige Überprüfung, Updates und Anpassungen sind genauso wichtig.

Nutzen Sie Tools wie Lynis oder OpenSCAP für regelmäßige Security-Audits. Dokumentieren Sie Ihre Konfigurationen und automatisieren Sie, was Sie können - mit Ansible, Puppet oder Chef.

Security Audit anfordern

Lassen Sie uns Ihre Server prüfen und konkrete Verbesserungsvorschläge erarbeiten.

Security Audit anfragen