107 lines
3.2 KiB
Markdown
107 lines
3.2 KiB
Markdown
# Proxyserver: Edge-Proxy & Backend Dokumentation
|
|
|
|
**Stand:** Januar 2026
|
|
**Fokus:** Routed IPv6 Setup & Internes IPv4-VPN/Bridge für isolierte Backends (Root-Server / LXC)
|
|
|
|
## Konzept-Hinweis
|
|
|
|
Dieses Setup ist für Root-Server optimiert, auf denen Proxyserver und die Backends (VMs/LXCs) über interne Bridges (z. B. `vmbr1`) kommunizieren.
|
|
Dies umgeht MTU-Probleme, wie sie bei WireGuard im mobilen Bereich auftreten.
|
|
|
|
---
|
|
|
|
## 1. Netzwerk-Architektur (IPv4-VPN)
|
|
|
|
Für IPv4-only Backends ohne öffentliche IP wird ein isoliertes Segment genutzt:
|
|
|
|
- **Proxyserver (Gateway):** `10.8.1.x`
|
|
- **Clients (Backends):** `10.8.1.y`
|
|
- **Interface:** `vmbr1` (Bridge) oder Tinc-Tunnel
|
|
|
|
Proxyserver übernimmt das NAT (Masquerading), damit Clients Updates ziehen können, und dient als Standard-Gateway für die Backends.
|
|
|
|
---
|
|
|
|
## 2. Proxyserver Setup (Der Proxy-Dienst)
|
|
|
|
Installiere Nginx und ACME.sh auf Proxyserver.
|
|
Die Synchronisation erfolgt über ein zentrales Bash-Skript.
|
|
ACME Zertifikatserneuerung wie gewohnt über crontab
|
|
|
|
### 2.1 Konfigurationsdatei
|
|
|
|
Pfad: `/usr/local/bin/sync-ispconfig-proxy.conf`
|
|
|
|
Sollte als Cronjob laufen um Änderungen vom ISPconfg Master zu übernehmen
|
|
|
|
### 2.2 Server-Liste
|
|
|
|
Pfad: `/usr/local/bin/proxy_based_server.conf`
|
|
|
|
|
|
### 2.3 Das Sync-Skript
|
|
|
|
Pfad: `/usr/local/bin/sync-ispconfig-proxy.sh`
|
|
|
|
### 2.4 Das Cleanup Script
|
|
|
|
Pfad: `/usr/local/bin/sync-ispconfig-cleanup.sh
|
|
|
|
ISPcconfig löscht unabhängig vom Proxyserver auf den clients die apache vhost oder ngingx conf Dateien
|
|
Auf dem Proxyserver müssen die nginx .conf Dateien manuell gelöscht werden.
|
|
Das Script mit Parameter -e führt dies durch.
|
|
Ohne Parameter läuft es im dry-run.
|
|
**Derzeit in der Testphase - deshalb zur Sicherheit manuell mit dry-run ausführen.**
|
|
Verwaiste nginx .conf Dateien beinträchtigen das System nicht.
|
|
|
|
## 3. Client Setup (vServer / Apache)
|
|
|
|
Die Backends müssen den Proxy als vertrauenswürdig einstufen.
|
|
|
|
### 3.1 Remote-IP Konfiguration
|
|
|
|
Pfad: `/etc/apache2/conf-available/remoteip.conf`
|
|
|
|
|
|
```bash
|
|
a2enmod remoteip proxy_http rewrite headers
|
|
a2enconf remoteip
|
|
systemctl restart apache2
|
|
```
|
|
|
|
---
|
|
|
|
## 4. ISPConfig Integration (Apache Direktiven Beispiel Gitea)
|
|
|
|
Eintragen unter **Webseite → Optionen → Apache Direktiven** für den vServer:
|
|
|
|
```apache
|
|
# Gitea / Backend Proxy
|
|
RequestHeader set X-Forwarded-Proto "https"
|
|
ProxyPreserveHost On
|
|
|
|
<Proxy *>
|
|
Order allow,deny
|
|
Allow from all
|
|
</Proxy>
|
|
|
|
# Lokale Weiterleitung an den Dienst-Port (z. B. Gitea)
|
|
ProxyPass / http://[::1]:3000/
|
|
ProxyPassReverse / http://[::1]:3000/
|
|
|
|
# WebSocket Upgrade Support
|
|
RewriteEngine On
|
|
RewriteCond %{HTTP:Upgrade} =websocket [NC]
|
|
RewriteRule /(.*) ws://[::1]:3000/$1 [P,L]
|
|
```
|
|
|
|
**Achtung:**
|
|
Deaktiviere SSL und Let's Encrypt innerhalb von ISPConfig für diese Webseite, da Proxyserver die Zertifikatsverwaltung übernimmt.
|
|
Deaktivere Zertifikatserneuerung auf den Clients
|
|
|
|
Werden doppelte Domains eingetragen um auf weiteren Servern Subdomains zu nutzen, muss
|
|
1. der Weiterleitungspfad /urldummy/ auf den Servern bei denen die Hauptdomin nungenutzt ist lauten
|
|
2. auf dem Server bei dem die Hauptdomain genutzt wird darf der Weiterleitungspfad nicht /urldummy/ lauten
|
|
**nur so wird sichergestellt, dass das sync-ispconfig-proxy.sh script die Zertifikatserstellung für diese Dummy Hauptdomains auslässt**
|
|
|