LIVE: New phishing campaigns targeting mobile users —View latest threats →

Back to Tutorials
Experte 18 Min. Lesezeit

Linux-Sicherheitshärtung: Eine praktische Checkliste

Standard-Linux ist nicht produktionsreif. Gehen Sie SSH-Härtung, Firewall, automatische Updates und Benutzerrechtekontrollen Schritt für Schritt durch.

5. Februar 2026

Warum Standard-Installationen unsicher sind

Ein frisch installierter Linux-Server wird mit einer Reihe von Standardeinstellungen geliefert, die für breite Kompatibilität und einfache Einrichtung optimiert sind — nicht für Sicherheit. Dienste, die du nicht benötigst, könnten laufen, SSH akzeptiert Passwortauthentifizierung (anfällig für Brute Force), die Firewall könnte permissiv oder deaktiviert sein, und Benutzerkonten könnten übermäßige Privilegien haben. Härtung ist der Prozess der systematischen Reduzierung der Angriffsfläche entsprechend deinen tatsächlichen Anforderungen.

Diese Checkliste richtet sich an Debian/Ubuntu- und RHEL/CentOS-Familien, aber die Prinzipien gelten universell.

Benutzerkonto- und Authentifizierungshärtung

Root-Login deaktivieren und Sudo verwenden

Melde dich nie direkt als Root an. Erstelle einen dedizierten Admin-Benutzer und gewähre ihm Sudo-Privilegien:

adduser adminbenutzer
usermod -aG sudo adminbenutzer   # Debian/Ubuntu
usermod -aG wheel adminbenutzer  # RHEL/CentOS

Deaktiviere Root-SSH-Login in /etc/ssh/sshd_config: setze PermitRootLogin no.

Starke Passwortrichtlinien durchsetzen

Installiere libpam-pwquality (Debian) oder pam_pwquality (RHEL) und konfiguriere Mindestlänge, Komplexitätsanforderungen und Verlauf in /etc/security/pwquality.conf. Setze Passwortablauf in /etc/login.defs: PASS_MAX_DAYS 90, PASS_MIN_DAYS 1, PASS_WARN_AGE 14.

Ungenutzte Konten sperren

passwd -l benutzername   # Konto sperren
chage -E 0 benutzername  # Sofort ablaufen lassen

Prüfe Konten ohne Passwort oder mit Shell-Zugriff, den sie nicht haben sollten (grep -v 'nologin\|false' /etc/passwd).

SSH-Härtung

SSH ist der häufigste Vektor für Fernzugriff. Härtung in /etc/ssh/sshd_config:

Port 2222                     # Nicht-Standard-Port reduziert automatisierte Scans
PermitRootLogin no
PasswordAuthentication no     # Nur schlüsselbasierte Authentifizierung
PubkeyAuthentication yes
AllowUsers adminbenutzer      # Bestimmte Benutzer auf die Whitelist setzen
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowTcpForwarding no         # Sofern nicht benötigt
Protocol 2

Nach dem Ändern des Ports aktualisiere deine Firewall-Regeln, bevor du sshd neu startest. Verwende sshd -t, um die Konfiguration auf Syntaxfehler zu testen.

Für die Schlüsselgenerierung bevorzuge Ed25519 gegenüber RSA 2048:

ssh-keygen -t ed25519 -C "admin@server"

Firewall-Konfiguration

UFW (Ubuntu/Debian)

ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp   # Dein SSH-Port
ufw allow 443/tcp    # HTTPS falls Webserver
ufw enable
ufw status verbose

firewalld (RHEL/CentOS)

firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload

Verwende nftables direkt für maximale Kontrolle und Leistung auf modernen Kernels. Wende das Prinzip Standard-Ablehnung an — erlaube nur, was explizit benötigt wird.

Systemaktualisierungen und Paketverwaltung

Halte das System gepatcht. Ungepatchte Schwachstellen sind der häufigste anfängliche Zugriffsvektor nach Credential-Angriffen:

# Debian/Ubuntu — automatische Sicherheitsupdates aktivieren
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades

# RHEL/CentOS — automatische Updates aktivieren
dnf install dnf-automatic
systemctl enable --now dnf-automatic.timer

Entferne Pakete, die du nicht benötigst: apt purge telnet rsh-server ypserv xinetd. Jedes installierte Paket ist eine potenzielle Schwachstelle.

Unnötige Dienste deaktivieren

Liste alle laufenden Dienste auf und deaktiviere, was du nicht nutzt:

systemctl list-units --type=service --state=running
systemctl disable --now dienstname

Häufige Kandidaten zum Entfernen auf einem Webserver: avahi-daemon, cups, bluetooth, rpcbind. Jeder offene Port ist ein potenzieller Einstiegspunkt.

Dateisystemsicherheit

  • Sticky-Bit setzen auf weltschreibbaren Verzeichnissen: chmod +t /tmp
  • noexec, nosuid, nodev Mount-Optionen verwenden für /tmp, /var/tmp und Wechselmedien in /etc/fstab
  • SUID/SGID-Binärdateien prüfen: find / -perm /6000 -type f 2>/dev/null — entferne das Bit von allem, das es nicht benötigt
  • Berechtigungen für /etc/cron* einschränken: chmod 700 /etc/cron.d /etc/cron.daily

Einbruchserkennung und Überwachung

  • Fail2ban: Sperrt automatisch IPs mit wiederholten Authentifizierungsfehlern — unverzichtbar für jeden internetfähigen SSH
  • auditd: Kernel-Level-Protokollierung von Systemaufrufen, Dateizugriff und Benutzerbefehlen — liefert SIEMs reiche Ereignisdaten
  • AIDE (Advanced Intrusion Detection Environment): erstellt eine kryptografische Datenbank von Datei-Hashes in einem bekannt guten Zustand und meldet Änderungen
  • Logwatch oder GoAccess: Regelmäßige Protokollzusammenfassungen per E-Mail

Zentralisiere Protokolle sofort auf einem Remote-Syslog-Server oder SIEM — wenn ein Angreifer Root erreicht, löscht er die lokalen Protokolle.

Kernel-Härtung mit sysctl

Hinzufügen zu /etc/sysctl.d/99-hardening.conf:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2
kernel.dmesg_restrict = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Anwenden mit sysctl --system. Diese Einstellungen deaktivieren IP-Forwarding, verhindern ICMP-Redirect-Angriffe, aktivieren SYN-Cookie-Schutz und erzwingen ASLR.

#Linux#server security#hardening#SSH#firewall