So überprüfst du deinen Linux-Server auf Schwachstellen und Fehlkonfigurationen
Ein Linux-Server gilt grundsätzlich als stabil und sicher – vorausgesetzt, er wird regelmäßig gepflegt und überprüft. Doch selbst ein sorgfältig eingerichteter Server kann im Laufe der Zeit Schwachstellen entwickeln. Neue Benutzerkonten, geänderte Firewall-Regeln, veraltete Software oder falsch gesetzte Dateiberechtigungen erhöhen das Risiko von Sicherheitsvorfällen.
Ein regelmäßiger Sicherheitscheck hilft dabei, potenzielle Schwachstellen frühzeitig zu erkennen und zu beheben. Dabei geht es nicht nur um installierte Sicherheitsupdates, sondern um eine ganzheitliche Überprüfung des Systems.
In diesem Artikel zeigen wir Schritt für Schritt, welche Bereiche du kontrollieren solltest und mit welchen Werkzeugen sich die Sicherheit deines Linux-Servers bewerten lässt.
Warum ein Sicherheitscheck wichtig ist
Auch ein Server, der heute sicher konfiguriert ist, bleibt nicht dauerhaft sicher.
Typische Ursachen für neue Risiken:
- neu entdeckte Sicherheitslücken
- veraltete Software
- falsch konfigurierte Dienste
- unnötig geöffnete Netzwerkports
- schwache Passwörter
- vergessene Benutzerkonten
- unzureichend geschützte SSH-Zugänge
Ein regelmäßiger Sicherheitscheck reduziert diese Risiken erheblich.
1. System aktualisieren
Der erste Schritt besteht darin, den aktuellen Patchstand zu prüfen.
Paketlisten aktualisieren:
sudo apt update
Installierbare Updates anzeigen:
apt list --upgradable
Alle Updates installieren:
sudo apt full-upgrade
Nicht mehr benötigte Pakete entfernen:
sudo apt autoremove --purge
2. Kernel-Version prüfen
Die installierte Kernel-Version lässt sich mit folgendem Befehl anzeigen:
uname -r
Nach Kernel-Updates sollte geprüft werden, ob ein Neustart erforderlich ist.
3. Betriebssystem identifizieren
Zur Kontrolle der Distribution:
cat /etc/os-release
4. Offene Netzwerkports überprüfen
Alle erreichbaren Dienste anzeigen:
ss -tulpen
Alternativ:
sudo lsof -i
Prüfe insbesondere:
- Welche Dienste lauschen?
- Werden wirklich alle benötigt?
- Sind Dienste versehentlich öffentlich erreichbar?
5. Firewall kontrollieren
Bei UFW:
sudo ufw status verbose
Bei nftables:
sudo nft list ruleset
Überprüfe:
- Standardrichtlinien
- erlaubte Ports
- unnötige Freigaben
- Logging
6. SSH absichern
Die SSH-Konfiguration befindet sich unter:
/etc/ssh/sshd_config
Wichtige Einstellungen:
PermitRootLogin noPubkeyAuthentication yesMaxAuthTriesAllowUsersProtocol 2
Konfiguration testen:
sudo sshd -t
7. Benutzerkonten kontrollieren
Alle Benutzer anzeigen:
cut -d: -f1 /etc/passwd
Administratorrechte prüfen:
getent group sudo
Kontrolliere:
- unbekannte Benutzer
- veraltete Konten
- nicht mehr benötigte Administratoren
8. Passwortqualität prüfen
Installierte Passwortregeln:
grep pam_pwquality /etc/pam.d/common-password
Empfehlungen:
- mindestens 14 Zeichen
- Groß- und Kleinbuchstaben
- Zahlen
- Sonderzeichen
- keine Wörterbuchbegriffe
9. Laufende Dienste überprüfen
Alle aktiven Dienste:
systemctl list-units --type=service --state=running
Nicht benötigte Dienste deaktivieren:
sudo systemctl disable --now dienstname
10. Dateiberechtigungen kontrollieren
Besonders kritisch sind:
- Konfigurationsdateien
- SSH-Schlüssel
- Backup-Verzeichnisse
- Webanwendungen
Berechtigungen prüfen:
find /etc -type f -perm -002
Dadurch werden weltweit beschreibbare Dateien gefunden.
11. Festplattenbelegung prüfen
df -h
Volle Partitionen können Dienste beeinträchtigen und Logdateien verhindern.
12. Speicherverbrauch überwachen
free -h
Alternativ:
vmstat
13. Prozesse analysieren
Aktive Prozesse anzeigen:
top
oder komfortabler:
htop
Achte auf:
- unbekannte Prozesse
- hohe CPU-Last
- ungewöhnlichen Speicherverbrauch
14. Journal analysieren
Aktuelle Fehlermeldungen:
journalctl -p err
SSH-Protokolle:
journalctl -u ssh
Kernel-Meldungen:
journalctl -k
15. Fail2Ban prüfen
Status:
sudo fail2ban-client status
Jails anzeigen:
sudo fail2ban-client status sshd
16. AppArmor kontrollieren
Status:
sudo aa-status
Prüfen:
- aktive Profile
- deaktivierte Profile
- Beschwerden (complain mode)
17. Automatische Updates
Status:
systemctl status unattended-upgrades
18. Dateiintegrität überwachen
Für produktive Systeme empfiehlt sich AIDE.
Installation:
sudo apt install aide
Datenbank erzeugen:
sudo aideinit
Integritätsprüfung:
sudo aide --check
19. Rootkits erkennen
Mit rkhunter:
Installation:
sudo apt install rkhunter
Datenbank aktualisieren:
sudo rkhunter --update
Prüfung starten:
sudo rkhunter --check
Alternativ eignet sich auch chkrootkit.
20. Sicherheitsaudit mit Lynis
Eines der bekanntesten Werkzeuge für Linux-Sicherheitsanalysen ist Lynis.
Installation:
sudo apt install lynis
Audit starten:
sudo lynis audit system
Lynis überprüft unter anderem:
- Kernel
- Benutzerkonten
- SSH
- Firewall
- Dateirechte
- Dienste
- Softwareversionen
- Boot-Konfiguration
- Passwortregeln
- Logging
Am Ende erhältst du einen Sicherheitsindex sowie konkrete Verbesserungsvorschläge.
Zusätzliche Werkzeuge
Je nach Einsatzgebiet können folgende Programme sinnvoll sein:
- ClamAV – Malware-Scanner
- CrowdSec – Angriffserkennung und automatisches Blockieren
- auditd – Sicherheitsprotokollierung
- OpenSCAP – Compliance-Scans
- Suricata – Netzwerk-IDS/IPS
- Wazuh – Host-basierte Sicherheitsüberwachung
- Uptime Kuma – Verfügbarkeitsmonitoring
Checkliste für den Sicherheitscheck
- System vollständig aktualisiert
- Kernel aktuell
- Firewall überprüft
- SSH-Konfiguration kontrolliert
- Offene Ports geprüft
- Benutzerkonten überprüft
- Administratorrechte kontrolliert
- Passwortregeln geprüft
- Laufende Dienste analysiert
- Dateiberechtigungen kontrolliert
- Festplattenbelegung geprüft
- Speicherverbrauch kontrolliert
- Prozesse analysiert
- Journal ausgewertet
- Fail2Ban geprüft
- AppArmor kontrolliert
- Automatische Updates aktiv
- AIDE ausgeführt
- Rootkit-Scan durchgeführt
- Lynis-Audit abgeschlossen
Best Practices
Für einen dauerhaft sicheren Linux-Server empfehlen sich folgende Maßnahmen:
- Sicherheitsupdates zeitnah installieren.
- Nur benötigte Dienste aktivieren.
- SSH bevorzugt mit Public Keys absichern.
- Firewall standardmäßig restriktiv konfigurieren.
- Administratorrechte regelmäßig überprüfen.
- Logdateien automatisiert auswerten.
- Sicherheitsprüfungen dokumentieren.
- Backups regelmäßig testen.
- Integritätsprüfungen automatisieren.
- Sicherheitschecks in festen Intervallen durchführen.
Ein sicherer Linux-Server entsteht nicht allein durch eine sorgfältige Erstinstallation, sondern durch regelmäßige Überprüfungen und kontinuierliche Pflege. Ein strukturierter Sicherheitscheck hilft dabei, Schwachstellen frühzeitig zu erkennen, Fehlkonfigurationen zu beheben und die Angriffsfläche des Systems zu minimieren.
Werkzeuge wie Lynis, AIDE, rkhunter, Fail2Ban und AppArmor ergänzen die klassischen Administrationsaufgaben und liefern wertvolle Hinweise auf potenzielle Risiken. In Kombination mit regelmäßigen Updates, einer restriktiven Firewall und einer abgesicherten SSH-Konfiguration bilden sie die Grundlage für einen stabilen und sicheren Linux-Server – unabhängig davon, ob dieser als Webserver, Datenbankserver oder Self-Hosting-Plattform eingesetzt wird.