SUSE Security: Best Practices Checklist (Artikel 150)
Der definitive Sicherheits-Check für SUSE-Systeme. Von der Installation über AppArmor bis hin zu Compliance-Audits – alles für den gehärteten Enterprise-Betrieb.
# SUSE Security: Best Practices für die Produktion
TL;DR / Management Summary Ein SLES-Server im Standardzustand ist stabil, aber noch nicht “Hardened”. Für den Enterprise-Betrieb müssen wir das volle Potenzial von SUSE ausschöpfen. Die Top 3 Maßnahmen: 1. AppArmor für alle Netzwerkdienste erzwingen, 2. Sicherheits-Patches (zypper patch) automatisieren und 3. Das YaST Security Center für globale System-Policys nutzen. Dieser Guide liefert die Checkliste für den produktionsreifen SLES-Host.
# 1. Einführung & Architektur
Defense in Depth auf SUSE-Art.
Sicherheit ist kein einmaliges Event, sondern ein Prozess. SUSE bietet hierfür eine mehrschichtige Architektur.
# Die Sicherheits-Pyramide (Mermaid)
graph TD
A[Hardened Application] --> B[AppArmor Profiles]
B --> C[Kernel Hardening: sysctl]
C --> D[System Policy: YaST Security]
D --> E[Patch Management: SCC / RMT]
E --> F[Hardware / Boot: Secure Boot]
# 2. Checkliste: Initiales Hardening
Das Fundament legen.
# 1. Physische & Boot-Sicherheit
- GRUB Passwort: Setzen Sie ein Passwort via
yast2 bootloader, um Manipulationen am Boot-Prompt zu verhindern. - Secure Boot: Stellen Sie sicher, dass Secure Boot im UEFI und in SLES aktiviert ist.
# 2. System-Policys (YaST)
Starten Sie yast2 security und setzen Sie:
File Permissionsauf Secure (Entfernt SUID-Bits von unnötigen Binaries).Password Agingauf 90 Tage.Console Loginfür Root deaktivieren.
# 3. Applikations-Sicherheit (AppArmor)
Isolation erzwingen.
Jeder Dienst, der Ports nach außen öffnet (Apache, Bind, MySQL), muss im Enforce-Modus laufen.
# Prüfung
sudo aa-status | grep "processes are in enforce mode"
Wichtig: Wenn Sie Third-Party Software nutzen, die kein AppArmor-Profil mitbringt, bauen Sie eines via aa-genprof (siehe Artikel 147). Ein ungeschützter Dienst ist das schwächste Glied in der Kette.
# 4. Day-2 Operations: Patching & Auditing
Den Vorsprung halten.
# Strategisches Patching
Nutzen Sie zypper patch statt zypper up für Produktion. Es minimiert das Risiko von Inkompatibilitäten bei Funktions-Updates.
# Automatisierung via Cron/Ansible
0 3 * * * root /usr/bin/zypper patch --no-confirm
# Integritäts-Checks (AIDE)
Installieren Sie AIDE, um Manipulationen am Dateisystem zu erkennen.
sudo zypper install aide
sudo aide --init
# 5. Troubleshooting & “War Stories”
Vermeiden Sie die Stolperfallen.
# Story 1: “Der offene SMT-Mirror”
Symptom: Interne Server laden Updates, aber ein Security-Audit meldet, dass die Kommunikation unverschlüsselt erfolgt. Ursache: Der lokale RMT/SMT Server bietet HTTP statt HTTPS an. Lösung: Erzwingen Sie HTTPS für den Repository-Mirror und verteilen Sie das CA-Zertifikat an alle Clients.
# Story 2: “Das volle Audit-Log”
Symptom: Der Server wird plötzlich extrem langsam beim Datei-Zugriff.
Ursache: Zu viele Audit-Regeln für das Dateisystem (auditd) führen zu massiven I/O-Wartezeiten.
Lösung: Reduzieren Sie die Regeln auf das Wesentliche (z.B. nur /etc und /bin) und nutzen Sie Filter in audit.rules.
# 6. Fazit & Empfehlung
- YaST: Vertrauen Sie YaST. Es ist das beste Werkzeug, um komplexe Security-Settings konsistent zu setzen.
- Modularität: SLES ist modular. Deinstallieren Sie Module, die Sie nicht brauchen (z.B. Desktop-Applications auf einem Server).
- Automatisierung: Nutzen Sie Ansible (Rollen der Community oder SUSE-Manager), um diese Checkliste auf alle Server auszurollen.
# Anhang: Die 5-Minuten-Härtung (CLI)
# 1. Update alles
zypper patch -y
# 2. Aktiviere AppArmor global
systemctl enable --now apparmor
# 3. Restriktive Umask setzen
sed -i 's/UMASK.*/UMASK 027/' /etc/login.defs
# 4. SSH-Login für Root verbieten
sed -i 's/PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
# 5. Firewall-Status prüfen
firewall-cmd --state