====== 🔀 Nginx Proxy Manager (Reverse Proxy) ======
In diesem Kapitel wird die zentrale Routing- und Proxy-Infrastruktur dokumentiert. Der Nginx Proxy Manager (NPM) fungiert als Gateway, um interne Dienste ohne Port-Angaben über standardisierte Domainnamen (FQDN) erreichbar zu machen [2, 6].
===== 1. Systemarchitektur =====
Der Reverse Proxy läuft als Docker-Container auf einer dedizierten virtuellen Maschine (Debian 13) und bündelt den gesamten eingehenden Web-Traffic [6].
^ Server / Rolle ^ Betriebssystem ^ Plattform ^ Dienst ^
| Reverse Proxy | Debian 13 | Docker | Nginx Proxy Manager |
===== 2. Firewall- & Netzwerk-Konfiguration =====
Um den reibungslosen Datenverkehr und den Zugriff auf das Admin-Dashboard zu gewährleisten, wurden spezifische Ports in der UFW-Firewall freigegeben [3]:
sudo ufw allow 80/tcp # HTTP-Traffic
sudo ufw allow 443/tcp # HTTPS-Traffic
sudo ufw allow 81/tcp # NPM Admin-Dashboard
===== 3. Dienst-Spezifische Konfigurationen =====
Die Weiterleitung wurde für verschiedene Dienste (z. B. Webmin, Zammad, Guacamole) eingerichtet [2, 5, 7]. Dabei mussten dienstspezifische Parameter zwingend beachtet werden:
* **Zammad & Guacamole:** Für diese Dienste wurde die Option **"Websockets Support"** im NPM-Panel aktiviert [2, 5]. Ohne WebSockets brechen Echtzeit-Synchronisationen (Zammad) und Remote-Sitzungen (Guacamole) ab [2, 5].
* **Webmin (Master Node):** Beim Einsatz eines Reverse Proxys für die Server-Verwaltung traten anfänglich SSL-Handshake- und Cookie-Konflikte auf [1, 7].
* **Lösung:** In der Webmin-Konfiguration (''/etc/webmin/miniserv.conf'') muss der Parameter ''trust_real_ip=1'' gesetzt werden [1]. Zudem zeigte sich, dass direkte IP-Zugriffe mit SSL für interne Management-Tools teilweise stabiler sind als komplexe Proxy-over-Proxy-Setups [1].
===== 4. Fehlerbehebung (Troubleshooting) =====
Während der Implementierung und DNS-Verknüpfung traten lehrreiche Fehler auf, die analysiert und gelöst wurden:
* **Fehler 1: DNS-Einträge greifen nicht** [3]
* **Ursache:** Die "Serial"-Nummer im BIND9 Zone-File wurde nach dem Hinzufügen der neuen Proxy-Einträge nicht aktualisiert [3].
* **Lösung:** Die Serial-Nummer wurde manuell erhöht und der DNS-Dienst via service named restart neu geladen, um den Zonentransfer zu erzwingen [2, 3].
* **Fehler 2: Falscher Ausführungskontext (Terminal-Verwechslung)** [3, 4]
* **Ursache:** Eine aktive SSH-Sitzung war noch auf der falschen VM (Zammad) geöffnet, sodass Netzwerk-Tools versehentlich auf dem falschen Host installiert wurden [3].
* **Lösung:** Die Sitzungen wurden überprüft und die aktive SSH-Verbindung wurde auf den korrekten NPM-Host umgestellt, was die Wichtigkeit eines eindeutigen Hostname-Prompts unterstreicht [4].