VPN vs. Reverse Proxy vs. Portfreigabe

Azghul0815

Rear Admiral
Registriert
Dez. 2019
Beiträge
5.142
Hallo zusammen,


ich habe mir mal wieder ein kleines Problem geschaffen, möchte lernen und komme aber nicht ganz weiter.

Folgendes Setup:
Ich möchte einen Server (intern 192.168.178.123:1234) von außen zugänglich machen.
Ich habe eine feste IPv4-Adresse (51.51.51.51) und eine DynDNS.

Eine Wireguard-Verbindung funktioniert problemlos, und damit kann ich natürlich auch über die interne IP auf den Server zugreifen. Da ich jedoch je nach Gerät Wireguard nicht überall installieren kann, würde ich gerne den Server anders freigeben.

Direkte Portweiterleitung über die feste IPv4-Adresse und die DynDNS funktionieren, aber wie sicher ist das?

Als Reverse-Proxy habe ich nginx ausprobiert. Ich habe Port 80 freigegeben, und das funktioniert nur teilweise. Wenn ich 51.51.51.51:80 im Browser eingebe, wird der Proxy erkannt, aber mit der DynDNS funktioniert es nicht. Wo hab ich denn meinen Denkfehler? Liegts am dyndns Anbieter? Brauch ich eine eigene Domain die ich irgendwo hoste und die Subdomains unterstützt?
Also Server1.example.de -> nginx leitet an Nextcloud weiter; server2.example.de -> nginx leitet an grafana weiter, etc.

Ich hoffe der Text ist nich zu konfus geschrieben.

Grüsse
Azze
 
Die Frage ist - für wen gibst du das frei.
Gibt es wirklich Personen, die unbedingt übers das Internet drauf zugreifen müssen?

Wenn nein - solltest VPN weiterhin bevorzugen.

Wenn nicht überall Wireguard installiert werden kann, solltest noch über IPSec nachdenken.
Deine Beschreibung klingt erstmal nicht falsch, spannende Frage ist jedoch, welchen Router du hast.
Viele blockieren erstmal NAT-Loopback - heißt eine externe Domain die auf interne IP-Adressen zeigt wird blockiert.
 
Azghul0815 schrieb:
Direkte Portweiterleitung über die feste IPv4-Adresse und die DynDNS funktionieren, aber wie sicher ist das?
So sicher wie das Ziel.

Simples Beispiel:

Wenn du zB TCP 9100 auf deinen Drucker weiterleitest, kann jeder Hans und Franz deinen Drucker leerdrucken, einfach so - Drucker per IP hinzufügen, 51.51.51.51 eingeben, Treiber wählen, drucken.

Wenn du UDP 51820 auf ein Wireguard-Gateway weiterleitest, brauchen Hans und Franz das passende Wireguard-Profil mit allem drum und dran, um reinzukommen.


Azghul0815 schrieb:
Als Reverse-Proxy habe ich nginx ausprobiert. Ich habe Port 80 freigegeben, und das funktioniert nur teilweise. Wenn ich 51.51.51.51:80 im Browser eingebe, wird der Proxy erkannt, aber mit der DynDNS funktioniert es nicht.
Das können wir ohne Einsicht in die Konfiguration nicht beurteilen.

Azghul0815 schrieb:
Liegts am dyndns Anbieter? Brauch ich eine eigene Domain die ich irgendwo hoste und die Subdomains unterstützt?
Nein. Ein passender DDNS-Anbieter kommt dann ins Spiel, wenn du in nginx Let's Encrypt Zertifikate per DNS-Challenge generieren willst. Bei der DNS-Challenge wird nämlich per API auf den DNS zugegriffen, um den Besitz der Domain zu verifizieren. Das ist aber wie gesagt erstmal nur für https-Zertifikate relevant.
 
nginx wenn mehrere Dienste auf gleichem Host hinter vpn siehe

konfiguration inkl ssl:

wireguard site to site einrichten siehe
 
