Lynis Security Audit Linux Server
Lynis Security Audit – Linux Server automatisch auditieren
Lynis ist ein umfassendes Open-Source Security Audit Tool, das Linux- und Unix-Systeme automatisiert analysiert. Es prüft hunderte von Sicherheitsaspekten, bietet hilfreiche Empfehlungen und generiert einen Hardening-Index, um die Sicherheitsposition Ihres Servers zu bewerten und zu verbessern.
Was ist Lynis?
Lynis wurde entwickelt, um Systemadministratoren und Security-Profis dabei zu helfen, ihre Systeme schnell und gründlich zu auditieren. Das Tool ist modular aufgebaut und prüft verschiedene Bereiche wie Authentifizierung, Netzwerk-Konfiguration, Dateisystem-Sicherheit, Kernel-Einstellungen und installierte Software. Im Gegensatz zu vielen anderen Tools ist Lynis völlig transparent – Sie können den gesamten Quellcode einsehen und verstehen, was das Tool tut.
Lynis wurde von Cisofy entwickelt und ist unter der GPL-Lizenz verfügbar, was bedeutet, dass es kostenlos für kommerzielle und private Nutzung verfügbar ist.
Installation von Lynis
Auf Ubuntu und Debian
sudo apt update sudo apt install lynis
Auf CentOS und RHEL
sudo yum install lynis
Oder von der Website herunterladen
cd /tmp wget https://github.com/CISOfy/lynis/archive/master.zip unzip master.zip cd lynis-master ./lynis audit system
Version überprüfen
lynis --version
Ihr erstes Audit durchführen
Basis-Audit starten
Das einfachste Audit durchführen Sie mit:
sudo lynis audit system
Das Tool startet eine umfassende Überprüfung Ihres Systems. Die Ausgabe wird in Echtzeit in Ihrem Terminal angezeigt. Dies kann je nach Systemgröße 5-15 Minuten dauern.
Audit ohne root-Rechte (begrenzt)
lynis audit system --quick
Für ein schnelleres Audit mit weniger detaillierten Ergebnissen.
Audit im Hintergrund mit Logging
sudo lynis audit system --quick --quiet > /tmp/lynis-audit.log 2>&1 &
Die Lynis Audit-Ausgabe verstehen
Lynis kategorisiert seine Ergebnisse in drei Sicherheitsstufen:
| Status | Bedeutung | Aktion erforderlich |
|---|---|---|
| Warnings | Konfigurationsprobleme, die ein Sicherheitsrisiko darstellen | Sollten überprüft und wenn möglich behoben werden |
| Suggestions | Empfohlene Verbesserungen für bessere Sicherheit | Sollten berücksichtigt werden, sind aber nicht kritisch |
| Information | Informative Meldungen über erkannte Einstellungen | Keine sofortige Aktion erforderlich |
Der Hardening Index
Am Ende des Audits zeigt Lynis einen "Hardening Index" Score, der auf einer Skala von 0-100 liegt. Dieser Index gibt an, wie sicher Ihr System im Vergleich zu Best Practices konfiguriert ist.
Lynis 3.0.8 Copyright 2007-2023, CISOfy [+] System Tools Version of Lynis: 3.0.8 Version of Linux: 5.15.0 Kernel version: 5.15.0-43-generic CPU name: Intel(R) Core(TM) i7-8550U Lynis finished with result: warnings found (see details above) Report: Hardening Index: [73 / 100] Warning(s): 6 Suggestion(s): 12 Info(s): 35
Auditierte Kategorien
Lynis prüft eine Vielzahl von Sicherheitsaspekten:
Authentifizierung und Zugriffskontrolle
- Benutzerkonten und Gruppen
- Password Policy und SSH-Konfiguration
- Sudo-Konfiguration
- Zwei-Faktor-Authentifizierung
Netzwerk-Sicherheit
- Firewall-Konfiguration (iptables, UFW)
- Offene Ports und Services
- Netzwerk-Parameter und Kernel-Einstellungen
- IPv6-Konfiguration
Speicher und Dateisystem
- Dateisystem-Berechtigungen
- Partitionierungsschema
- Festplattenverschlüsselung (LUKS)
- Temp-Verzeichnis-Mounting
Kernel und Betriebssystem
- Kernel-Version und Updates
- SELinux oder AppArmor Status
- Audit-Daemon (auditd) Konfiguration
- Kernel-Module
Software und Pakete
- Installierte Software-Versionen
- Sicherheitsupdates verfügbar
- Deprecated Software
- Lizenzkonformität
Häufige Lynis-Warnungen und Lösungen
1. Kernel sysctl-Parameter hardening
Warning: Kernel parameters should be hardened
Lösung – Sysctl-Datei mit Hardening-Parametern erstellen:
sudo tee -a /etc/sysctl.d/99-hardening.conf << EOF # IP Forwarding deaktivieren net.ipv4.ip_forward = 0 net.ipv6.conf.all.forwarding = 0 # Reverse Path Filtering aktivieren net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # ICMP redirects deaktivieren net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 # SYN flood protection aktivieren net.ipv4.tcp_syncookies = 1 # TCP Timestamp deaktivieren (optional) net.ipv4.tcp_timestamps = 0 EOF sudo sysctl -p /etc/sysctl.d/99-hardening.conf
2. Dateisystem-Berechtigungen
Warning: World writable /tmp directory
Lösung – /tmp mit sticky bit mounten:
sudo mount -o remount,noexec,nodev,nosuid /tmp sudo mount -o remount,noexec,nodev,nosuid /var/tmp sudo mount -o remount,noexec,nodev,nosuid /dev/shm
Um diese Änderungen persistent zu speichern, bearbeiten Sie /etc/fstab:
tmpfs /tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime,size=2G 0 0 tmpfs /var/tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime,size=2G 0 0
3. SSH-Konfiguration Hardening
Warning: SSH allows root login
Lösung – SSH-Konfiguration anpassen:
sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config sudo sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config sudo sed -i 's/^#PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config sudo systemctl restart ssh
4. Password Policy
Warning: No password quality requirements found
Lösung – PAM Password Quality Module installieren:
sudo apt install libpam-pwquality sudo sed -i 's/pam_unix.so.*/pam_unix.so yescrypt rounds=5000/' /etc/pam.d/common-password
5. Unattended Updates aktivieren
Suggestion: Unattended Upgrades configured
Lösung:
sudo apt install unattended-upgrades apt-listchanges sudo dpkg-reconfigure unattended-upgrades sudo systemctl restart unattended-upgrades
Regelmäßige Audits mit Cron automatisieren
Wöchentliches Audit mit E-Mail-Benachrichtigung
sudo crontab -e
Fügen Sie diese Zeile hinzu:
# Lynis Audit jeden Sonntag um 02:00 Uhr 0 2 * * 0 /usr/bin/lynis audit system --quiet > /var/log/lynis-weekly.log 2>&1
Audit-Berichte in einem Log-Verzeichnis speichern
sudo mkdir -p /var/log/lynis sudo chown root:root /var/log/lynis sudo chmod 700 /var/log/lynis
Cron-Job:
0 3 * * 1 /usr/bin/lynis audit system --quiet --log-file /var/log/lynis/audit-$(date +\%Y\%m\%d).log
Custom Lynis Profile erstellen
Sie können Lynis-Profile anpassen, um spezifische Szenarien zu adressieren:
sudo cp /etc/lynis/default.prf /etc/lynis/custom.prf
Beispiel-Anpassungen in /etc/lynis/custom.prf:
# Spezifische Tests aktivieren/deaktivieren skip-test=AUTH-9328 skip-test=NETW-3028 # Toleranzen setzen logfile=/var/log/lynis-audit.log quiet=yes upload-data=no
Das Custom-Profil dann nutzen:
sudo lynis audit system --profile /etc/lynis/custom.prf
Audit-Scores vergleichen
Um den Fortschritt beim Hardening zu verfolgen, speichern Sie Ihre Audit-Ergebnisse:
sudo lynis audit system --log-file /tmp/audit-$(date +%Y-%m-%d).log
Extrahieren Sie den Hardening Index:
grep "Hardening Index" /tmp/audit-*.log
Dies erzeugt eine Zeitreihe Ihrer Sicherheitsbewertung.
Lynis Enterprise vs. Community
Lynis ist kostenlos verfügbar, aber es gibt auch eine kommerzielle Enterprise-Version mit zusätzlichen Funktionen:
| Feature | Community | Enterprise |
|---|---|---|
| Core Audits | ✓ | ✓ |
| Compliance Checks | ✗ | ✓ (CIS, PCI-DSS, etc.) |
| Dashboard | ✗ | ✓ |
| Zentrales Reporting | ✗ | ✓ |
| API | ✗ | ✓ |
| Support | Community | Professionell |
Integration mit Monitoring-Systemen
Lynis mit Nagios/Icinga integrieren
#!/bin/bash
# /usr/local/nagios/libexec/check_lynis.sh
INDEX=$(sudo lynis audit system --quiet | grep "Hardening Index" | awk '{print $NF}')
if [ "$INDEX" -ge 80 ]; then
echo "OK - Hardening Index: $INDEX"
exit 0
elif [ "$INDEX" -ge 60 ]; then
echo "WARNING - Hardening Index: $INDEX"
exit 1
else
echo "CRITICAL - Hardening Index: $INDEX"
exit 2
fi
Lynis mit Prometheus auslesen
Lynis kann JSON-Output generieren für Integration mit modernen Monitoring-Tools:
sudo lynis audit system --quiet --json > /tmp/lynis-results.json
Beispiel-Audit-Ausgabe interpretieren
Ein typisches Audit erzeugt folgende Struktur:
[AUTH-9286] SSH Keys Result: Found [AUTH-9328] SSH Allow/Deny Users/Groups Result: Specific users/groups allowed [ENCR-8303] Checking Grub password Result: Enabled [FILE-6310] Checking /root/.ssh directory Result: Not accessible for other users [NETW-3004] Checking for source IP spoofing protection Result: Enabled (reverse-path filter) [KRNL-5830] Checking Active Linux Security Modules Result: AppArmor active
Zusammenfassung
Lynis bietet einen umfassenden, automatisierten Weg, um Ihre Linux-Systeme sicherheitsmäßig zu bewerten und zu verbessern. Durch regelmäßige Audits, systematisches Bearbeiten der Warnungen und Verfolgung des Hardening Index können Sie eine robuste Sicherheitsposition aufbauen und langfristig aufrechterhalten.