geoblock: mehrere iptables-Chains unterstuetzen (chain = INPUT, FORWARD)

'chain' akzeptiert jetzt eine komma-getrennte Liste. Noetig, wenn der geschuetzte
Dienst hinter einer Firewall/einem Router liegt (Portweiterleitung/DNAT): solcher
Traffic laeuft durch die FORWARD-Chain und wird von einer reinen INPUT-Regel nie
gesehen. "chain = INPUT, FORWARD" deckt beide Wege ab.

- load_config: cfg["chain"] -> cfg["chains"] (Liste), Default ["INPUT"].
- apply/purge/set_iptables_rules/reassert/status/Watchdog arbeiten ueber alle
  konfigurierten Chains. geoblock_rules_on_top aggregiert (on_top nur, wenn in
  JEDER Chain oben; present, wenn in mindestens einer vorhanden) -- neuer Helper
  _chain_rules_position() prueft je Chain. --status zeigt Position pro Chain.
- Doku: geoblock.ini.example + README-Abschnitt "INPUT vs FORWARD" (inkl.
  DNAT-Diagnose und Endian-Hinweis).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck
2026-07-23 12:02:30 +02:00
co-authored by Claude Opus 4.8
parent 867a8a1c6f
commit da83f351d7
3 changed files with 121 additions and 50 deletions
+7 -2
View File
@@ -4,8 +4,13 @@
; grossgeschrieben, egal), die geblockt werden sollen.
; Liste der Codes: https://www.ipdeny.com/ipblocks/
;
; chain: iptables-Chain, in die die DROP-Regel eingehaengt wird.
; INPUT = Verbindungen ZU diesem Host (Standard-Anwendungsfall).
; chain: iptables-Chain(s), in die die DROP-Regel eingehaengt wird. Eine
; oder komma-getrennt mehrere.
; INPUT = Verbindungen ZU diesem Host (Standard-Anwendungsfall).
; FORWARD = durch diesen Host GEROUTETER Traffic -- noetig, wenn der
; zu schuetzende Dienst hinter einer Firewall/einem Router
; liegt (z.B. Portweiterleitung/DNAT auf einen internen
; Host). Beides zugleich: "chain = INPUT, FORWARD".
;
; interface: optional, z.B. eth0 -- nur Traffic auf diesem Interface pruefen.
; Leer lassen = alle Interfaces.