2026-02-25 17:49:17 +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-02-25 17:42:24 +01:00
2026-01-28 11:44:12 +01:00
2026-02-25 17:49:17 +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 Debian 12, Proxmox Hostserver mit LCX und VM als Client. Proxysever VM).
  • 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

| Parameter | Beschreibung | Beispiel | | [DOMAIN] | Filtert das Inventar nach Domainname (unterstützt Wildcards wie *). | ./proxy-inventory.sh "suchwort*" | | 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

Das Skript kann manuell oder via Cronjob aufgerufen werden:

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 94 KiB
Languages
Shell 100%