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, Dateizugriffsrechte, SELinux/AppArmor und Audit-Protokollierung
Checkliste zur Absicherung von Linux-Servern
Eine Standard-Linux-Installation ist keine sichere Linux-Installation. Fehlkonfigurationen wie offener Root-SSH-Zugriff, schwache Firewalls und nicht gepatchte Software sind für die meisten Sicherheitsverletzungen verantwortlich. Neue Server werden innerhalb von Minuten nach ihrer Inbetriebnahme automatisierten Scans ausgesetzt, daher sollte die Absicherung vor allem anderen erfolgen.
Diese Checkliste umfasst die wichtigsten Schritte: Absicherung von SSH, Konfiguration von Firewalls, Installation von Patches, Verschärfung der Dateiberechtigungen, Aktivierung von obligatorischen Zugriffskontrollen und Einrichtung der Audit-Protokollierung.
SSH absichern
SSH ist Ihr primärer Zugangspunkt und das Erste, was Angreifer ausloten. Die Standardkonfiguration (Passwortauthentifizierung, Root-Login, Port 22) ist genau das, wonach automatisierte Scanner suchen.
Generieren 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 einen weniger offensichtlichen Wert. Dies wird einen entschlossenen Angreifer nicht aufhalten, reduziert aber die Flut automatisierter Scans erheblich.
Testen Sie Änderungen immer von einem zweiten Terminal aus, bevor Sie Ihre aktuelle Sitzung schließen. Führen Sie sudo sshd -t aus, um auf Syntaxfehler zu prüfen, und dann systemctl reload sshd um die Änderungen zu übernehmen, ohne aktive Verbindungen zu unterbrechen.
Fügen Sie die Zwei-Faktor-Authentifizierung hinzu
2FA bedeutet, dass ein Angreifer sowohl Ihren SSH-Schlüssel als auch physischen Zugriff auf Ihr 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 Benutzer 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:
auth required pam_google_authenticator.soAktualisieren Sie anschließend /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveHalten Sie während des Tests eine aktive Sitzung offen. TOTP-Codes sind von der genauen Systemzeit abhängig, stellen Sie daher sicher, dass NTP läuft.
Konfigurieren Sie Firewalls und Fail2Ban
Betreiben Sie eine hostbasierte Firewall, auch wenn sich Ihr Server hinter einer Netzwerk-Firewall befindet. Das Prinzip ist einfach: Blockieren Sie standardmäßig den gesamten eingehenden Datenverkehr und lassen Sie dann 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 --reloadSichern Sie den Kernel-Netzwerkstack, indem Sie Folgendes zu /etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Installieren Sie Fail2Ban
Fail2Ban überwacht Anmeldeversuche und sperrt IP-Adressen nach wiederholten Fehlversuchen. Erstellen Sie /etc/fail2ban/jail.local (nicht direkt bearbeiten jail.conf direkt, da Aktualisierungen die Datei überschreiben) und konfigurieren Sie es so, dass IP-Adressen nach drei fehlgeschlagenen Versuchen innerhalb von 10 Minuten für eine Stunde gesperrt werden. Legen Sie das richtige Backend für Ihre Firewall fest (banaction = ufw oder banaction = nftables).
Audit-Dienste und Entfernen veralteter Protokolle
Überprüfen Sie mit ss -tlnp und was läuft mit systemctl list-units --type=service --state=running. Deaktivieren Sie alles, was Sie nicht benötigen: Bluetooth, CUPS, avahi-daemon, rpcbind.
Entfernen Sie veraltete Protokolle, die Daten im Klartext übertragen:
| Veraltetes Protokoll | Port(s) | Sichere Alternative |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variabel | 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 automatische Updates
Die Aktualisierung Ihres Systems ist der schnellste Weg, bekannte Sicherheitslücken zu schließen. Führen Sie Updates unmittelbar nach der Bereitstellung durch:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyAutomatisieren Sie anschließend 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 Sie upgrade_type = security in /etc/dnf/automatic.conf.
Richten Sie E-Mail-Benachrichtigungen für die Ergebnisse der Updates ein. Deaktivieren Sie automatische Neustarts auf Produktionsservern (Automatic-Reboot = false), damit Neustarts während geplanter Wartungsfenster erfolgen. Für Umgebungen mit hoher Verfügbarkeit sollten Sie Live-Patching mit Canonical Livepatch (Ubuntu) oder kpatch (RHEL) in Betracht ziehen.
Dateisysteme und Berechtigungen absichern
Überprüfen Sie zunächst SUID- und SGID-Binärdateien. Diese Dateien werden mit erhöhten Berechtigungen ausgeführt und sind bevorzugte Ziele für Angriffe:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsVerschärfen Sie die Berechtigungen für kritische Dateien: /etc/shadow sollten 600, /etc/passwd sollten 644, /etc/ssh/sshd_config sollte 600. Setzen Sie eine globale umask von 027 in /etc/profile , um zu verhindern, dass neue Dateien für alle lesbar sind.
Suchen und korrigieren Sie für alle lesbare Dateien mit find / -xdev -type f -perm -0002 -ls. Wenden Sie bei Verzeichnissen, die für alle lesbar bleiben müssen (wie /tmp), wenden Sie das Sticky-Bit an: chmod 1777 /tmp.
Optionen für sicheres Mounten
Bearbeiten /etc/fstab bearbeiten, um die Aktivitäten auf kritischen Partitionen einzuschränken:
| Partition | Einhängungsoptionen | 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 bei /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 Integrität von Protokollen |
Testen Sie Änderungen mit mount -o remount vor dem Neustart, um Probleme beim Booten zu vermeiden.
Aktivieren Sie obligatorische Zugriffskontrollen
SELinux und AppArmor fügen auf Kernel-Ebene Einschränkungen hinzu, was Prozesse tun dürfen. Verwenden Sie das, was Ihre Distribution mitliefert: SELinux für RHEL/CentOS/Fedora, AppArmor für Ubuntu/Debian/SUSE. Ein Wechsel zwischen den beiden 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 Workloads zu erfassen, ohne etwas zu beschädigen. Überwachen Sie Verstöße mit ausearch -m avc -ts recent. Verwenden Sie audit2why , um Blockierungen zu diagnostizieren, und audit2allow -M [module_name] zum Erstellen von Policy-Modulen. Sobald die Protokolle sauber sind, wechseln Sie mit setenforce 1, und machen Sie dies dann in /etc/selinux/config.
AppArmor dauerhaft zu machen: Überprüfen Sie aktive Profile mit aa-status. Installieren Sie apparmor-utils für Verwaltungsbefehle. Starten Sie Profile im Warnmodus mit aa-complain, wechseln Sie dann in den Durchsetzungsmodus mit aa-enforce , sobald Sie sicher sind. Verwenden Sie aa-genprof , um Profile für benutzerdefinierte Anwendungen zu erstellen.
Einrichtung von Audit-Protokollierung und Überwachung
Ohne Protokollierung hinterlassen Vorfälle keine Spuren. Installieren 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 Befehle auf Root-Ebene:
-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 unbefugte Dateiänderungen, indem es den aktuellen Zustand mit einer als fehlerfrei bekannten Basislinie vergleicht. Installieren Sie das Programm, initialisieren Sie die Datenbank mit aideinitund verschieben Sie die resultierende Datei nach /var/lib/aide/aide.db.gz. Richten Sie einen täglichen Cron-Job ein, um aide --check und die Ergebnisse per E-Mail an Administratoren zu senden.
Zentralisieren Sie Protokolle
Lokale Protokolle sind nutzlos, wenn ein Angreifer mit Root-Zugriff sie löscht. Leiten Sie Protokolle in Echtzeit mithilfe von rsyslog mit TLS-Verschlüsselung an einen Remote-Server weiter. Fügen Sie hinzu /etc/rsyslog.conf:
*.* @@remote-host:514Set LogLevel VERBOSE in Ihrer SSH-Konfiguration hinzu, damit die Protokolle die Schlüssel-Fingerabdrücke für jede erfolgreiche Anmeldung enthalten. Für Produktionsumgebungen mit mehreren Servern bieten Tools wie Wazuh oder OSSEC eine hostbasierte Intrusion Detection mit zentraler Protokollanalyse.
Laufende Wartung
Hardening ist keine einmalige Aufgabe. Konfigurationen verschieben sich, neue Schwachstellen treten auf und Personalwechsel hinterlassen verwaisten Konten.
Wöchentlich: Überprüfen Sie die Fail2Ban-Protokolle, suchen Sie nach fehlgeschlagenen Updates und verifizieren Sie Backups.
Monatlich: Benutzerkonten und Berechtigungen prüfen, laufende Dienste überprüfen, einen vollständigen Scan mit Lynis oder OpenSCAP durchführen.
Vierteljährlich: Anmeldedaten rotieren, Firewall-Regeln aktualisieren, Disaster Recovery testen.
Verwenden Sie Infrastructure-as-Code-Tools wie Ansible mit den Härtungsrollen von dev-sec.io, um konsistente Konfigurationen in Ihrer gesamten Infrastruktur durchzusetzen und Abweichungen zwischen den Audits zu verhindern.
Die dedizierten Server von FDC bieten Ihnen vollen Root-Zugriff und vollständige Kontrolle über Ihren Security-Stack. Entdecken Sie die Optionen für dedizierte Server, um auf einer Plattform aufzubauen, auf 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 aktualisierenWarum es wichtig ist, einen leistungsstarken und ungemessenen VPS zu haben
Ein ungemessener VPS bietet eine pauschale Bandbreite mit einer festen Portgeschwindigkeit. Wie er sich von gebührenpflichtigen Tarifen unterscheidet, wann er sich lohnt und worauf Sie vor dem Kauf achten sollten.
7 Min. Lesezeit - 9. Mai 2025
Linux-Speicherverwaltung: Swap, OOM Killer & Cgroups
12 Min. Lesezeit - 31. 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