Mailserver hinter Nginx Proxy Manager
-
- Beiträge: 62
- Registriert: 23.01.2014 17:52:14
Mailserver hinter Nginx Proxy Manager
Hallo zusammen,
ich betreibe schon länger einen Webserver und Mailserver zusammen auf einem Raspberry Pi. Neuerdings ist jetzt ein richtiger Homeserver eingezogen und ich habe den Nginx Proxy Manager installiert. Der leitet dann die HTTP(S) Anfragen einfach weiter an den Pi. Das funktioniert wunderbar und macht die Konfiguration weiterer Services auf anderen Subdomains sehr einfach, da sich NPM dann um die LetsEncrypt Zertifikate kümmert. Die Dienste werden dann nach und nach vom Pi auf eigene VMs umziehen, was bisher schon gut funktioniert, zumindest für Webservices.
Beim Mailserver ist das allerdings problematisch. Dadurch, dass sich NPM um die Zertifikate kümmert, kann ich auf dem Pi keinen Certbot mehr laufen lassen um dort die Zertifikate zu erneuern. Wie ist denn die allgemeine Vorgehensweise in diesem Fall? Alle 3 Monate die Zertifikate von NPM runterladen und auf den Pi ziehen finde ich nicht so toll. Hätte das gerne automatisiert.
Ich dachte dann, NPM Streams könnte die Lösung sein und vielleicht ähnlich zu den HTTPS Proxy Hosts das Zertifikat präsentieren. Habe das dann ausprobiert, also Port 143 vom Router an NPM und von dort an den Pi weitergeleitet. Das hat leider nichts gebracht, mein Mailclient hat dann trotzdem das abgelaufene Zertifikat vom Pi gesehen. Daher allgemein noch zusätzlich die Frage: Wozu sind diese Streams überhaupt gut? Also was ist der Vorteil gegenüber einfach direkt den Port an den richtigen Endpunkt weiterzuleiten?
ich betreibe schon länger einen Webserver und Mailserver zusammen auf einem Raspberry Pi. Neuerdings ist jetzt ein richtiger Homeserver eingezogen und ich habe den Nginx Proxy Manager installiert. Der leitet dann die HTTP(S) Anfragen einfach weiter an den Pi. Das funktioniert wunderbar und macht die Konfiguration weiterer Services auf anderen Subdomains sehr einfach, da sich NPM dann um die LetsEncrypt Zertifikate kümmert. Die Dienste werden dann nach und nach vom Pi auf eigene VMs umziehen, was bisher schon gut funktioniert, zumindest für Webservices.
Beim Mailserver ist das allerdings problematisch. Dadurch, dass sich NPM um die Zertifikate kümmert, kann ich auf dem Pi keinen Certbot mehr laufen lassen um dort die Zertifikate zu erneuern. Wie ist denn die allgemeine Vorgehensweise in diesem Fall? Alle 3 Monate die Zertifikate von NPM runterladen und auf den Pi ziehen finde ich nicht so toll. Hätte das gerne automatisiert.
Ich dachte dann, NPM Streams könnte die Lösung sein und vielleicht ähnlich zu den HTTPS Proxy Hosts das Zertifikat präsentieren. Habe das dann ausprobiert, also Port 143 vom Router an NPM und von dort an den Pi weitergeleitet. Das hat leider nichts gebracht, mein Mailclient hat dann trotzdem das abgelaufene Zertifikat vom Pi gesehen. Daher allgemein noch zusätzlich die Frage: Wozu sind diese Streams überhaupt gut? Also was ist der Vorteil gegenüber einfach direkt den Port an den richtigen Endpunkt weiterzuleiten?
Re: Mailserver hinter Nginx Proxy Manager
Ich verstehe dein Setup und die Herausforderung, die du mit deinem Mailserver und dem Nginx Proxy Manager (NPM) hast. Lass uns deine Fragen der Reihe nach angehen.
Problem: Zertifikate für den Mailserver automatisch aktualisieren
Wenn du Nginx Proxy Manager (NPM) für deine HTTPS-Services verwendest, übernimmt dieser die Verwaltung der Let's Encrypt-Zertifikate. Dein Mailserver benötigt jedoch ebenfalls gültige TLS-Zertifikate, um eine verschlüsselte Kommunikation zu ermöglichen. Da der Mailserver noch auf dem Raspberry Pi läuft und dieser aktuell nicht auf eigene Zertifikate zugreifen kann, gibt es ein paar Optionen:
Zertifikate von NPM auf den Pi kopieren und automatisieren:
Anstatt die Zertifikate manuell alle 3 Monate herunterzuladen und auf den Raspberry Pi zu kopieren, kannst du ein Skript erstellen, das dies automatisch erledigt. Hier ist ein grober Ansatz:
Richte einen Cron-Job auf deinem Raspberry Pi ein, der regelmäßig ein Skript ausführt, das die Zertifikate von deinem Homeserver auf den Pi kopiert.
Verwende dafür scp (Secure Copy Protocol) oder rsync über SSH, um die Zertifikate zu übertragen.
Das Skript könnte z.B. folgendermaßen aussehen
Dieses Skript sollte regelmäßig (z.B. alle paar Tage) ausgeführt werden, um sicherzustellen, dass die Zertifikate aktuell bleiben.
Problem: Zertifikate für den Mailserver automatisch aktualisieren
Wenn du Nginx Proxy Manager (NPM) für deine HTTPS-Services verwendest, übernimmt dieser die Verwaltung der Let's Encrypt-Zertifikate. Dein Mailserver benötigt jedoch ebenfalls gültige TLS-Zertifikate, um eine verschlüsselte Kommunikation zu ermöglichen. Da der Mailserver noch auf dem Raspberry Pi läuft und dieser aktuell nicht auf eigene Zertifikate zugreifen kann, gibt es ein paar Optionen:
Zertifikate von NPM auf den Pi kopieren und automatisieren:
Anstatt die Zertifikate manuell alle 3 Monate herunterzuladen und auf den Raspberry Pi zu kopieren, kannst du ein Skript erstellen, das dies automatisch erledigt. Hier ist ein grober Ansatz:
Richte einen Cron-Job auf deinem Raspberry Pi ein, der regelmäßig ein Skript ausführt, das die Zertifikate von deinem Homeserver auf den Pi kopiert.
Verwende dafür scp (Secure Copy Protocol) oder rsync über SSH, um die Zertifikate zu übertragen.
Das Skript könnte z.B. folgendermaßen aussehen
Code: Alles auswählen
#!/bin/bash
# Pfade zu den Zertifikaten auf dem Homeserver (NPM)
REMOTE_CERT_PATH="user@homeserver:/pfad/zu/cert.pem"
REMOTE_KEY_PATH="user@homeserver:/pfad/zu/privkey.pem"
# Zielpfad auf dem Raspberry Pi
LOCAL_CERT_PATH="/etc/letsencrypt/live/deine-domain.de/cert.pem"
LOCAL_KEY_PATH="/etc/letsencrypt/live/deine-domain.de/privkey.pem"
# Zertifikate kopieren
scp $REMOTE_CERT_PATH $LOCAL_CERT_PATH
scp $REMOTE_KEY_PATH $LOCAL_KEY_PATH
#Mailserver-Dienst neu starten
systemctl restart dein-mailserver-dienst
Zuletzt geändert von keretyr am 12.09.2024 19:17:40, insgesamt 2-mal geändert.
Re: Mailserver hinter Nginx Proxy Manager
Ich kenne zwar den NPM nicht, aber du könntest für die SSL Verbindung zwischen NPM und RasPi auch einfach auf ein selbstsigniertes Zertifikat ausweichen, d.h. du erstellst auf dem RasPi ein Zertifikat und sagst dem NPM, wenn er sich mit dem RasPi verbindet, dann soll er das selbstsignierte Zertifikat als gültig betrachten.KrawallKurt hat geschrieben:31.08.2024 19:07:55Beim Mailserver ist das allerdings problematisch. Dadurch, dass sich NPM um die Zertifikate kümmert, kann ich auf dem Pi keinen Certbot mehr laufen lassen um dort die Zertifikate zu erneuern.
Re: Mailserver hinter Nginx Proxy Manager
Also ich verwende kein nginx und einen eigenen Mailserver hoste ich auch nicht. Davon rate ich auch ab. Oder hostet du auch WhatsApp bzw. nutzt selbst gehostetes Element / Matrix? Ich rate vom E-Mail-Hosting eher ab.
Du kannst aber auf ngix auch die Zertifikate fürs Mailing verwalten lassen. Die mögen ja auch von Lets Encrypt stammen. Aber mit HTTPS hat das gar nichts zu tun. Schau für den Einstieg hier. Und dann die Anpassungen für Lets Encrypt suchen.
Du kannst aber auf ngix auch die Zertifikate fürs Mailing verwalten lassen. Die mögen ja auch von Lets Encrypt stammen. Aber mit HTTPS hat das gar nichts zu tun. Schau für den Einstieg hier. Und dann die Anpassungen für Lets Encrypt suchen.
Re: Mailserver hinter Nginx Proxy Manager
Gegen einen eigenen Mailserver spricht nix.uname hat geschrieben:11.09.2024 13:48:23Also ich verwende kein nginx und einen eigenen Mailserver hoste ich auch nicht. Davon rate ich auch ab.
Ich kenne durchaus einige Firmen, die einen eigenen Messenger (z.B. Matrix, Jitsi, Nextcloud Talk, o.ä.) betreiben und diesen auch selbst hosten. Was spricht deiner Meinung nach dagegen?
Re: Mailserver hinter Nginx Proxy Manager
Dagegen spricht nur, dass man Dinge die man nicht ändern kann akzeptiert und wo man glaubt Einfluss nehmen zu können, diese mit aller Gewalt umsetzen will.bluestar hat geschrieben:Was spricht deiner Meinung nach dagegen?
WhatsApp ist ein zentraler Dienst von Facebook. Viele Anwender können ohne WhatsApp nicht leben und so wird es akzeptiert, dass alle Daten zentral bei Facebook gespeichert werden. Ältere Dienste wie E-Mail sind dezentral. Niemand würde es akzeptieren wenn alle E-Mails weltweit z. B. durch Google Mail verwaltet würden. Bei E-Mail hat man die Möglichkeit z. b. einen deutschen Provider auszuwählen. Aber da muss man es natürlich selbst hosten. Weil man es kann.
Natürlich gibt es tolle dezentrale Messenger und Videokonferezen wie Element/Matrix, Jitsi, Nextcloud Talk, Big Blue Button usw. Aber am Ende sind es alles Insellösungen. Ich verwende mittlerweile gar keine Messenger mehr. Mir kann man gerne per E-Mail schreiben. Aber selbst hoste ich die E-Mails trotzdem nicht. Ich nutze ja auch ein Smartphone, wo ich im gewissen Maße Google vertraue. Warum nicht einem guten deutschen Mail-Provider, der sich um alles kümmert.
Re: Mailserver hinter Nginx Proxy Manager
Wenn du an der Konfiguration nichts anpassen würdest, dann geb ich dir recht - es wäre unnötiger Verbrauch von Ressourcen. Dass es anders geht und man sich Vorteile verschaffen kann, solltest du auch akzeptieren.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Mailserver hinter Nginx Proxy Manager
Das mit automatisierten kopieren der Zertifikate vom NPM auf den Mailserver sollte kein Problem sein. Die Zertifikate liegen ja vermutlich im Docker-Container vom NPM. Ggf. muss man die Verzeichnisse vom Host-System mounten, falls das noch nicht der Fall sein sollte. Dann kann man darauf problemlos zugreifen.
Ansonsten finde ich den Betrieb von Mailservern via nginx per Reverse Proxy nicht trivial. Da muss dann irgendwie einen Authentifizierungsproxy einrichten. Ich habe damit schon mal etwas rumgespielt. Ich finde das recht kompliziert und sehe auch keinen Vorteil, den man dadurch hätte - bzw. Vorteile eher in sehr großen Installationen, in denen man per Virtual Hosting mehrere Mailserver im Backend anbinden möchte. Ich würde eher dazu raten, die Ports per DNAT auf die Mailserver weiterzuleiten.
Für die Allgemeinheit: NPM, der NGINX Proxy Manager ist ein sehr umfangreicher Docker-Container, der im Wesentlichen eine einfache GUI für den nginx und letsencrypt ist.
Ich selbst habe es 1-2 Mal damit probiert, es aber dann zu Gunsten einfacher und schlanker nginx Docker-Container wieder eingemotttet, weil NPM individuelle Konfigurationen für mich viel schwieriger gemacht hatte. Certbot ist auch kein Hexenwerk. Das beschränkt sich auch auf wenige Befehle, die man initial ausführen muss. Verlängerung findet dann ja automatisch statt.
Ansonsten finde ich den Betrieb von Mailservern via nginx per Reverse Proxy nicht trivial. Da muss dann irgendwie einen Authentifizierungsproxy einrichten. Ich habe damit schon mal etwas rumgespielt. Ich finde das recht kompliziert und sehe auch keinen Vorteil, den man dadurch hätte - bzw. Vorteile eher in sehr großen Installationen, in denen man per Virtual Hosting mehrere Mailserver im Backend anbinden möchte. Ich würde eher dazu raten, die Ports per DNAT auf die Mailserver weiterzuleiten.
Für die Allgemeinheit: NPM, der NGINX Proxy Manager ist ein sehr umfangreicher Docker-Container, der im Wesentlichen eine einfache GUI für den nginx und letsencrypt ist.
Ich selbst habe es 1-2 Mal damit probiert, es aber dann zu Gunsten einfacher und schlanker nginx Docker-Container wieder eingemotttet, weil NPM individuelle Konfigurationen für mich viel schwieriger gemacht hatte. Certbot ist auch kein Hexenwerk. Das beschränkt sich auch auf wenige Befehle, die man initial ausführen muss. Verlängerung findet dann ja automatisch statt.
- cosinus
- Beiträge: 4202
- Registriert: 08.02.2016 13:44:11
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Bremen
Re: Mailserver hinter Nginx Proxy Manager
Das stammt doch garantiert aus der Feder von ChatGPTkeretyr hat geschrieben:11.09.2024 12:35:28Ich verstehe dein Setup und die Herausforderung, die du mit deinem Mailserver und dem Nginx Proxy Manager (NPM) hast. Lass uns deine Fragen der Reihe nach angehen.
-
- Beiträge: 62
- Registriert: 23.01.2014 17:52:14
Re: Mailserver hinter Nginx Proxy Manager
Vielen Dank für die Vorschläge. Ziehen via cronjob wäre auch mein Workaround gewesen, darauf wird es dann rauslaufen.
Kennt sich hier jemand mit Alternativen Reverse Proxies aus, zB. caddy oder traefik? Wäre damit mail proxying einfacher? Ansonsten wird's wohl auf cronjobs zum Austausch der Zertifikate rauslaufen
So mache ich es bei anderen HTTP(S) Diensten. Das funktioniert gut, der NPM zeigt dann den Anfragen einfach seine LetsEncrypt Zertifikate und alle sind glücklich. Leider funktioniert das nur bei HTTP(S) Anfragen, dass nginx ein anderes Zertifikat präsentiert. Bei Weiterleitung von NPM an den Mailserver würde der Client dann wieder das selbst signierte Zertifikat sehen.bluestar hat geschrieben:11.09.2024 12:59:33Ich kenne zwar den NPM nicht, aber du könntest für die SSL Verbindung zwischen NPM und RasPi auch einfach auf ein selbstsigniertes Zertifikat ausweichen, d.h. du erstellst auf dem RasPi ein Zertifikat und sagst dem NPM, wenn er sich mit dem RasPi verbindet, dann soll er das selbstsignierte Zertifikat als gültig betrachten.
Bei mir genau umgekehrt. Ich hatte es früher manuell konfiguriert und schätze jetzt die Einfachheit von NPM. Auch, wenn man mal neue Subdomains anlegt oder ähnliches. Der komplette Container braucht bei mir aktuell 112MB RAM. Bis zu 512MB gestehe ich ihm zu. Das ist bei meinem Setup überhaupt kein Problem. Aber ich verstehe natürlich auch, wenn man Ressourcen sparen will.heisenberg hat geschrieben:11.09.2024 18:53:25Ich selbst habe es 1-2 Mal damit probiert, es aber dann zu Gunsten einfacher und schlanker nginx Docker-Container wieder eingemotttet, weil NPM individuelle Konfigurationen für mich viel schwieriger gemacht hatte. Certbot ist auch kein Hexenwerk. Das beschränkt sich auch auf wenige Befehle, die man initial ausführen muss. Verlängerung findet dann ja automatisch statt.
Ja, das habe ich auch gesehen, hat mich aber auch abgeschreckt.heisenberg hat geschrieben:11.09.2024 18:53:25Ansonsten finde ich den Betrieb von Mailservern via nginx per Reverse Proxy nicht trivial. Da muss dann irgendwie einen Authentifizierungsproxy einrichten
Kennt sich hier jemand mit Alternativen Reverse Proxies aus, zB. caddy oder traefik? Wäre damit mail proxying einfacher? Ansonsten wird's wohl auf cronjobs zum Austausch der Zertifikate rauslaufen