Checkliste für die Härtung von Linux-Servern
15 Min. Lesezeit - 8. Mai 2026

Schritt-für-Schritt-Checkliste zur Absicherung eines Linux-Servers. Behandelt SSH, Firewalls, Patching, Dateiberechtigungen, SELinux/AppArmor und Audit-Protokollierung
Checkliste für die Härtung von Linux-Servern
Eine standardmäßige Linux-Installation ist keine sichere Linux-Installation. Fehlkonfigurationen wie offener SSH-Root-Zugang, schwache Firewalls und ungepatchte Software sind für die meisten Sicherheitsverletzungen verantwortlich. Neue Server werden innerhalb weniger Minuten nach der Inbetriebnahme automatisch gescannt, daher sollte die Absicherung vor allen anderen Maßnahmen erfolgen.
Diese Checkliste deckt die wichtigsten Schritte ab: SSH sperren, Firewalls konfigurieren, Patches installieren, Dateiberechtigungen einschränken, obligatorische Zugriffskontrollen aktivieren und Audit-Protokollierung einrichten.
Sperren Sie SSH
SSH ist Ihr primärer Zugangspunkt und das erste, was Angreifer untersuchen. Die Standardkonfiguration (Passwort-Authentifizierung, Root-Anmeldung, Port 22) ist genau das, wonach automatische Scanner suchen.
Erzeugen Sie ein Ed25519-Schlüsselpaar, das mehr Sicherheit und Leistung bietet als RSA:
ssh-keygen -t ed25519Sobald die schlüsselbasierte Anmeldung funktioniert, aktualisieren Sie /etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Ändern Sie den Standardport von 22 auf etwas weniger Offensichtliches. Dies wird einen entschlossenen Angreifer nicht aufhalten, aber es reduziert das Rauschen von automatischen Scans erheblich.
Testen Sie die Änderungen immer von einem zweiten Terminal aus, bevor Sie Ihre aktuelle Sitzung schließen. Führen Sie sudo sshd -t aus, um nach Syntaxfehlern zu suchen, und dann systemctl reload sshd, um die Änderungen zu übernehmen, ohne aktive Verbindungen zu unterbrechen.
Fügen Sie Zwei-Faktor-Authentifizierung hinzu
2FA bedeutet, dass ein Angreifer sowohl Ihren SSH-Schlüssel als auch physischen Zugang zu Ihrem Gerät benötigt. Installieren Sie das Google Authenticator PAM-Modul:
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo dnf install google-authenticator # RHEL/FedoraFühren Sie google-authenticator für jeden Nutzer aus, um einen geheimen Schlüssel und Wiederherstellungscodes zu generieren. Speichern Sie die Wiederherstellungscodes offline.
Fügen Sie diese Zeile zu /etc/pam.d/sshd hinzu:
auth required pam_google_authenticator.soAktualisieren Sie dann /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveHalten Sie während des Tests eine aktive Sitzung offen. TOTP-Codes hängen von einer genauen Systemzeit ab, stellen Sie also sicher, dass NTP läuft.
Konfigurieren Sie Firewalls und Fail2Ban
Betreiben Sie eine Host-basierte Firewall, auch wenn sich Ihr Server hinter einer Netzwerk-Firewall befindet. Das Prinzip ist einfach: Verweigern Sie standardmäßig den gesamten eingehenden Datenverkehr und lassen Sie nur das zu, was Sie benötigen.
Für Ubuntu/Debian (UFW):
ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enableFür RHEL/Rocky/AlmaLinux (Firewalld):
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadHärten Sie den Kernel-Netzwerkstapel, indem Sie die folgenden Einträge zu /etc/sysctl.conf hinzufügen:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Fail2Ban installieren
Fail2Ban überwacht Anmeldeversuche und sperrt IPs nach wiederholten Fehlversuchen. Erstellen Sie /etc/fail2ban/jail.local (editieren Sie jail.conf nicht direkt, Updates überschreiben sie) und konfigurieren Sie sie so, dass IPs nach drei Fehlversuchen innerhalb von 10 Minuten für eine Stunde gesperrt werden. Setzen Sie das richtige Backend für Ihre Firewall(banaction = ufw oder banaction = nftables).
Überprüfen Sie Dienste und entfernen Sie veraltete Protokolle
Überprüfen Sie mit ss -tlnp, was abgehört wird und mit systemctl list-units --type=service --state=running, was läuft. Deaktivieren Sie alles, was Sie nicht brauchen: Bluetooth, CUPS, avahi-daemon, rpcbind.
Entfernen Sie Legacy-Protokolle, die Daten im Klartext übertragen:
| Legacy-Protokoll | Port(s) | Sichere Alternative |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variable | LDAP / Kerberos |
Unter Debian/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. Auf RHEL-basierten Systemen: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Überprüfen Sie die Entfernung mit ss -tulpn.
Patches und automatisierte Aktualisierungen
Die Aktualisierung Ihres Systems ist der schnellste Weg, um bekannte Sicherheitslücken zu schließen. Führen Sie Aktualisierungen sofort nach der Bereitstellung durch:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyAutomatisieren Sie dann die Sicherheitspatches. Installieren Sie unter Debian/Ubuntu unattended-upgrades und konfigurieren Sie es so, dass nur Sicherheitspatches angewendet werden. Unter RHEL/Rocky installieren Sie dnf-automatic und setzen upgrade_type = security in /etc/dnf/automatic.conf.
Richten Sie E-Mail-Benachrichtigungen für Aktualisierungsergebnisse ein. Deaktivieren Sie automatische Reboots auf Produktionsservern(Automatic-Reboot = false), damit Reboots während geplanter Wartungsfenster stattfinden. Für Umgebungen mit hoher Betriebszeit sollten Sie Live-Patching mit Canonical Livepatch (Ubuntu) oder kpatch (RHEL) in Betracht ziehen.
Dateisysteme und Berechtigungen härten
Überprüfen Sie zuerst SUID- und SGID-Binärdateien. Diese Dateien werden mit erweiterten Rechten ausgeführt und sind ein ideales Ziel für Angriffe:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsErhöhen Sie die Berechtigungen für kritische Dateien: /etc/shadow sollte 600 sein, /etc/passwd sollte 644 sein, /etc/ssh/sshd_config sollte 600 sein. Setzen Sie eine globale umask von 027 in /etc/profile, um zu verhindern, dass neue Dateien für die ganze Welt lesbar sind.
Finden und korrigieren Sie weltweit schreibbare Dateien mit find / -xdev -type f -perm -0002 -ls. Für Verzeichnisse, die für die Welt schreibbar bleiben müssen (wie /tmp), wenden Sie das sticky bit an: chmod 1777 /tmp.
Sichere Mount-Optionen
Bearbeiten Sie /etc/fstab, um einzuschränken, was auf kritischen Partitionen passieren kann:
| Partition | Einhängeoptionen | Zweck |
|---|---|---|
/tmp | nodev, nosuid, noexec | Verhindert die Ausführung von Malware in einem weltweit beschreibbaren Bereich |
/var/tmp | nodev, nosuid, noexec | Gleiche Schutzmaßnahmen wie /tmp |
/dev/shm | nodev, nosuid, noexec | Sichert den gemeinsamen Speicher |
/home | nodev, nosuid | Blockiert setuid-Binärdateien und Geräteknoten |
/var/log | nodev, nosuid, noexec | Schützt die Log-Integrität |
Testen Sie die Änderungen mit mount -o remount vor dem Neustart, um Probleme beim Booten zu vermeiden.
Aktivieren Sie obligatorische Zugriffskontrollen
SELinux und AppArmor schränken auf Kernel-Ebene ein, was Prozesse tun dürfen. Verwenden Sie das, was in Ihrer Distribution enthalten ist: SELinux für RHEL/CentOS/Fedora, AppArmor für Ubuntu/Debian/SUSE. Ein Wechsel zwischen den beiden Systemen führt zu Kompatibilitätsproblemen.
SELinux: Überprüfen Sie den Status mit getenforce. Starten Sie im permissiven Modus(setenforce 0) für mindestens zwei Wochen, um das Verhalten der Arbeitslast zu erfassen, ohne etwas zu zerstören. Überwachen Sie Verstöße mit ausearch -m avc -ts recent. Verwenden Sie audit2why zur Diagnose von Blockierungen und audit2allow -M [module_name] zur Erstellung von Richtlinienmodulen. Sobald die Protokolle sauber sind, schalten Sie die Erzwingung mit setenforce 1 ein und setzen Sie sie dann dauerhaft in /etc/selinux/config.
AppArmor: Überprüfen Sie aktive Profile mit aa-status. Installieren Sie apparmor-utils für Verwaltungsbefehle. Starten Sie Profile im Beschwerdemodus mit aa-complain und wechseln Sie dann in den Erzwingungsmodus mit aa-enforce, sobald Sie sicher sind. Verwenden Sie aa-genprof, um Profile für benutzerdefinierte Anwendungen zu erstellen.
Audit-Protokollierung und Überwachung einrichten
Ohne Protokollierung hinterlassen Vorfälle keine Spuren. Installieren Sie auditd:
sudo apt-get install auditd audispd-pluginsFügen Sie Dateisystemüberwachungen für kritische Dateien hinzu:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identityVerfolgen Sie die Ausführung aller Root-Befehle:
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commandsLaden Sie Regeln mit augenrules --load und fügen Sie -e 2 am Ende Ihrer Regeldatei hinzu, um die Konfiguration manipulationssicher zu machen (Änderungen erfordern einen Neustart).
Überwachung der Dateiintegrität mit AIDE
AIDE erkennt unautorisierte Dateiveränderungen, indem es den aktuellen Zustand mit einer bekannten, guten Baseline vergleicht. Installieren Sie es, initialisieren Sie die Datenbank mit aideinit und verschieben Sie die resultierende Datei nach /var/lib/aide/aide.db.gz. Richten Sie einen täglichen Cron-Job ein, um aide --check auszuführen und die Ergebnisse per E-Mail an die Administratoren zu senden.
Logs zentralisieren
Lokale Logs sind nutzlos, wenn ein Angreifer mit Root-Zugriff sie löscht. Leiten Sie Protokolle in Echtzeit an einen entfernten Server weiter, indem Sie rsyslog mit TLS-Verschlüsselung verwenden. Hinzufügen zu /etc/rsyslog.conf:
*.* @@remote-host:514Setzen Sie LogLevel VERBOSE in Ihrer SSH-Konfiguration, damit die Protokolle bei jeder erfolgreichen Anmeldung die Fingerabdrücke der Schlüssel enthalten. Für Produktionsumgebungen, in denen mehrere Server verwaltet werden, bieten Tools wie Wazuh oder OSSEC eine Host-basierte Intrusion Detection mit zentralisierter Log-Analyse.
Laufende Wartung
Härtung ist keine einmalige Aufgabe. Konfigurationen ändern sich, neue Schwachstellen tauchen auf, und Personalwechsel hinterlassen verwaiste Konten.
Wöchentlich: Überprüfen Sie die Fail2Ban-Protokolle, suchen Sie nach fehlgeschlagenen Aktualisierungen, überprüfen Sie Backups.
Monatlich: Überprüfen Sie Benutzerkonten und Berechtigungen, überprüfen Sie laufende Dienste, führen Sie einen vollständigen Scan mit Lynis oder OpenSCAP durch.
Vierteljährlich: Wechseln Sie die Anmeldeinformationen, aktualisieren Sie die Firewall-Regeln, testen Sie die Notfallwiederherstellung.
Verwenden Sie Infrastruktur-as-code-Tools wie Ansible mit dev-sec.io-Härtungsrollen, um konsistente Konfigurationen in Ihrer gesamten Flotte durchzusetzen und ein Abdriften zwischen den Audits zu verhindern.
Die dedizierten Server von FDC bieten Ihnen vollen Root-Zugriff und vollständige Kontrolle über Ihren Sicherheits-Stack. Erkunden Sie die Optionen für dedizierte Server, um auf einer Plattform aufzubauen, bei der Sie jede Ebene kontrollieren.

Haben Sie genug von langsamen Bereitstellungen oder Bandbreitenbeschränkungen? FDC Servers bietet sofortige dedizierte Leistung, globale Reichweite und flexible Pläne, die für jede Größenordnung geeignet sind.
Jetzt aktualisieren
Checkliste für die Härtung von Linux-Servern
Schritt-für-Schritt-Checkliste zur Absicherung eines Linux-Servers. Behandelt SSH, Firewalls, Patching, Dateiberechtigungen, SELinux/AppArmor und Audit-Protokollierung
15 Min. Lesezeit - 8. Mai 2026
iperf3 Tutorial: Netzwerkgeschwindigkeit unter Linux und Windows testen
10 Min. Lesezeit - 7. Mai 2026

Haben Sie Fragen oder benötigen Sie eine individuelle Lösung?
Flexible Optionen
Globale Reichweite
Sofortige Bereitstellung
Flexible Optionen
Globale Reichweite
Sofortige Bereitstellung