Table of Contents
🔀 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 Parametertrust_real_ip=1gesetzt 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].
