Linux Sicherheit - Systemhärtung
Zur Navigation springen
Zur Suche springen
Linux Sicherheit - Systemhärtung
- Die Systemhärtung (Hardening) umfasst alle Maßnahmen, die ein Linux-System auf das notwendige Minimum reduzieren und seine Angriffsfläche minimieren. Ziel ist ein stabiler, wartbarer und sicher konfigurierter Zustand mit klar kontrollierten Schnittstellen.*
Grundlagen
- Systemhärtung bedeutet, alle nicht benötigten Dienste, Benutzer, Ports und Funktionen zu entfernen oder zu deaktivieren.
- Jede installierte Software und jeder offene Port ist potenziell ein Risiko.
- Ein gehärtetes System folgt dem Prinzip: „Alles ist verboten, was nicht ausdrücklich erlaubt ist.“
Paketverwaltung und Systembasis
- apt update && apt upgrade -y
- dnf update -y
- zypper update -y
- System stets aktuell halten, insbesondere Kernel- und Sicherheitsupdates.
- Nur benötigte Pakete installieren – jede zusätzliche Software erhöht die Angriffsfläche.
- apt autoremove --purge -y
- dnf remove --noautoremove <paketname>
- Entferne Entwicklungs- und Debugtools, wenn nicht erforderlich.
Benutzer- und Rechtehärtung
- Nur dedizierte Benutzerkonten, keine gemeinsamen Logins.
- Root-Login über SSH deaktivieren:
PermitRootLogin no
- Sudo nur gezielt freigeben:
- visudo
- sudo -l
- Home-Verzeichnisse mit restriktiven Rechten (700) konfigurieren.
- Unnötige Systemkonten sperren:
- passwd -l daemon
- usermod -s /usr/sbin/nologin nobody
Dienstekontrolle und Minimierung
- systemctl list-unit-files --type=service
- systemctl disable --now avahi-daemon
- systemctl disable --now cups
- systemctl disable --now bluetooth
- Nur benötigte Dienste aktivieren.
- Netzwerkdienste wie Telnet, FTP oder rsh sind veraltet und unsicher – entfernen.
- Anstatt von FTP → sftp oder scp.
- Für Administration SSH mit Key-Authentifizierung einsetzen.
Kernel- und Netzwerkschutz
- sysctl -a | grep net.ipv4
- Einstellungen in /etc/sysctl.conf oder /etc/sysctl.d/hardening.conf:
net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.rp_filter = 1 net.ipv4.tcp_syncookies = 1 net.ipv6.conf.all.accept_redirects = 0
- sysctl -p
- Redirects, Source Routing und ICMP-Broadcasts deaktivieren.
- TCP-SYN-Cookies aktivieren schützt vor DoS-SYN-Floods.
Dateisystem-Härtung
- Separate Partitionen für /boot, /var, /tmp und /home mit restriktiven Mount-Optionen.
- /etc/fstab:
/tmp tmpfs defaults,noexec,nosuid,nodev 0 0 /var ext4 defaults,relatime,nodev 0 2
- Mit „noexec“ wird die Ausführung von Binärdateien in /tmp verhindert.
- Mit „nosuid“ und „nodev“ werden SUID-Bits und Gerätedateien blockiert.
- Optional: Dateisysteme mit Integrity-Unterstützung (z. B. dm-verity) nutzen.
Logging und Überwachung
- journalctl -p 3 -xb
- journalctl -u ssh
- ausearch -m USER_LOGIN
- last
- Sicherheitsrelevante Logs zentralisieren (z. B. mit rsyslog, syslog-ng oder journald-Forwarding).
- Regelmäßige Auswertung ist Pflicht, nicht optional.
- Integritätsprüfungen mit aide oder tripwire regelmäßig durchführen.
Kernelmodule und Laufzeitüberwachung
- lsmod
- modprobe -r <modulname>
- echo "install usb-storage /bin/true" >> /etc/modprobe.d/blacklist.conf
- Nicht benötigte Kernelmodule deaktivieren oder blockieren.
- Blacklisting sensibler Module wie FireWire, USB-Speicher, Bluetooth etc.
- Kernel selbst regelmäßig auf CVEs prüfen:
- uname -r
- apt list --upgradable | grep linux-image
SSH-Härtung
- vi /etc/ssh/sshd_config
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 LoginGraceTime 30 AllowUsers admin backup
- systemctl restart ssh
- Passwortlogin ausschalten, nur Key-Authentifizierung.
- MaxAuthTries begrenzen, um Brute-Force-Angriffe zu verhindern.
Zeit- und Integritätssicherung
- apt install ntp -y
- systemctl enable --now ntp
- Systemzeit synchron halten (NTP/PTP), da Logs sonst unglaubwürdig werden.
- Integritätsprüfungen mit aide:
- aideinit
- aide --check
- Änderungen in Systemdateien frühzeitig erkennen.
Boot- und BIOS-Sicherheit
- Grub mit Passwort schützen:
- grub-mkpasswd-pbkdf2
- Eintrag in /etc/grub.d/40_custom:
set superusers="admin" password_pbkdf2 admin <HASH>
- update-grub
- Bootreihenfolge im BIOS sperren, Secure Boot aktivieren.
- USB-Boot deaktivieren, falls physischer Zugriff möglich.
Firewall-Basisregeln
- apt install nftables -y
- systemctl enable --now nftables
- vi /etc/nftables.conf
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
ct state established,related accept
iif lo accept
tcp dport {22,443} accept
}
}
- systemctl reload nftables
- Standardregel: Alles blocken, nur explizit benötigte Ports erlauben.
Automatisierung und Compliance
- Härtungsrichtlinien nach Standards prüfen:
- CIS Benchmark, BSI Grundschutz, DISA STIG.
- Tools: Lynis, OpenSCAP, Tiger.
- lynis audit system
- oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard /usr/share/xml/scap/ssg/content/ssg-debian12-ds.xml
- Ergebnisse dokumentieren und regelmäßig reviewen.
Quick Checklist
- Alle ungenutzten Dienste und Ports deaktivieren.
- SSH-Zugang nur mit Keys, Root-Login sperren.
- noexec/nosuid/nodev auf /tmp, /var/tmp, /home aktivieren.
- Regelmäßige Updates einspielen.
- sudo restriktiv konfigurieren.
- Integrität (AIDE) regelmäßig prüfen.
- Firewall aktiv und Logging eingeschaltet.
- Kernelparameter gemäß Hardening-Guide setzen.
- Systemhärtung regelmäßig überprüfen und dokumentieren.
Zusammenfassung
- Systemhärtung ist kein einmaliger Vorgang, sondern ein kontinuierlicher Prozess.
- Jede installierte Komponente ist potenziell ein Risiko.
- Durch gezieltes Deaktivieren, Isolieren und Protokollieren lässt sich ein Linux-System effektiv absichern.
- Ziel: M*