README.md aktualisiert
This commit is contained in:
81
README.md
81
README.md
@@ -1,12 +1,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
# 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.
|
||||
|
||||
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
|
||||
@@ -20,8 +15,8 @@ Das Tool gleicht den Datenbankbestand mit der tatsächlichen Nginx-Konfiguration
|
||||
* **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.
|
||||
+ `/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.
|
||||
@@ -32,10 +27,9 @@ Das Tool gleicht den Datenbankbestand mit der tatsächlichen Nginx-Konfiguration
|
||||
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` |
|
||||
| `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` |
|
||||
|
||||
@@ -45,11 +39,9 @@ Das Skript kann ohne Parameter zur vollständigen Inventarisierung oder mit Filt
|
||||
* **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` |
|
||||
@@ -57,8 +49,8 @@ Das Skript kann ohne Parameter zur vollständigen Inventarisierung oder mit Filt
|
||||
| `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
|
||||
@@ -79,66 +71,3 @@ Dieses Skript automatisiert die Synchronisation von Web-Domains zwischen einem *
|
||||
|
||||
## Nutzung & Parameter
|
||||
Das Skript kann manuell oder via Cronjob aufgerufen werden:
|
||||
|
||||
```bash
|
||||
./sync-ispconfig-proxy.sh [DOMAIN] [Optionen]
|
||||
```
|
||||
|
||||
### Parameter-Referenz
|
||||
|
||||
| Parameter | Beschreibung | Beispiel |
|
||||
| :--- | :--- | :--- |
|
||||
| `[DOMAIN]` | Beschränkt die Ausführung auf eine spezifische Domain. | `./sync-ispconfig-proxy.sh example.com` |
|
||||
| `test` | **Dry-Run**: Simuliert alle Schritte ohne Nginx-Configs zu schreiben oder Dienste zu laden. | `./sync-ispconfig-proxy.sh test` |
|
||||
| `force` | Ignoriert den Zeitstempel/ID der letzten Änderung und verarbeitet den gesamten Bestand. | `./sync-ispconfig-proxy.sh force` |
|
||||
| `renew` / `repair` | Erzwingt die Neuausstellung aller betroffenen SSL-Zertifikate (acme.sh --force). | `./sync-ispconfig-proxy.sh renew` |
|
||||
| `-debug` | Aktiviert detaillierte Ausgaben (z.B. SQL-Queries und interne Variablen). | `./sync-ispconfig-proxy.sh -debug` |
|
||||
|
||||
### Kombination & Priorität
|
||||
|
||||
Die Parameter können kombiniert werden, um das Verhalten präzise zu steuern. Dabei gilt folgende Priorisierung:
|
||||
|
||||
1. **Sicherheits-Priorität (`test`)**: Der Parameter `test` überschreibt alle schreibenden Aktionen. Auch wenn `force` oder `renew` gesetzt sind, wird im Testmodus nichts am System verändert.
|
||||
2. **Scope-Priorität (`[DOMAIN]` vor `force`)**: Wenn eine spezifische `DOMAIN` angegeben wird, hat diese Vorrang. Der Parameter `force` wird in diesem Fall ignoriert, da das Skript gezielt nur diesen einen Datensatz anspricht.
|
||||
3. **Aktions-Priorität (`renew`)**: Wird `renew` mit `force` kombiniert, werden konsequent für **alle** in ISPConfig aktiven Domains die Zertifikate neu angefordert.
|
||||
|
||||
**Gängige Kombinationen:**
|
||||
|
||||
* `./sync-ispconfig-proxy.sh example.com renew`: Erneuert gezielt nur das Zertifikat für `example.com`.
|
||||
* `./sync-ispconfig-proxy.sh force -debug`: Verarbeitet alle Domains neu und zeigt dabei die SQL-Abfragen zur Fehleranalyse an.
|
||||
* `./sync-ispconfig-proxy.sh renew test`: Simuliert die Erneuerung aller Zertifikate, ohne acme.sh tatsächlich aufzurufen.
|
||||
|
||||
### Kombination und Priorität (sync-ispconfig-proxy.sh)
|
||||
|
||||
| Kombination | Ergebnis |
|
||||
| :--- | :--- |
|
||||
| `domain.de renew` | Verarbeitet **nur** domain.de und erzwingt für diese ein neues Zertifikat. |
|
||||
| `force renew` | Verarbeitet **alle** Domains der Datenbank und erzwingt für alle neue Zertifikate. |
|
||||
| `domain.de force` | Verarbeitet **nur** domain.de. (Der Parameter `force` wird ignoriert). |
|
||||
| `force test` | Simuliert die Verarbeitung **aller** Domains (Dry-Run), ohne Änderungen vorzunehmen. |
|
||||
| `renew test` | Simuliert die Erneuerung **aller** Zertifikate (Dry-Run). |
|
||||
| `domain.de renew test`| Simuliert die Erneuerung **nur** für domain.de (Dry-Run). |
|
||||
|
||||
**Prioritäts-Regel:** 1. `test` (Verhindert jegliche Änderung)
|
||||
2. `[DOMAIN]` (Beschränkt auf ein Ziel, ignoriert globalen `force`)
|
||||
3. `force` (Erfasst alles, falls keine Domain definiert ist)
|
||||
|
||||
# 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.
|
||||
|
||||
Reference in New Issue
Block a user