Firewall-Check fuer den Dashboard-Port einbauen
- firewall-check.sh (auch ./setup.sh firewall): prueft Listener, Container- Portweiterleitung (DNAT), ip_forward, firewalld, ufw/ufw-docker, iptables (INPUT, DOCKER-USER), natives nftables, CSF, Shorewall und lokalen HTTPS-Test - Legt fehlende Regeln an (Rueckfrage, --yes ohne, --check nur pruefen); Podman: podman network reload --all bei fehlender Weiterleitung - Erkennt "TCP offen, aber kein HTTPS" (conmon haelt Port nur reserviert) - setup.sh: kein firewall-cmd --reload mehr (loescht ggf. Container-Regeln), up ruft stattdessen den Firewall-Check auf - README: Abschnitt Firewall-Check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
e6aad53fb5
commit
174c10505a
@@ -4,7 +4,7 @@
|
||||
# Compose-Werkzeug (docker compose, docker-compose, podman-compose, podman compose).
|
||||
#
|
||||
# ./setup.sh Erstinstallation (Passwoerter, Zertifikate, SSH-Key, Images)
|
||||
# ./setup.sh up Stack starten (+ Kernel-Parameter, Firewall, Autostart als root)
|
||||
# ./setup.sh up Stack starten (+ Kernel-Parameter, Firewall-Check, Autostart als root)
|
||||
# ./setup.sh down Stack stoppen
|
||||
# ./setup.sh ps | logs [dienst]
|
||||
# ./setup.sh host-script Skript zum Vorbereiten eines Zielhosts ausgeben
|
||||
@@ -16,6 +16,8 @@
|
||||
# ./setup.sh apply hosts.yml uebernehmen (Manager + Collector neu starten)
|
||||
# ./setup.sh passwords Zugangsdaten anzeigen
|
||||
# ./setup.sh info Erkannte Umgebung anzeigen
|
||||
# ./setup.sh firewall Erreichbarkeit des Dashboard-Ports pruefen, fehlende Regeln anlegen
|
||||
# (--check nur pruefen, --yes ohne Rueckfrage, --port N)
|
||||
#
|
||||
# Mit Podman bitte als root ausfuehren (sudo ./setup.sh ...), siehe check_rootless.
|
||||
# Erkennung uebersteuern: CONTAINER_ENGINE=docker|podman ./setup.sh ...
|
||||
@@ -155,17 +157,12 @@ tune_kernel() {
|
||||
fi
|
||||
}
|
||||
|
||||
open_firewall() {
|
||||
local port
|
||||
port=$(env_get DASHBOARD_PORT)
|
||||
command -v firewall-cmd >/dev/null 2>&1 && firewall-cmd --state >/dev/null 2>&1 || return 0
|
||||
if firewall-cmd --query-port="$port/tcp" >/dev/null 2>&1; then return 0; fi
|
||||
if is_root; then
|
||||
info "firewalld: oeffne Port $port/tcp fuer das Dashboard"
|
||||
firewall-cmd -q --permanent --add-port="$port/tcp" && firewall-cmd -q --reload
|
||||
else
|
||||
warn "firewalld aktiv, Port $port/tcp nicht freigegeben: sudo firewall-cmd --permanent --add-port=$port/tcp && sudo firewall-cmd --reload"
|
||||
fi
|
||||
check_firewall() {
|
||||
# Nach dem Start: Erreichbarkeit des Dashboard-Ports pruefen (firewalld, ufw, iptables,
|
||||
# nftables, Container-Portweiterleitung) und als root fehlende Regeln anlegen.
|
||||
# Wichtig: niemals "firewall-cmd --reload" - das loescht die Portregeln von Podman/Docker.
|
||||
if is_root; then ./firewall-check.sh --yes || warn "Firewall-Check meldet Probleme (siehe oben)"
|
||||
else ./firewall-check.sh --check || warn "Firewall-Check: fuer automatische Regeln 'sudo ./setup.sh firewall'"; fi
|
||||
}
|
||||
|
||||
enable_autostart() {
|
||||
@@ -337,7 +334,8 @@ cmd_up() {
|
||||
tune_kernel
|
||||
compose up -d
|
||||
enable_autostart
|
||||
open_firewall
|
||||
sleep 5 # Portweiterleitung der Container steht erst nach dem Start
|
||||
check_firewall
|
||||
info "Gestartet ($ENGINE). Dashboard in 1-3 Minuten: https://$(uname -n):$(env_get DASHBOARD_PORT)"
|
||||
}
|
||||
|
||||
@@ -349,6 +347,7 @@ case "$CMD" in
|
||||
ps) detect_runtime; compose ps ;;
|
||||
logs) shift; detect_runtime; compose logs -f --tail=100 "$@" ;;
|
||||
info) cmd_info ;;
|
||||
firewall) shift; ./firewall-check.sh "$@" ;;
|
||||
host-script) shift; cmd_host_script "$@" ;;
|
||||
keyscan) detect_runtime; compose run --rm --no-deps sshpull.collector keyscan ;;
|
||||
test) detect_runtime; compose run --rm --no-deps sshpull.collector test ;;
|
||||
@@ -357,5 +356,5 @@ case "$CMD" in
|
||||
echo "Dashboard: admin / $(env_get INDEXER_PASSWORD)"
|
||||
echo "Wazuh-API: wazuh-wui / $(env_get API_PASSWORD)"
|
||||
;;
|
||||
*) sed -n '2,23p' "$0"; exit 2 ;;
|
||||
*) sed -n '2,25p' "$0"; exit 2 ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user