2026-01-29 09:51:24 +01:00
2026-01-28 12:03:22 +01:00
2026-01-28 11:44:12 +01:00
2026-01-28 11:44:12 +01:00
2026-01-29 09:27:13 +01:00
2026-01-28 11:44:12 +01:00
2026-01-29 09:51:24 +01:00
2026-01-28 11:44:12 +01:00

Dokumentation: ISPConfig & Proxy Inventar (proxy-inventory.sh)

Beschreibung

Dieses Skript dient der automatisierten Statusprüfung aller in ISPConfig (Version 3.3.0p3) verwalteten Web-Domains.

Das Tool gleicht den Datenbankbestand mit der tatsächlichen Nginx-Konfiguration auf dem Proxy-Server ab und validiert den aktuellen DNS-Status.

Kernfunktionen

  • Datenbank-Abgleich: Extrahiert aktive Web-Domains (vhost, alias, subdomain) direkt aus der ISPConfig-Datenbank.
  • Proxy-Validierung: Prüft die Existenz der zugehörigen Nginx-Konfigurationsdateien im definierten Verzeichnis.
  • Routing-Analyse: Liest die Ziel-IP (proxy_pass) aus den generierten Konfigurationen aus.
  • DNS-Live-Check: Verifiziert mittels dig, ob der AAAA-Record der Domain korrekt auf die Infrastruktur zeigt.
  • Automatischer Export: Generiert eine tabellarische Übersicht unter /var/www/html/proxy_inventory.txt.

Voraussetzungen

  • System: Linux-basiert (getestet auf openSUSE Tumbleweed/Hidalgo).
  • Abhängigkeiten: mysql-client, bind9-host (für dig), grep, sed.
  • Konfigurationsdateien:
    • /usr/local/bin/sync-ispconfig-proxy.conf: Enthält Datenbank-Zugangsdaten.
    • /usr/local/bin/proxy_based_server.conf: Enthält die Liste der zu prüfenden Quell-Server.

Installation & Einrichtung

  1. Das Skript proxy-inventory.sh nach /usr/local/bin/ kopieren.
  2. Ausführungsrechte setzen: chmod +x /usr/local/bin/proxy-inventory.sh.
  3. Sicherstellen, dass die Datei /usr/local/bin/sync-ispconfig-proxy.conf lesbar ist und die Variablen DB_HOST, DB_USER, DB_PASS und DB_NAME definiert.

Nutzung

Das Skript kann ohne Parameter zur vollständigen Inventarisierung oder mit Filtern aufgerufen werden:

Parameter Beschreibung Beispiel
DOMAIN Filtert nach Domainname (Wildcards möglich) ./proxy-inventory.sh knut*
ID <n> Filtert nach der ISPConfig Server-ID ./proxy-inventory.sh ID 17
PROXY <status> Filtert nach Proxy-Status (OK / FEHLT) ./proxy-inventory.sh PROXY FEHLT
DNS <status> Filtert nach DNS-Status (OK / N/A) ./proxy-inventory.sh DNS N/A
MODUS <typ> Filtert nach Modus (NORMAL / DUMMY) ./proxy-inventory.sh MODUS DUMMY

Status-Definitionen

  • PROXY OK: Nginx-Konfigurationsdatei ist vorhanden.
  • PROXY FEHLT: Domain in ISPConfig aktiv, aber keine Proxy-Konfiguration gefunden.
  • DNS OK: AAAA-Record der Domain zeigt auf das korrekte Ziel.
  • DNS N/A: Domain löst nicht auf oder zeigt auf eine abweicheichende IPv6.

Parameter-Referenz

Script Parameter Beschreibung Beispiel
proxy-inventory.sh [DOMAIN] Filtert das Inventar nach Domainname; unterstützt Wildcards wie *. ./proxy-inventory.sh "knut*"
ID <n> Filtert die Ergebnisliste nach einer spezifischen ISPConfig Server-ID. ./proxy-inventory.sh ID 17
PROXY <status> Filtert nach dem Proxy-Status: OK (vorhanden) oder FEHLT. ./proxy-inventory.sh PROXY FEHLT
DNS <status> Filtert nach dem DNS-Status: OK oder N/A. ./proxy-inventory.sh DNS N/A
MODUS <typ> Filtert nach dem Modus: NORMAL oder DUMMY. ./proxy-inventory.sh MODUS DUMMY
-h / --help Zeigt die Hilfe-Seite mit Beispielen für das Inventar-Script an. ./proxy-inventory.sh --help

ISPConfig Proxy Sync Script (sync-ispconfig-proxy.sh)

Beschreibung

Dieses Skript automatisiert die Synchronisation von Web-Domains zwischen einem ISPConfig-Master (Version 3.3.0p3) und einem Nginx-Proxy-Server. Es überwacht Änderungen in der ISPConfig-Datenbank und generiert dynamisch Nginx-Vhost-Konfigurationen inklusive SSL-Zertifikatsverwaltung via acme.sh.

