Discourse in privatem VPN nutzen: Wie sieht es mit E-Mails aus?

Hallo!

Ich möchte Discourse in einer speziellen Umgebung einsetzen: Der Webserver ist nur für eine begrenzte Anzahl privat bekannter Benutzer innerhalb eines VPNs erreichbar. Die Server-IP wird etwa 10.0.0.1 sein, sodass es offensichtlich ist, dass ich keine gültige öffentliche Domain dafür verwenden kann.

Ich habe gelesen, dass eine korrekte Einrichtung der E-Mail-Übertragung dringend empfohlen wird. Außerdem habe ich gelesen, dass man die Erstellung des Admin-Kontos zumindest mit ein paar Tricks ohne E-Mail abschließen kann.

Ich frage mich nun, was der beste Weg ist:

a) Discourse komplett ohne E-Mail einrichten. Wird das funktionieren? Ich vermute, ich muss zumindest einige manuelle Schritte nach einer etwas unklaren Anleitung durchführen, um jedes Konto zu aktivieren, aber das ist für die begrenzte Anzahl erwarteter Benutzer in Ordnung. Würde das funktionieren? Welche Einschränkungen hätte ich, wenn die E-Mail-Übertragung nicht funktioniert? Natürlich kann ich keine E-Mail-Benachrichtigungen versenden (für mich ein eher kleiner Nachteil) – ist das alles?

b) Obwohl der Server eine private IP-Adresse hat, könnte ich eventuell eine öffentliche Adresse nur für E-Mails haben. Ich erwarte, dass alles so gut wie möglich für eine einfache Einrichtung optimiert ist. Wenn ich also einige Installations-Anleitungen befolge, würde ich die Serveradresse nur einmal eingeben, die dann wahrscheinlich sowohl für HTTP-Weiterleitungen als auch für SMTP verwendet wird. Ist es einfach, dies zu unterscheiden? Kann ich einen Server mit einer privaten IP-Adresse und einer abweichenden Domain, die nur für E-Mails genutzt wird, einfach einrichten?

Ich sollte erwähnen, dass ich noch keine Erfahrung mit Discourse habe. Ich bin bereit, bei konkreten Problemen selbstständig nach Lösungen zu suchen. Ich sehe jedoch eine grundlegende Entscheidung, welchen Weg ich gehen soll (a oder b), und es wäre toll, einige Ratschläge zu erhalten, um zu vermeiden, zunächst den falschen Weg einzuschlagen.

Vielen Dank!

Sie benötigen eine Domain-Adresse. Discourse kann nicht auf einer IP-Nummer ausgeführt werden.

Kann der Server auf das Internet zugreifen? Die Erstellung von Discourse ohne Internetzugang ist … schwierig.

Wenn der Server auf das Internet zugreifen kann, ist die Fähigkeit, E-Mails zu senden, kein Problem.

Erstellen Sie es auf einer öffentlichen Verbindung, fügen Sie einen DNS-Eintrag in Ihrem VPN zur privaten IP-Adresse hinzu und schalten Sie dann den öffentlichen Zugriff ab.

Verwenden Sie kein Lets Encrypt, da Zertifikatsupdates fehlschlagen werden.

Sie können es nicht einfach aktualisieren, aber wenn Sie es isolieren, war Ihnen das wahrscheinlich bereits bewusst.

E-Mail ist für Discourse von zentraler Bedeutung; ohne sie funktionieren viele Dinge nicht.

Danke, dass du versucht hast zu helfen. Ich muss wohl etwas genauer werden.

Zuerst sollte ich erklären, welcher Teil mir gut vertraut ist und welcher nicht ;). Den Low-Level-Bereich verstehe ich ziemlich gut: IP-Adressen, TCP usw. Aber ich habe keine Erfahrung mit den Dingen, die eine komplexe Webanwendung erledigt. Auch bei E-Mails: Wie wird ein E-Mail-Absender authentifiziert? Wie wird überprüft, dass er keinen unerlaubten Spam versendet? (Ich erwarte von euch nicht, dass ihr mir das alles erklärt, sondern nur, dass ihr meine Fragen klärt…)

Ich habe hier keine vollständige Firmen-VPN-Infrastruktur. Alles, was ich derzeit habe, ist ein privates VPN-Subnetz und Regeln auf IP-Ebene.

Die Einrichtung sieht so aus: Der Server hat eine öffentlich erreichbare Domain, aber alle Ports sind gesperrt, außer dem VPN-Eingangspunkt. Clients, die sich mit dem VPN verbinden, erhalten eine Adresse im Bereich 10.0.x.x. Der Server ist dann unter 10.0.0.1:80 erreichbar.

