NPM(VPS) <---> NPM(Zuhause) <---> Service(LAN)

  • Hey Schwarmwissen,


    folgender Ausgangspunkt:




    - Opnsense

    - Nginx Proxymanager im Docker (Port 80/443 zeigen auf den NPM)

    - Diverse Services im LAN 192...:port

    - Diverse Domains zb domain1.tld / domain2.tld

    - Routbare Dynamische IP zuhause


    Aktuell läuft mein NPM zuhause, der Anfragen z.B. panel.domain1.tld an meinen lokalen Service:port weiterleitet.

    Das klappt auch wunderbar soweit.


    Problem: meine Private IP ist sichtbar, das möchte ich nicht(mehr)



    Gedankengang:


    VPS -> dort auch einen NPM installieren.


    subdomain panel.domain1.tld zeigt mittels A record auf den neuen VPS


    Subdomain panel.domain2.tld zeigt mittels A record auf meine WAN ip zuhause (mittels API call direkte IP aktuallisierung bei netcup domains)


    Ziel war, Anfragen an panel.domain1.tld werden vom VPS NPM aufgefangen (source) und als desination an panel.domain2.tld an meinen NPM Zuhause weitergeleitet (panel.domain2.tld zeigt auf meine WAN zuhause)


    Der NPM zuhause lauscht auf panel.domain2.tld (aber auch schon panel.domain1.tld getestet) und soll dann die Anfrage an meinen Service geben


    Ziel wäre dadurch rein logisch gedacht, dass mein Service extern - nicht mehr auf meine Private IP aufgelöst wird, sondern auf die IP des VPS



    Egal wie ichs baue oder versuche, kriege aber entweder redirect errors (to many) - bad gateway ODER (erster erfolg) ich komme zuhause an und mein NPM zuhause ist so eingestellt, dass nicht klare Anfragen an google.de weitergeleitet werden. (nur beim NPM zuhause)


    Bin schon soweit, dass ich quasi wenn ich jetzt panel.domain1.tld eingebe, bei google lande.


    Ziel ist aber, dass ich auf meinem Service lande.


    Ist bestimmt nur ein logikfehler ODER die header werden nicht weitergegeben, dh mein npm zuhause sieht offenbar nicht, dass es eigentlich panel.domain2.tld aufnehmen soll, da der als source angelegt ist mit destination zu 192.....:port (service)


    WOOOOOOOOOO liegt mein gedankenfehler.


    ich möchte kein cloudflare o.Ä verwenden :D


    edit:

    uA ist ein Grund, dass ich Cloudflare nicht als "monopol" unterstützen möchte und es irgendwie mit anderen mitteln hinbekommen möchte :)



    Gruß :)

  • Zur hilfreichsten Antwort springen
  • Encore

    Hat den Titel des Themas von „NPM <---> NPM“ zu „NPM(VPS) <---> NPM(Zuhause) <---> Service(LAN)“ geändert.
  • Ich nutze dafür Tailscale, aber jeder anderer solcher Dienste sowie Wireguard würde es auch tun. Allerdings ohne Proxy zu Hause sondern nur als VPS und via Tailscale sind die lokalen Server verbunden.


    Über ein Setup mit zweitem lokalen Proxy hatte ich auch schon nachgedacht, hatte aber da ähnliche Probleme und es aus zeitlichen Gründen erst mal auf Eis gelegt.


    Ich meine, man müsste da im Konstrukt die Trusted Proxies konfigurieren, aber wenn da jemand die Lösung kennt, wäre ich auch interessiert :)

  • Ich nutze dafür Tailscale, aber jeder anderer solcher Dienste sowie Wireguard würde es auch tun. Allerdings ohne Proxy zu Hause sondern nur als VPS und via Tailscale sind die lokalen Server verbunden.


    Über ein Setup mit zweitem lokalen Proxy hatte ich auch schon nachgedacht, hatte aber da ähnliche Probleme und es aus zeitlichen Gründen erst mal auf Eis gelegt.


    Ich meine, man müsste da im Konstrukt die Trusted Proxies konfigurieren, aber wenn da jemand die Lösung kennt, wäre ich auch interessiert :)

    habe mich noch nicht damit beschäftigt sowas umzusetzen, kenne tailscale usw auch nicht bzw nur mal gehört :D


    idee war alternative irgendwie in der opnsense nen wireguard zu dem vps einzurichten, der vps dient dann als wg server, dort gehen dann alle ports ins wg interface -> opnsense. dort dann iwie den traffic splitten das quasi 443/80 an den npm gehen und andere notwendige ports an die gaming VM


    glaube würde auch gehen wenn ich in der VM den WG aufbaue, dann würde ich die opnsense umgehen , würde aber wenn dann auch andere services drüber laufen lassen wollen, dann steht meine wan ip nicht frei im netz - also port forwards.


    aktuell helfe ich mir mit geoblock alles außer DE^^ (mache die services eh nur für freunde)


    wenn jmd alternativ nen guten guide kennt wie ich das mit opnsense oder notgedrungen in der vm mit wireguard aufbaue hin zu einem VPS der dann als proxy dient , würde ich das übergangsweise auch mal probieren.


    für mich war npm <--> npm in gedanken erstmal "easy going, sollte klappen zumindest für http/s :D aber zickt doch ein wenig rum.


    ++++++++++++++++++

    übrigens, ans laufen gebracht habe ichs folgendermaßen, habe an dem VPS ein redirection host mit moved permanently gemacht. + ssl , wichtig etwaige header sind dort dann einzutragen in der advanced config


    habe eine domain mittels A record auf den vps zeigen lassen - der auch dann für freunde usw verwendet werden soll und nen anderer A record wird mittels dns api / dyndns aktuallisiert der dann in mein wan zuhause zeigt.


    dort läuft der npm privat, der dann auf diesen a record lauscht und dann an service xyz weiterleitet


    aber joa, dreckige lösung glaube ich und musst ports forwarden in deiner firewall

    die wireguard variante scheint da doch etwas professioneller zu sein :D

    - RS Brezn (Pterodactyl; Nextcloud und geheime Erotiksammlung, damit die Freundin nichts davon mitbekommt)

    - VPS 200 G10 (Mailkuh)

    - Webhosting Bestprice Classic

  • Also easiest going wäre wirklich der Weg über tailscale und dann auf dem VPS einen Proxy zu nutzen, der auf die IP des tailscale Netzes des Clients verweist. Absichern kann man das ganze noch mit crowdsec auf dem Proxy, der dann bekannte böse IPs blockiert. Da gibt es diverse Anleitungen für z.B NPM (über einen Fork) oder caddy.

  • das sind mir alles zuviele einzelne sachen auf die ich dann angewiesen wäre *hust* von denen ich nie was gehört habe usw und eher nen fan von "eigenen lösungen" bin, ohne auf andere dienste oder so angewiesen zu sein :)


    würde auf dem VPS ein geoblocking machen


    brauche nur unterstützung jetzt wie ich vorgehen muss, da ich mit wireguard mich noch nie so wirklich beschäftigt habe.


    ich mache mal kurz copy paste aus einem discord:

    --------

    hey leute, brauche mal dringrnd hilfe - kriegs nicht gebacken...


    Ziel: möchte in Opnsense (bei mir zuhause) einrichten, dass es ein Wireguard interface gibt, was sich als CLIENT an einem wireguard auf einem VPS anmeldet.


    ich raff den mist nicht mit diesen pub keys private keys peers usw usw.


    ich habe auf dem vps wireguard installiert - folgende config:

    [Interface]

    Address = 10.8.0.1/24

    SaveConfig = true

    PostUp = ufw route allow in on wg0 out on eth0

    PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

    PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

    PreDown = ufw route delete allow in on wg0 out on eth0

    PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    ListenPort = 51820

    PrivateKey = PUBKEY VOM VPS INTERFACE


    forward ipv4 usw ist bereits gesetzt.


    habe in opnsense eine Wireguard Instance mittels plugin angelegt - proxywireguard (WG0) mit einem eigenen öffentlichen key + privaten key

    Hörender port 51820

    tunnel address 10.8.0.2/24


    habe dann ein peer erstellt und diesem interface zugeordnet (hat eigener öffentlicher schlüssel)

    zugelassene ips 10.8.0.0/24

    endpoint address = öffentliche ip meines VPS

    Endpoint port = 51820

    aber wie um gottes willen krieg ich das jetzt hin, dass sich dieses wireguard mit dem VPS verbindet?


    wo muss ich welche peer oder keys oder was auch immer eintragen


    ziel = meine VM (läuft auf unraid) 192.168.0.XX sämtlichen Traffic durch opnsense an das w ireguard interface umleiten -> zum VPS und VPS --> meine vm


    bin verzweifelt... ^^

    hab mich nie wirklich mit WG beschäftigt xd

    Möchte das WG auch nicht direkt in der VM laufen lassen, da ich mehrer services habe, manche in docker usw. die aktuell über NPM bedient werden, würde das ganze dann gerne mit entsprechenden rules der opnsense steuern


    quasi port XYZ forward to wg interface usw usw.

    - RS Brezn (Pterodactyl; Nextcloud und geheime Erotiksammlung, damit die Freundin nichts davon mitbekommt)

    - VPS 200 G10 (Mailkuh)

    - Webhosting Bestprice Classic

  • warum sind da NAT Regeln? Die machen doch gar keinen Sinn.

    der VPS hat ja ne öffentliche IP und das WG interface auf dem VPS hat ja 10.8.x.x.x -- muss doch eth0 also das interface mit der wan ip zum wg interface genattet werden ? (so war meine denkweise, wiegesagt -> bin nicht fit mit wg..)^^


    Bräuchte fast schon ne Anleitung für 5 jährige zum nachbauen. vl auch mit kommentaren zum "lernen / verstehen" .^^


    wenn jemand vl meine fehler erkennt und mir sagen kann, wie ich vorgehen müsste -> der kommt ins nachtgebet haha


    oder nen link zu einer detailierten Anleitung zum nachbauen, die mein Ziel Szenario abdecken :)


    Manchmal sieht man vl den Wald vor lauter Bäuem nichtmehr, gehe mal davon aus , dass 60% des konstrukts schon stehen aber die kommunikation noch hängt - also das opnsense WG als Client fungiert und sich zum VPS verbindet

    - RS Brezn (Pterodactyl; Nextcloud und geheime Erotiksammlung, damit die Freundin nichts davon mitbekommt)

    - VPS 200 G10 (Mailkuh)

    - Webhosting Bestprice Classic

    Einmal editiert, zuletzt von Encore ()

  • Du willst ja nicht den Internetverkehr durchs VPN schicken, sondern den NPM erreichen. Also ist kein NAT nötig. Die Allowed IPs auf Client Seite beinhalten ja auch nur das Transportnetz (das ist richtig), also gibt es gar nichts, was genatted werden könnte.


    Du brauchst keine Wireguard Anleitung, du brauchst Grundlagen IP Routing. Jede Wireguard Anleitung setzt das voraus.

  • Du willst ja nicht den Internetverkehr durchs VPN schicken, sondern den NPM erreichen. Also ist kein NAT nötig. Die Allowed IPs auf Client Seite beinhalten ja auch nur das Transportnetz (das ist richtig), also gibt es gar nichts, was genatted werden könnte.


    Du brauchst keine Wireguard Anleitung, du brauchst Grundlagen IP Routing. Jede Wireguard Anleitung setzt das voraus.

    genau das möchte ich mitlerweile, da ein teil meiner services nicht über http/https laufen wofür der npm kein nutzen hätte, der npm soll für meine http/s relevanten sachen dienen .

    Ich möchte ein teil der Services - nehmen wir mal als Beispiel irgend einen Voice/Gameserver durch den VPS über wireguard leiten.


    So dass ich aus meinem Home WAN keine Portforwardings o.Ä machen muss und extern nicht meine Home IP sondern die IP des VPS zu sehen ist.


    Du brauchst keine Wireguard Anleitung, du brauchst Grundlagen IP Routing. Jede Wireguard Anleitung setzt das voraus.

    Wie ich auch bereits erwähnte


    Bräuchte fast schon ne Anleitung für 5 jährige zum nachbauen. vl auch mit kommentaren zum "lernen / verstehen"


    Es ist noch kein Meister vom Himmel gefallen, ich möchte hier aber nicht mein Meister in dem Thema machen sondern mein Ziel erreichen und dabei auch das eine oder andere an Wissen / Erfahrung mitnehmen.


    Auch wenn hier der ein oder andere Denkfehler besteht, so stand sicherlich jeder mal vor einer Barrikade die er versucht hat selbst zu lösen und dabei fehler gemacht hat, ich persönlich rechne es mir zumindest schon einmal hoch an, dass ich es zumindest selbst versuche/veruscht habe und auch nach Unterstützung frage.

    Dabei muss es auch nichtmal ein 1:1 Guide zum stupiden nachbauen sein, sondern ein Hinweis, was an meiner Config falsch ist, da ich mich noch nie mit Wireguard groß beschäftigt habe und davon ausging / gedacht habe, dass die IP des VPS in das Wireguard Interface genatet wird.


    Ich würde jetzt nicht eine 400Seiten Lektüre über Grundlagen von IP Routing durchforsten müssen um an mein Ziel zu kommen, wenn oberflächliches Verständnis und dann - ggfls durch einen Schubbs in die richtige Richtung , das AHA Erlebnis von selbst kommt, wie bereits erwähnt möchte ich hier kein Master machen sondern schlicht und ergreifend mein Ziel erleichtern, solltest du also empfehlenswerte Informationen für mich haben , Zitate, Links bin ich dem allerdings auch nicht abgeneigt.


    Ansonsten würde ich gerne bei dem Ziel bleiben, dass sich mittlerweile etwas vom Topic unterscheidet.


    Heimnetz services:


    VM (192.168.0.XX) mit diversen services drauf (keine http/s services)

    Diverse Docker - selbiges spiel, aber auf getrenntem Host


    Ziel:


    Opnsense Wireguard Client, welcher sich zum VPS im öffentlichen Netz verbindet.


    Durch Regeln in der Firewall, gewisse Ports o.Ä an das Wireguard interface weiterzuleiten (da ich die Services/VM nicht direkt in das WG Netzwerk einbinden möchte, sondern das ganze über die Opnsense steuern möchte)


    Der VPS soll alle eingehenden Pakete dann durch das WG Interface führen (daher der gedanke , das hier genatet wird..)

    ip4/6 forward ist bereits aktiviert


    In der Opnsense würde ich dann Anfragen die unter 80/443 durch den Wireguard gehen an meinen NPM leiten wollen, der sich da nn um die Web Applikationen kümmert.

    Andere Anfragen/Ports, werden dann zB an VM gegeben oder je nach bedarf an service XYZ


    Es habert aktuell lediglich noch daran, wie ich Wireguard konfiguriere, so dass die Opnsense eine Verbindung als Client aufbaut (Peers, Pub Keys, in welche config was wo rein muss usw.)


    und ob ich auf dem VPS Wireguard als allowed 0.0.0.0/0 mache - da der ja alle Anfragen akzeptieren soll?


    und im Home Wireguard nur das Netz des Wireguard Interfaces selbst + mein Heim LAN 192.xx -- wiegesagt, bin mit Wireguard, deren Funktionsweise (und auch in vielem anderen - ) noch ungeübt, dass ist aber der Grund wieso ich HIER Frage.


    "Lern zuerst XYZ " Bevor du da dran gehst ist ja gut und schön, aber alles andere als "Freundlich", da eine Lösung weiterhin ausstehend ist, hier wäre zumindest hilfreich auch entsprechende Anlaufstellen zu Linken oder zu nennen, damit auch ein "Anfänger", Anhaltspunkte findet sein wissen zu erweitern.


    Oder würde hier jemand erstmal 400Seiten Werkstattbücher durchlesen um die volle Funktionalität eines Autos zu verstehen, wenn er "nur" Öl wechseln möchte oder Scheibenwasser Aufüllen :D


    Wiegesagt, ich möchte Lernen aber möchte mir jetzt nicht unterstellen lassen zuerst in dem Thema X Y Z mich zu beschäftigen, wenn dann auch mit konkreten Beispielen wo / wie man am besten anfängt, da es für einen selbst vielleicht verständlich ist, für andere aber nicht.


    Ich weis sicherlich in 100 anderen Dinge mehr als Sie/Du (bin ja immer fürs Du - aber nettikette möchte ich wahren :D ) und Sie/Du wissen sicherlich 1000 Dinge die ich nicht weiß.

    Dafür ist ja auch ein Forum da, wissen Vermitteln, Wissen teilen, Meinungen hören, meinen Kundtun, sich austauschen.


    "

    Du brauchst keine Wireguard Anleitung, du brauchst Grundlagen IP Routing. Jede Wireguard Anleitung setzt das voraus

    Verstehe ich daher schon, was damit ausgesagt werden will, kommt allerdings sehr "Passiv Aggresiv" an.

    Also nicht falsch verstehen, ich streube mich nicht davor Wissen anzueignen, dann wäre ich allerdings über den "Schubbser" dankbar und - wie ein guter Lehrer es machen würde - vielleicht auch erwähnen, wo der Denkfehler/fehler liegt und wie man es besser machen kann .



    Mir hat mein Arbeitgeber mal gesagt, "Grundvoraussetzung jedes "ITler"s muss die Fähigkeit sein, google zu bedienen ;) "

    Wenn ich etwas nicht weiß in zB einer Anleitung oder wissen möchte - wie es funktioniert oder was XYZ genau macht - frage ich nach oder schlage es selbst bei google nach :)


    Ich bin mir sicher, wenn die Verwirrung mit wie wo was in die wireguard config muss (muss ich auf beiden seiten ein peer anlegen (denke ja? ) und wo muss der pubkey von wem rein (gehe mal davon aus, dass im Heimnetz der PubKey vom WG VPS rein muss, der WG VPS prüft den dann mittels seinem priv key gegen und via versa) -- aber wie genau es jetzt aufgebaut wird, da haberts noch...


    Brauche auch keine GUI dafür (der VPS läuft ohne schnickschnack, nackt + pubkey ssh

    - RS Brezn (Pterodactyl; Nextcloud und geheime Erotiksammlung, damit die Freundin nichts davon mitbekommt)

    - VPS 200 G10 (Mailkuh)

    - Webhosting Bestprice Classic

    3 Mal editiert, zuletzt von Encore ()

    • Hilfreichste Antwort

    genau das möchte ich mitlerweile, da ein teil meiner services nicht über http/https laufen wofür der npm kein nutzen hätte, der npm soll für meine http/s relevanten sachen dienen

    Ah, ok. Dann muss man sich aber das gesamte Setup noch mal ansehen. In dem Fall macht es meines Erachtens keinen Sinn mehr mit 2 NPMs zu arbeiten.


    Ich möchte ein teil der Services - nehmen wir mal als Beispiel irgend einen Voice/Gameserver durch den VPS über wireguard leiten.

    Ja, genau das hab ich hier schon mal irgendwo beschrieben. In Kürze: VPN Tunnel aufbauen, Heimnetz durchrouten und per iptables Portweiterleitungen bzw. Portöffnungen auf dem Server einrichten.


    Es ist noch kein Meister vom Himmel gefallen, ich möchte hier aber nicht mein Meister in dem Thema machen sondern mein Ziel erreichen und dabei auch das eine oder andere an Wissen / Erfahrung mitnehmen.

    Genau das meine ich ja. Nur: Wenn du nach einer Wireguard Anleitung für 5 Jährige suchst, findest du nicht die Information, die du brauchst. Wie gesagt, Wireguard setzt IP Routing Know How voraus. Grundsätzlich. In nahezu jeder Anleitung sind irgendwelche Post-Up oder Pre-Down Regeln, und kein Mensch erklärt dir, wofür die im Detail sind. Das musst du einfach vorher wissen, und das Wissen findest du nicht in Wireguard Anleitungen. Wäre auch blöd, denn 90% der Leute, die die Wireguard Anleitung lesen, kennen das schon. Nur die verbleibenden 10% müssen es noch lernen. Es ist besser, die 10% befassen sich mit speziellen Artikeln, als wenn 90% was lesen müssen, was sie nicht interessiert, was qualitativ am Ende auch noch deutlich schlechter ist, als ein spezieller Artikel.


    ich persönlich rechne es mir zumindest schon einmal hoch an, dass ich es zumindest selbst versuche/veruscht habe und auch nach Unterstützung frage.

    Ich hätte es dir noch deutlich höher angerechnet, wenn du vorab die Suche bemüht hättest und in deiner Nachfrage schon konkret auf Aspekte vorhandener Anleitungen eingegangen wärst. Denn die gibt es, hier im Forum und bei Google.


    Dabei muss es auch nichtmal ein 1:1 Guide zum stupiden nachbauen sein,

    Den gibt es eh nicht, und zwar nie. Deshalb sage ich immer: Anleitung lesen, verstehen, auf die eigene Situation adaptieren, umsetzen. Nicht einfach nachbauen, denn dass man exakt die Anforderungen des Artikels hat, ist praktisch ausgeschlossen. Selbst wenn das mit dem NAT noch richtig ist: Warum gibt es IPv6 Regeln, wenn es keine IPv6 Adressen im Tunnel gibt? Und wenn es dann offene Fragen und Unklarheiten gibt, dann sucht man da weiter. Erst wenn man nichts mehr findet, dann sucht man Unterstützung, aber das kannst du mir für diese Fragen noch nicht erzählen, dass es dazu nichts mehr gibt. Ich kann es deshalb mit Sicherheit behaupten, weil ich selber diverse Male was zu solchen Fällen geschrieben habe, bei verschiedenen Gelegenheiten (nicht nur in Foren).


    Ich würde jetzt nicht eine 400Seiten Lektüre über Grundlagen von IP Routing durchforsten müssen um an mein Ziel zu kommen, wenn oberflächliches Verständnis und dann - ggfls durch einen Schubbs in die richtige Richtung , das AHA Erlebnis von selbst kommt, wie bereits erwähnt möchte ich hier kein Master machen sondern schlicht und ergreifend mein Ziel erleichtern, solltest du also empfehlenswerte Informationen für mich haben , Zitate, Links bin ich dem allerdings auch nicht abgeneigt.

    Deshalb schrieb ich auch "Grundlagen".


    und ob ich auf dem VPS Wireguard als allowed 0.0.0.0/0 mache - da der ja alle Anfragen akzeptieren soll?

    Nein, da bestimmt nicht. Wenn, dann auf der anderen Seite.


    "Lern zuerst XYZ " Bevor du da dran gehst ist ja gut und schön, aber alles andere als "Freundlich",

    Du musst es so oder so lernen. Es ist völlig egal, ob ich es hier schreibe, oder ob du es dir aus einer anderen Anleitung holst. Nur dass die andere Anleitung mit Sicherheit deutlich besser ist, als ich es hier in der Schnelle zusammenschreiben könnte.


    Du suchst nach dem Schubser? Der Schubser ist: Befasse dich mit den Grundlagen IP Routing. Das ist genau das, was du für dein AHA Erlebnis brauchst. Die Wireguard Konfiguraton an sich ist ok. Du schubst nur die falschen IPs durch die Gegend. Und nein, das kann ich dir nicht Schritt für Schritt vorgeben, denn welche Netze du wohin routen musst, hängt von der Systemkonfiguration, vor allem von Docker, ab. Das musst du dir wohl oder Übel selber erarbeiten.

  • habs hinbekommen-

    Habe jemand aus dem unRAID Forum gefunden der sich mit mir 2 stunden mal hingehockt hat, seine Konfiguration gezeigt hat (und auch erklärt hat was was macht, welche Einstellung was bewirkt und ich konnte nebenbei live nachbauen, er hat mich mal machen lassen und dann "meeep" gesagt, wenn meine Denkweise oder rangehensweise falsch war und geschaut, ob ich selbst drauf komme, so hats dann auch "spaß" gemacht.


    Gab dann auch nen kleines Trinkgeld von mir.


    #Closed

    - RS Brezn (Pterodactyl; Nextcloud und geheime Erotiksammlung, damit die Freundin nichts davon mitbekommt)

    - VPS 200 G10 (Mailkuh)

    - Webhosting Bestprice Classic

    Ente gut, alles gut 1
  • Encore

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.