Zuletzt bearbeitet:
Azghul0815 schrieb:
Brauch ich eine eigene Domain die ich irgendwo hoste und die Subdomains unterstützt?
Also Server1.example.de -> nginx leitet an Nextcloud weiter; server2.example.de -> nginx leitet an grafana weiter, etc.
Hm.. Ich glaub ich hab das oben etwas falsch dargestellt.

Wenn du eine Subdomain verwenden willst, muss diese natürlich schon existieren bzw. der DDNS muss ggfs alle Subdomains auf die IP der Main-Domain auflösen. Mit nslookup sub.main.ddns kannst du prüfen was bei der Namensauflösung rauskommt. Da muss natürlich die IP deines Anschlusses rauskommen, weil die Verbindung sonst irgendwo in den Tiefen des www verschwindet.
 
Zuletzt bearbeitet:
Vielleicht hab ich mich auch zu kryptisch ausgedrückt.
@dj-melo
Wireguard läuft bei mir und mit meinen mobilen Geräten kann ich auch problemlos auf alles in meinem Netzwerk zugreifen.
Das Hilft aber z.B. meinem Buddy nicht. Der will sich mit dem Thema IT nicht auseinandersetzen.

@Raijin
Unterschieder VPN und Portweiterleitung ist ja soweit klar und um nen Drucker gehts ja nicht ;)
Reverseproxy macht z.B. doch sowas und das ganze mal wirklich konkret:

ich gebe im Browser ein:
cloud.azze.dyndns.net ->Landingpage der Owncloud auf meinem LXC bei Proxmox mit interner IP geht auf und ich kann mich einloggen.
Das ganze würde auch gehen mit:
51.51.51.51:7890 -> Router leitet Anfrage an IP und internen Port des Owncloud Servers weiter -> Landingpage, respektive eben mit meiner Dyndns: azze.dyndns.net:7890

Da wäre nun aber erstmal auch HTTPS nicht aktiv.

Ziel wäre es nun für versch. Services einfache Domainnamen im Browser einzugeben.
cloud.azze.dyndns.net
grafana.azze.dyndns.net usw.

Nach Möglichkeit mit HTTPS Zertifikat usw.

Und daran scheitert es gerade :)
 
wie in meinem Beitrag und dem Video dazu verlinkt ein Nginx mit einer Domaine die das kann, kann auch ein entsprechender dyndns sein muss halt subdomains können. z.b. https://ipv64.net und nein alles keine Werbung funkt. halt einfach. oben editiert da video wegen ssl vergessen sorry.
 
Zuletzt bearbeitet:
Azghul0815 schrieb:
...
Ziel wäre es nun für versch. Services einfache Domainnamen im Browser einzugeben.
cloud.azze.dyndns.net
grafana.azze.dyndns.net usw.

Nach Möglichkeit mit HTTPS Zertifikat usw.

Und daran scheitert es gerade :)
dann brauchst du eine Domain bei einem Anbieter welcher auch Sub-Domains zulässt

/edit
was du sowieso benötigst um z.B. Let's Encrypt SSL Zertifikate einzurichten
 
Azghul0815 schrieb:
Unterschieder VPN und Portweiterleitung ist ja soweit klar und um nen Drucker gehts ja nicht ;)
Das war auch nur ein Beispiel in Bezug auf "wie sicher sind Portweiterleitungen". Portweiterleitungen sind eben nur banale Weiterleitungen, nichts weiter. Sie verändern nichts und sichern nichts ab. Wenn am Ende der Weiterleitung ein offenes Scheunentor ist, dann ist es eben offen. Ein Reverse Proxy hingegen kann einen unverschlüsselten http-Server nach außen hin per https zusätzlich absichern.


Azghul0815 schrieb:
Ziel wäre es nun für versch. Services einfache Domainnamen im Browser einzugeben.
Natürlich müssen dazu die Subdomains auch entsprechend eingerichtet sein oder der Domainhoster muss Subdomains per Wildcard auf die Main-Domain auflösen.

Bei meinem Hoster kann ich zB beliebige Subdomains eingeben und sie lösen alle auf die Hauptdomain auf.

