| name | system-security-audit |
| description | Linux-Sicherheitsaudit: offene Ports, Dienste, Berechtigungen, Firewall, Benutzer, Updates, schnelle Fixes. Mit Dokumentation. |
| version | 1.0.0 |
| author | Yuno |
| license | MIT |
System Security Audit
Führe diesen Audit durch, wenn der Benutzer nach Sicherheit, Absicherung, offenen Ports, oder "was kann man schnell lösen" fragt.
Ablauf
1. Netzwerk & offene Ports
sudo ufw status
ss -tlnp
ss -tlnp | grep -E "0.0.0.0:|:::|:\*"
systemctl is-active sshd
Für jeden Dienst auf 0.0.0.0: prüfen: Braucht der wirklich Netzwerkzugriff? Sonst auf localhost beschränken per UFW oder Config.
2. Berechtigungen
ls -la ~/.gmail-organizer.json
ls -la ~/.hermes/config.yaml
ls -la ~/.ssh/
ls -la ~/.hermes/state.db ~/.hermes/kanban.db
ls -la ~/.hermes/logs/
ls -lad ~/.hermes/state-snapshots/
ls -la ~/.hermes/state-snapshots/ 2>/dev/null | head -5
ls -la ~/.hermes/config.yaml.bak.* 2>/dev/null
find ~ -maxdepth 2 -type f -perm -o+r ! -name "*.py" ! -name "*.md" ! -name "*.txt" 2>/dev/null | head -20
3. Dienste & Autostart
systemctl list-units --type=service --state=running | head -30
for svc in nvidia-powerd gamemoded ollama rygel sshd; do
systemctl is-active "$svc" 2>/dev/null
done
Bei jedem Dienst: Wird er gebraucht? Wenn nein, stop + disable.
4. Benutzer & Zugänge
sudo cat /etc/passwd | grep -E "/home|/bin/bash" | cut -d: -f1,3,7
awk -F: '($2==""){print}' /etc/shadow 2>/dev/null
sudo cat /etc/sudoers 2>/dev/null | grep -i NOPASSWD
sudo cat /etc/sudoers.d/* 2>/dev/null | grep -i NOPASSWD
cat /etc/pam.d/common-password | grep pam_unix
5. Updates
apt list --upgradable 2>/dev/null | grep -c "/"
flatpak update 2>/dev/null | grep -c "Updating\|Installing"
6. Bewertung & Doku
Jeden Fund kategorisieren:
| Farbe | Bedeutung |
|---|
| 🟢 ✅ | Sicher / korrekt |
| 🟡 ⚠️ | Auffällig — Verbesserung möglich |
| 🔴 ❌ | Kritisch — sofort fixen |
Für jeden 🔴/🟡-Fund notieren:
- Was genau ist das Problem
- Welches Risiko besteht
- Wie es zu beheben ist (genauer Befehl)
- Ob der User zustimmen muss
Quick-Fix Cheatsheet
sudo systemctl stop <dienst>
sudo systemctl disable <dienst>
sudo ufw deny <port>/tcp
sudo ufw allow from 127.0.0.1 to any port <port> proto tcp
sudo apt purge openssh-server
chmod 600 ~/.gmail-organizer.json ~/.hermes/config.yaml
chmod 700 ~/.ssh/
chmod 600 ~/.hermes/state.db ~/.hermes/kanban.db ~/.hermes/.hermes_history
chmod 600 ~/.hermes/state.db-wal ~/.hermes/state.db-shm
chmod 600 ~/.hermes/logs/agent.log ~/.hermes/logs/errors.log
chmod 700 ~/.hermes/state-snapshots/
find ~/.hermes/state-snapshots/ -type f -exec chmod 600 {} \;
chmod 600 ~/.hermes/config.yaml.bak.* 2>/dev/null
find ~/.hermes/ -name 'request_dump_*.json' -delete
hermes config set tirith_fail_open false
hermes config set telegram.dm_policy closed
systemctl --user restart hermes-gateway.service
cp ~/.hermes/.env ~/.hermes/.env.pre-$(date +%s)
ss -tlnp | grep 11434
sudo systemctl stop ollama && sudo systemctl disable ollama
sudo snap remove ollama
Dokumentation
Nach dem Audit eine Datei ~/docs/system/security.md schreiben mit:
- Übersicht offene Ports (nach Interface getrennt)
- Berechtigungs-Status
- Dienst-Status-Tabelle
- Quick-Wins (was wurde/wird gefixt)
- Datum
Format siehe ~/docs/system/security.md (Beispiel vom 03.06.2026).
Referenzen
references/audit-example.md — Reales Audit-Beispiel mit Befunden und Quick-Fixes von Basti's Zorin OS