; Beispiel-Konfiguration fuer aria_geoblock.py ; ; countries: Komma-getrennte ISO-3166-1-alpha-2-Laendercodes (klein- oder ; 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). ; ; interface: optional, z.B. eth0 -- nur Traffic auf diesem Interface pruefen. ; Leer lassen = alle Interfaces. ; ; log: true/false -- wenn true, wird vor dem DROP ein iptables LOG- ; Eintrag geschrieben (dmesg / /var/log/kern.log), praefixed ; mit log_prefix. Das ist NICHT dasselbe wie log_file (siehe unten)! ; ; ipset_name: Name des ipset-Sets, das alle IP-Bereiche der Laender enthaelt. ; ; log_file: optional Pfad zu einer eigenen Log-Datei des Scripts selbst ; (zusaetzlich zu stderr/systemd-Journal). Bei jedem Lauf wird ; eine Zeile angehaengt, u.a. eine maschinenlesbare ; "RESULT status=OK/ERROR ..."-Zeile. Genau diese wertet das ; mitgelieferte checkmk-Plugin (aria_geoblock_checkmk) aus. ; Leer lassen = keine Datei-Logs. ; Verzeichnis muss existieren und fuer root beschreibbar sein ; (das Installer-Script legt es automatisch an). ; ; ports: optional, Komma-getrennte Liste von Ports/Portbereichen, die ; geblockt werden sollen, z.B. "80,443" oder "8000:9000" (Bereich) ; oder gemischt "22,80,443,8000:8010". ; LEER LASSEN (Standard) = alle Ports/Protokolle werden fuer die ; gelisteten Laender geblockt (klassisches Geoblocking). ; GESETZT = nur diese Ports werden geblockt, der Rest bleibt fuer ; alle Laender offen. Praktisch, um NICHT gleich den ganzen Host ; (inkl. z.B. SSH-Port 22) fuer ein Land zu sperren, sondern nur ; eine einzelne Anwendung/einen Testport (z.B. den mitgelieferten ; Testserver auf 8899) -- schuetzt beim Testen davor, sich selbst ; auszusperren. ; ; protocol: nur relevant wenn "ports" gesetzt ist. tcp (Standard), udp, ; oder "tcp,udp" fuer beides. Fuer die meisten Web-/App-Ports ; reicht "tcp". [geoblock] countries = RU, CN, KP, IR chain = INPUT interface = log = true log_prefix = GEOBLOCK-DROP: ipset_name = geoblock log_file = /var/log/aria_geoblock/aria_geoblock.log ; Beispiel: leer = klassisches Geoblocking (alle Ports). Zum sicheren Testen ; z.B. "8899" setzen (nur der Testserver wird geblockt, SSH bleibt offen). ports = protocol = tcp ; --- Test-Webserver (aria_geoblock_testserver.py) -------------------------- ; Kleiner HTTP-Server ohne Abhaengigkeiten, um Geoblocking-Regeln von aussen ; zu testen (z.B. vom Handy im Mobilfunknetz oder per VPN aus einem anderen ; Land). Siehe README.md Abschnitt "Verbindungstest". ; ; port: TCP-Port, auf dem der Testserver lauscht. ; bind: Bind-Adresse, 0.0.0.0 = alle IPv4-Interfaces (:: fuer IPv6). ; log_file: Pfad zur Request-Log-Datei (Zeit, Client-IP, Pfad, User-Agent ; pro Zeile). Leer lassen = keine Datei-Logs (nur stderr/Journal). [testserver] port = 8899 bind = 0.0.0.0 log_file = /var/log/aria_geoblock/testserver.log