example.com --> meine IP
bla.example.com --> meine IP
irgendeinesinnfreiesubdomain.example.com --> meine IP

Nur jene, bei denen ich explizit einen A-Record mit einer anderen IP hinterlegt habe, werden anders aufgelöst. zB meinionosvps.example.com --> ionos-vps-ip

Prüfe daher wie erwähnt per nslookup erstmal deine gewünschten Subdomains. Wenn diese mit der falschen IP oder gar nicht aufgelöst wird, kann es auch nicht funktionieren.


Wenn das sichergestellt ist und dennoch per nginx nicht funktioniert, liegt's an deiner nginx Konfiguration, nach der du schon in #2 gefragt wurdest.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: LuxSkywalker
Raijin schrieb:
Wenn das sichergestellt ist und dennoch per nginx nicht funktioniert, liegt's an deiner nginx Konfiguration, nach der du schon in #2 gefragt wurdest.
Ups, hab ich überlesen.
Hier die conf, hab ich aus nem Guide übernommen.
Code:
server {
    listen 80;
    server_name 51.51.51.51;

    location / {
        proxy_pass http://192.168.178.123:6666;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
KitKat::new() schrieb:
Warum dyndns bei einer festen IP?
Überbleibsel von früher und gibt's bei No-ip halt umsonst und eben schöner als sich Zahlen zu merken, wie @dj-melo schon geschrieben hat.

Ich hab kein Problem mir nach einer festen Domain zu schauen und die zu kaufen. Brauch ja weder Hosting noch sonstwas, sondern würde halt gerne das ganze via reverse Proxy machen und HTTPS, weils komfortable als VPN ist
 
mach mal nginx nach dieser Anleitung

sobald die sub-/ Domain verfügbar hast. Ich wette dann klappt's.
 
  • Gefällt mir
Reaktionen: Azghul0815
Ich denker der Proxy Manager ist ein gutes Tool, hatte ich auch schon drauf, bin aber mit vielen der Begrifflichkeiten in dem Bereich noch nicht so grün.
A-Records, CNAME, AAA Records, etc.
Noch viel gefährliches Halbwissen.
Hatte gerade 1h mit einem Arbeitskollegen gesprochen, der da super fit ist. Der empfiehlt nachtürlich auch den ganzen nginx proxy zu härten mit versch. Tools und Einstellungen usw.
Da ist zumindest schönes Lernpotential dabei.

Lessons Learned so far:
  • Domain besorgen, die Subdomains unterstützt
  • HTTPS Thema betrachten und Sicherstellen das HTTPS auch unterstützt wird etc.
  • nginx "server" härten, etc.
  • schauen wann ich die Zeit habe das Projekt zu starten :)
 
Azghul0815 schrieb:
Direkte Portweiterleitung über die feste IPv4-Adresse und die DynDNS funktionieren, aber wie sicher ist das?
So sicher wie der Dienst selbst.

Azghul0815 schrieb:
Ich habe Port 80 freigegeben, und das funktioniert nur teilweise. Wenn ich 51.51.51.51:80 im Browser eingebe, wird der Proxy erkannt
idealweise machst du das immer mit Port 443 und erstellst auf dem Reverse Proxy ein Zertifikat für die https Verbindung.
Azghul0815 schrieb:
Domain besorgen, die Subdomains unterstützt
Mein Tipp:
Netcup Webhosting 1000 Paket am letzten Dienstag des Monats.
Kostet in der Aktion 1,08€ pro Monat, dafür hast du einen Domain, ein bisschen Webspace und kannst deren Mailserver nutzen für deine Domain.
Zudem ist netcup über die API des nginx proxy managers DNS Challenge kompatibel, du kannst dir also ein Wildcard Zertifikat ausstellen und kannst zudem auf die Freigabe von Port 80 verzichten.
Finde ich ein rundum solides Paket.
 
  • Gefällt mir
Reaktionen: Raijin und Azghul0815
Zurück
Oben