Mein Verständnis (und ich vermute, ich liege hier falsch) ist, dass der Server erwartet, selbst unter seiner Domain erreichbar zu sein.

Nehmen wir an, ich habe die Domain xyz.com, die auf die öffentliche IP 8.7.6.5 auflöst. Clients verwenden diese Domain/IP nur für den Tunnel. Sobald der Tunnel eingerichtet ist, verbinden sich ihre Browser mit 10.0.0.1.

Wie bereits gesagt, habe ich keine Erfahrung mit Discourse. Was ich erwarte, dass Discourse für seine eigene Domain verwendet, sind Umleitungsaktionen. Zum Beispiel das Weiterleiten neuer Clients, die 10.0.0.1 öffnen, zu 10.0.0.1/login.php (oder Ähnliches, nur als Beispiel). Wenn Discourse sie stattdessen zu .xyz Domain Names | Join Generation XYZ weiterleiten würde, wären sie verloren, da der Server von außerhalb des VPNs nicht erreichbar ist. Dies ist die Art von erwartetem Problem, für das ich eine interne Adresse konfigurieren möchte.

Was E-Mails betrifft, muss ich externe Mailserver kontaktieren. Das öffentliche Internet ist jederzeit erreichbar! Ich weiß jedoch nicht viel über dieses Thema. Ich gehe nur davon aus, dass die Verbindung zu einem öffentlichen Mailserver mit „Hey, ich bin 10.0.0.1, bitte sende einige Mails für mich

Das hängt vom E-Mail-Server ab. Nehmen wir an, du verwendest einen E-Mail-Dienst wie MailGun, SendGrid usw. Diese authentifizieren sich in der Regel über eine API, eine URL sowie Benutzername und Passwort.

Da der Server in diesem Fall auf externe IPs zugreifen kann (nur Filterung für eingehende Verbindungen), solltest du keine Probleme haben, eine Verbindung zum E-Mail-Dienst herzustellen.

Besonders dann, wenn die Domain auf die korrekte IP auflöst.

Du müsstest die Ports für die Installation sogar nicht einmal öffnen. Denn du kannst über das VPN auf die Domain example.com zugreifen, wenn die Domain beim Nutzen des VPN-Tunnels auf die private IP zeigt.

Ich bin mir nicht sicher, ob Discourse nur relative URLs verwendet – fast sicher wird es das nicht tun. Du kannst jedoch die DNS-Einträge der Domain so ändern, dass du zwei A-Einträge hast: Der erste zeigt auf die Adresse 10.0.0.1, der zweite auf die öffentliche IP 8.7.6.5. Das kann bei der Auflösung der Adressen, beim Caching und ähnlichem manchmal etwas knifflig sein, aber du könntest es versuchen.

Sie können xyz.com auf 10.0.0.1 auflösen lassen.

Wenn der Server das Internet erreichen kann, besteht das einzige Problem darin, dass Sie kein Let’s Encrypt HTTPS-Zertifikat erstellen können.

Hier ist eine Frage an dich: Was erreicht dein VPN, was SSL nicht könnte?

Eine nur auf Einladung zugängliche Discourse-Instanz mit SSL bietet bereits Authentifizierung und Verschlüsselung. Was bringt ein VPN zusätzlich?

Ich habe andere Dienste laufen, die geschützt werden müssen. Und die Idee, nur einen nicht typischen Port geöffnet zu haben, gefällt mir gut.

Aber du hast recht: Ich sollte erwägen, diese Anforderung zu lockern und Discourse mit SSL auf der öffentlichen Schnittstelle laufen zu lassen.

Danke an euch alle. Ich denke, ich habe meine Angelegenheiten geklärt:

  • Für einen Webserver, der innerhalb des VPNs läuft, muss der VPN-Server auch als DNS fungieren. Das interne DNS sollte dieselbe Domain auf eine interne IP auflösen, die öffentlich auf eine externe IP aufgelöst wird. Ich sollte die IP-Adresse des Servers nirgendwo mehr verwenden und die DNS die Komplexität übernehmen lassen. Momentan funktioniert mein VPN nur auf IP-Ebene, und mir waren diese Details nicht einmal bewusst.
    Nachteil: Ich könnte das gesamte WWW aller Benutzer durcheinanderbringen.
  • Ich könnte den Webserver auch einfach auf einem öffentlichen Port laufen lassen und den Schutz SSL überlassen.
    Nachteil: Ich bin der ganzen Bosheit der realen Welt ausgesetzt.