diff --git a/README.md b/README.md index 83b6dc8..86406ea 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,11 @@ sudo ufw status sudo systemctl restart ssh ``` +## Hinweis fuer LXC + +In unprivilegierten LXC-Containern koennen `sysctl`-Keys und `auditd` teilweise nicht gesetzt/gestartet werden. +Das Skript erkennt Container und ueberspringt diese Schritte automatisch, statt mit Fehlern abzubrechen. + ## Wichtige Konfigurationen - `config/fail2ban/jail.local` diff --git a/scripts/bootstrap_ubuntu_lxc_security.sh b/scripts/bootstrap_ubuntu_lxc_security.sh index b3a696f..19f3be5 100755 --- a/scripts/bootstrap_ubuntu_lxc_security.sh +++ b/scripts/bootstrap_ubuntu_lxc_security.sh @@ -42,6 +42,10 @@ log() { echo "[sicherheit-install] $*" } +is_container() { + systemd-detect-virt --quiet --container +} + copy_cfg() { local src="$1" local dst="$2" @@ -72,7 +76,6 @@ ufw default deny incoming || true ufw default allow outgoing || true ufw logging medium || true ufw allow ssh || true -ufw allow OpenSSH || true ufw allow 80/tcp || true ufw allow 443/tcp || true ufw --force enable || true @@ -83,13 +86,21 @@ sshd -t && systemctl restart ssh || true log "7/10 sysctl Hardening setzen" copy_cfg "${CONFIG_DIR}/sysctl/99-sicherheit.conf" "/etc/sysctl.d/99-sicherheit.conf" -sysctl --system || true +if is_container; then + log "Container erkannt: sysctl --system wird uebersprungen (teilweise read-only in LXC)" +else + sysctl --system || true +fi log "8/10 auditd Regeln setzen" copy_cfg "${CONFIG_DIR}/auditd/hardening.rules" "/etc/audit/rules.d/hardening.rules" -augenrules --load || true -systemctl enable auditd || true -systemctl restart auditd || true +if is_container; then + log "Container erkannt: auditd service/augenrules wird uebersprungen" +else + augenrules --load || true + systemctl enable auditd || true + systemctl restart auditd || true +fi log "9/10 Node.js ${NODE_MAJOR} installieren" if ! command -v node >/dev/null 2>&1; then