Die Adresse, auf der Docker Port 3000 veroeffentlicht, ist ueber LERNBAR_ADRESSE in .env einstellbar; Vorgabe bleibt 127.0.0.1. Noetig, wenn der Reverse Proxy - etwa ein Nginx Proxy Manager - auf einem anderen Rechner laeuft. Docker-Ports laufen an ufw vorbei. lernbar-portsperre setzt deshalb in DOCKER-USER eine Regel, die Port 3000 nur fuer den Proxy oeffnet, und laesst sich beliebig oft ausfuehren (in einem Debian-13-Container geprueft). Dazu ein systemd-Dienst, der sie nach Docker setzt. Abschnitt 6b der Betriebsanleitung beschreibt Einrichtung und Proxy-Host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 lines
530 B
Bash
Executable File
11 lines
530 B
Bash
Executable File
#!/bin/sh
|
|
# Port 3000 der Lern-Bar nur für den Reverse Proxy öffnen.
|
|
# Docker-Ports laufen an ufw vorbei, deshalb die Kette DOCKER-USER, die Docker
|
|
# selbst vor seinen eigenen Regeln auswertet und nie überschreibt.
|
|
set -eu
|
|
PROXY="${1:?Aufruf: lernbar-portsperre <Adresse des Reverse Proxy>}"
|
|
REGEL="-p tcp -m conntrack --ctorigdstport 3000 --ctdir ORIGINAL ! -s $PROXY -j DROP"
|
|
iptables -N DOCKER-USER 2>/dev/null || true
|
|
# shellcheck disable=SC2086
|
|
iptables -C DOCKER-USER $REGEL 2>/dev/null || iptables -I DOCKER-USER $REGEL
|