Compliance Skripte: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | =Kleine Compliance-Checks (kopierbar, Bash)= | + | ==Kleine Compliance-Checks (kopierbar, Bash)== |
* Hinweis: Die Skripte sind bewusst klein gehalten und prüfen grundlegende Compliance-Aspekte auf Debian/Ubuntu-ähnlichen Systemen. Anpassungen für andere Distros möglich. Nur in autorisierten Umgebungen ausführen. | * Hinweis: Die Skripte sind bewusst klein gehalten und prüfen grundlegende Compliance-Aspekte auf Debian/Ubuntu-ähnlichen Systemen. Anpassungen für andere Distros möglich. Nur in autorisierten Umgebungen ausführen. | ||
Version vom 17. November 2025, 07:40 Uhr
Kleine Compliance-Checks (kopierbar, Bash)
- Hinweis: Die Skripte sind bewusst klein gehalten und prüfen grundlegende Compliance-Aspekte auf Debian/Ubuntu-ähnlichen Systemen. Anpassungen für andere Distros möglich. Nur in autorisierten Umgebungen ausführen.
check-sshd-config.sh
- Zweck: Prüft wichtige SSHD-Einstellungen (PermitRootLogin, PasswordAuthentication, Protocol).
- Nutzung: ./check-sshd-config.sh /etc/ssh/sshd_config
#!/bin/bash
CONF="${1:-/etc/ssh/sshd_config}"
if [[ ! -r "$CONF" ]]; then echo "Konfig nicht lesbar: $CONF" >&2; exit 2; fi
grep -Ei '^\s*PermitRootLogin' "$CONF" || echo "PermitRootLogin not set (default may allow root)"
grep -Ei '^\s*PasswordAuthentication' "$CONF" || echo "PasswordAuthentication not set"
grep -Ei '^\s*Protocol' "$CONF" || echo "Protocol not set (modern SSH uses Protocol 2)"
echo "Fertig: $CONF geprüft"
check-password-policy.sh
- Zweck: Prüft, ob pam_pwquality/pam_cracklib präsent ist (Basis-Check).
- Nutzung: ./check-password-policy.sh
#!/bin/bash if grep -E 'pam_pwquality|pam_cracklib' /etc/pam.d/common-password >/dev/null 2>&1; then echo "Password policy module vorhanden in /etc/pam.d/common-password" grep -E 'minlen|required|dcredit|ucredit|ocredit|lcredit' /etc/pam.d/common-password || echo "Keine feingranulare Regeln sichtbar" else echo "kein pam_pwquality/pam_cracklib in /etc/pam.d/common-password gefunden" fi
check-auditd-running.sh
- Zweck: Prüft, ob auditd läuft und ob Audit-Log vorhanden ist.
- Nutzung: ./check-auditd-running.sh
#!/bin/bash
if command -v systemctl >/dev/null 2>&1; then
if systemctl is-active --quiet auditd; then
echo "auditd läuft"
else
echo "auditd nicht aktiv"
fi
else
pgrep -x auditd >/dev/null && echo "auditd läuft" || echo "auditd nicht gefunden"
fi
if [[ -f /var/log/audit/audit.log ]]; then
echo "Audit-Log vorhanden: /var/log/audit/audit.log"
else
echo "Kein Audit-Log unter /var/log/audit/audit.log"
fi
check-firewall-basic.sh
- Zweck: Prüft, ob UFW aktiv ist oder nftables Tabellen vorhanden sind.
- Nutzung: ./check-firewall-basic.sh
#!/bin/bash
if command -v ufw >/dev/null 2>&1; then
if ufw status | grep -iq active; then
echo "ufw aktiv"
else
echo "ufw nicht aktiv"
fi
fi
if command -v nft >/dev/null 2>&1; then
if nft list tables 2>/dev/null | grep -q .; then
echo "nftables Tabellen vorhanden"
else
echo "keine nftables Tabellen"
fi
fi
check-unused-services.sh
- Zweck: Listet systemd-Services, die installiert aber disabled sind (Basis-Check für unnötige Dienste).
- Nutzung: ./check-unused-services.sh
#!/bin/bash
if ! command -v systemctl >/dev/null 2>&1; then echo "Kein systemctl vorhanden"; exit 2; fi
echo "Installed services (disabled):"
systemctl list-unit-files --type=service | awk '$2 ~ /disabled|static/ {print $1" "$2}' | sed -n '1,200p'
check-package-updates-apt.sh
- Zweck: Zeigt, ob Updates verfügbar sind (APT-basiert, nur Lesend).
- Nutzung: ./check-package-updates-apt.sh
#!/bin/bash if ! command -v apt-get >/dev/null 2>&1; then echo "Kein apt auf diesem System"; exit 2; fi sudo apt-get update -qq OUT=$(apt list --upgradable 2>/dev/null) if echo "$OUT" | grep -q upgradable; then echo "Updates verfügbar:" echo "$OUT" | sed -n '1,200p' else echo "Keine Updates verfügbar" fi
check-sudoers-no-tty.sh
- Zweck: Prüft, ob sudoers NOPASSWD oder !requiretty enthält.
- Nutzung: ./check-sudoers-no-tty.sh
#!/bin/bash if [[ -r /etc/sudoers ]]; then grep -E 'NOPASSWD|!requiretty' /etc/sudoers && echo "Warnung: NOPASSWD oder !requiretty in /etc/sudoers" || echo "Keine NOPASSWD/!requiretty Einträge in /etc/sudoers" else echo "/etc/sudoers nicht lesbar" fi
Wie verwenden
- chmod +x check-*.sh
- ./check-sshd-config.sh
- Output interpretieren lassen oder als Basis-Checks im Audit nutzen.
Anpassungen
- Sag mir, welche Checks ergänzt werden sollen (Kernel-Params, CIS, Integrity, Disk-Enc usw.).