Kernfunktionen

  • Safe Lock Mechanism: Verwendet lockfile, um parallele Ausführungen zu verhindern und die Systemstabilität zu gewährleisten.
  • Datalog-basierte Synchronisation: Erkennt Änderungen effizient über die sys_datalog-Tabelle, anstatt bei jedem Durchlauf alle Domains zu verarbeiten.
  • Auto-Subdomain Support: Erkennt automatisch die ISPConfig-Einstellung für www. Subdomains und inkludiert diese in die Nginx-Konfiguration sowie in das SSL-Zertifikat.
  • SSL/TLS Automatisierung: Integriert acme.sh zur automatischen Ausstellung und Erneuerung von Let's Encrypt (ECC) Zertifikaten.
  • Routed-IP Logik: Unterstützt IPv6-Routing und mappt spezifische interne Netze (z.B. ::113) automatisch auf die korrekten Ziel-IPs.
  • Hybrid-Serving: Erkennt lokale Web-Verzeichnisse (/var/www/domain/web) und konfiguriert Nginx so, dass statische Dateien lokal bedient und dynamische Anfragen an den Backend-Server weitergeleitet werden.

Konfiguration & Dateien

  • Konfiguration: /usr/local/bin/sync-ispconfig-proxy.conf.
  • Server-Liste: /usr/local/bin/proxy_based_server.conf (Definiert die zu synchronisierenden Quell-Server).
  • Status-Speicher: /var/local/sync-ispconfig-last-id (Speichert den letzten verarbeiteten Datenbank-Index).

Nutzung & Parameter

Nutzung & Parameter

Das Skript kann manuell oder via Cronjob aufgerufen werden:

./sync-ispconfig-proxy.sh [DOMAIN] [Optionen]

Parameter-Referenz

Script Parameter Beschreibung Beispiel
sync-ispconfig-proxy.sh [DOMAIN] Synchronisiert gezielt nur eine bestimmte Domain oder deren Parent-Domain. ./sync-ispconfig-proxy.sh example.com
test Aktiviert den Test-Modus: Simuliert den Lauf ohne Änderungen an Nginx oder SSL. ./sync-ispconfig-proxy.sh test
force Erzwingt die Verarbeitung aller Domains, unabhängig vom Datalog-Status. ./sync-ispconfig-proxy.sh force
renew / repair Erzwingt eine Neuausstellung der SSL-Zertifikate via acme.sh. ./sync-ispconfig-proxy.sh renew
-debug Aktiviert den Debug-Modus und gibt u.a. die SQL-Queries in der Konsole aus. ./sync-ispconfig-proxy.sh -debug

ISPConfig Proxy Cleanup Script (sync-ispconfig-cleanup.sh)

Beschreibung

Dieses Skript dient der Bereinigung des Proxy-Servers von verwaisten Konfigurationsdateien. Es vergleicht die lokal unter /etc/nginx/conf.d/proxy_generated vorhandenen .conf-Dateien mit den aktiven Domains in der ISPConfig-Datenbank (Version 3.3.0p3). Dateien, die keiner aktiven Domain mehr zugeordnet sind und nicht auf einer geschützten Blocklist stehen, werden entfernt.

Kernfunktionen

  • Verwaisten-Check: Identifiziert lokale Nginx-Konfigurationen, die in ISPConfig gelöscht oder deaktiviert wurden.
  • Blocklist-Schutz: Ignoriert Dateien, die in der proxy_based_server.conf unter der Sektion [blocklist] definiert sind, um manuelle Spezialkonfigurationen zu schützen.
  • Sicherheits-Lock: Verwendet ein Lockfile (/tmp/restart.cleanproxy.lock), um gleichzeitige Ausführungen zu verhindern.
  • Integritätsprüfung: Führt nach Löschvorgängen automatisch einen nginx -t Syntax-Check durch, bevor der Dienst neu geladen wird.

Parameter-Referenz

Parameter Beschreibung Beispiel
-e / --execute Führt den Löschvorgang und den Nginx-Reload tatsächlich aus (Standard ist Dry-Run). ./sync-ispconfig-cleanup.sh --execute
-h / --help Zeigt die Hilfe und Nutzungsinformationen an. ./sync-ispconfig-cleanup.sh --help

Hinweis: Ohne den Parameter -e startet das Skript immer im Dry-Run Modus und zeigt lediglich an, welche Dateien gelöscht würden, ohne physische Änderungen am Dateisystem vorzunehmen.

Description
Automated ISPConfig Edge Proxy ist ein automatisiertes Nginx-Gateway zur zentralen SSL-Terminierung und transparenten Weiterleitung von Web-Traffic an verteilte ISPConfig-Backends. Kurz-Charakteristik Zweck: Zentraler SSL-Endpunkt (Edge) für ISPConfig-gesteuerte vServer. Mechanismus: Ein Bash-Sync-Skript liest die ISPConfig-Master-DB aus und generiert on-the-fly Nginx-Reverse-Proxy-Konfigurationen. SSL-Management: Automatisiertes Zertifikats-Handling via acme.sh (Let's Encrypt) direkt auf dem Edge-Node. Routing: Transparente IPv6-Weitergabe an Apache-Backends, wobei die Konfigurationshoheit beim ISPConfig-Panel bleibt. Tech-Stack Nginx | Bash | MySQL/MariaDB | ISPConfig 3.x | acme.sh
Readme 74 KiB
Languages
Shell 100%