-
Die alte Leier mit dem CG-NAT
Ich habe mich heute nochmal mit der Thematik beschäftigt. zunächst habe ich auf der Ionos VPS WireGuard installiert und die /etc/sysctl.conf angepasst nano /etc/sysctl.conf sichergestellt, dass net.ipv4.ip_forward=1 sysctl -p apt update && apt upgrade apt install wireguard anschließend habe ich folgende WireGuard config erstellt um die gewünschten Ports weiterzuleiten (gleich an die Ports für mein Swag Docker) [Interface] PrivateKey = [PrivateKey generated on VPS] ListenPort = 55107 Address = 10.0.0.1/24 ### Http on port 80 PostUp = iptables -t nat -A PREROUTING -p tcp -i [interface] --dport 80 -j DNAT --to-destination 10.0.0.2:180 PostDown = iptables -t nat -D PREROUTING -p tcp -i [interface] --dport 80 -j DNAT --to-destination 10.0.0.2:180 ### Https on port 443 PostUp = iptables -t nat -A PREROUTING -p tcp -i [interface] --dport 443 -j DNAT --to-destination 10.0.0.2:1443 PostDown = iptables -t nat -D PREROUTING -p tcp -i [interface] --dport 443 -j DNAT --to-destination 10.0.0.2:1443 ### Wireguard on Port 51820 PostUp = iptables -t nat -A PREROUTING -p udp -i [interface] --match multiport --dports 51820 -j DNAT --to-destination 10.0.0.2 PostDown = iptables -t nat -D PREROUTING -p udp -i [interface] --match multiport --dports 51820 -j DNAT --to-destination 10.0.0.2 ### SNAT PostUp = iptables -t nat -A POSTROUTING -o [interface] -j SNAT --to-source [VPS IPv4] PostDown = iptables -t nat -D POSTROUTING -o [interface] -j SNAT --to-source [VPS IPv4] [Peer] # unraid PublicKey = [PublicKey generated on Home-Server] PresharedKey = [PresharedKey generated on Home-Server] AllowedIPs = 10.0.0.2/32 da ich den WireGuard Tunnel welcher exklusiv zwischen Unraid und der VPS stattfindet auf Port 55107 gelegt habe kann ich nun noch Port 51820 an Unraid weiterleiten. Dort kann ich dann problemlos eine Wireguard config erstellen auf die ich mich zum Beispiel mit dem Handy verbinden kann (statische IP von der VPS) und getrost mein LAN freigeben kann. Ich habe ja eine sichere Verbindung direkt vom Handy auf Unraid ohne dass die VPS davon etwas mitbekommt. [Interface] #home PrivateKey=removed Address=10.253.1.1 ListenPort=51820 PostUp=iptables -t nat -A POSTROUTING -s 10.253.1.0/24 -o br0 -j MASQUERADE PostDown=iptables -t nat -D POSTROUTING -s 10.253.1.0/24 -o br0 -j MASQUERADE PostUp=ip -4 route flush table 201 PostUp=ip -4 route add default via 10.253.1.1 dev wg1 table 201 PostUp=ip -4 route add heimnetz/24 via heimrouter dev br0 table 201 PostDown=ip -4 route flush table 201 PostDown=ip -4 route add unreachable default table 201 PostDown=ip -4 route add heimnetz/24 via heimrouter dev br0 table 201 ### allow access behind this lan PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE [Peer] #handy PublicKey=removed PresharedKey=removed AllowedIPs=10.253.1.2 Alles funktioniert genau wie gedacht. Ich kann gewünschte Ports von der VPS auf den Heimserver weiterleiten und sehe trotzdem die original source IP und kann zum Beispiel fail2ban benutzen. Ich kann auch eine sichere Verbindung über eine statische IPV4 direkt mit meinem Heimnetz aufbauen (egal ob die jetzt langsam ist Hauptsache die VPS sieht das LAN nicht). Ich habe jetzt nur noch einen Dorn im Auge der wahrscheinlich aber auch am schwersten zu lösen ist. Da Unraid jetzt wg0 als default gateway nimmt fliegt mir der Internetzugriff weg sobald der Tunnel bricht. Die Lösung ist wohl policy/source based Routing mit iproute2 suite aber ich bin bisher noch nicht dahinter gekommen wie ich das anstellen soll. Ich plane wenn dieser letzte Makel beseitigt ist einen kleinen Guide zu schreiben um das Problem ein für alle mal auch für solche Korintenkacker wie mich zu lösen (echte source IP und sichere direkter Tunnel ins LAN) Vielleicht hat ja einer aus der Community einen Plan?
-
Die alte Leier mit dem CG-NAT
Terminierst du dein SSL/TLS auf der VPS mit NGINX oder dann erst auf dem Heimserver? Hast du die NGINX Weiterleitung so hinbekommen, dass die echte Source IP der Anfrage erhalten bleibt? SOCAT klingt nach einer interessanten Lösung! Das werde ich mir mal genauer Anschauen. Worin besteht der Vorteil gegenüber einfachen iptables oder geht es prinzipiell eher um Einfachheit der Benutzung? Am meisten würde mich interessieren wie du Wireguard auf Unraid verwendest. Im "Site to Site" Modus über die GUI oder über die Konsole mit eigenem Routing?
-
Die alte Leier mit dem CG-NAT
Ich denke das wird so einfach nicht möglich sein mit Pyur. Zum einen sind sie nicht für guten Kundendienst bekannt und zum anderen war vertraglich nie eine öffentliche IPv4 zugesichert . Nach meinen Erfahrungen mit wochenlangen Telefonaten um einen sporadisch defekten Router zu tauschen ist mir meine Zeit da vermutlich zu kostbar. Jetzt habe ich mich auch einmal schon so in das Problem hineingesteigert, dass ich nun auch eine Lösung möchte. Der Kampfgeist is geweckt.
-
Die alte Leier mit dem CG-NAT
Hallo zusammen, nach vielen Jahren des Luxus einer öffentlichen IPv4 waren dann vor einigen Tagen alle meine Services down. Mit Schrecken musste ich feststellen: ich lebe nun hinter einem CG-NAT. Ein wenig googeln später habe ich nun ausreichend Halbwissen um nicht nur gefährlich zu sein sondern auch ein wenig zu wissen was ich brauche bzw. nicht möchte. Vielleicht zunächst was ich überhaupt erreichen möchte: 1. Zugänglich machen meiner Domain/Subdomains hinter dem CG-NAT - mein Swag Container auf Unraid verwaltet als Reverse Proxy Nextcloud und andere Services mit https - vereinzelt werden/wurden auch UDP Services auf Unraid betrieben (Spielserver Spielereien) - bewahren der echten Source IP der Anfrage 2. Bisher hatte ich auf meiner Fritz!Box des Kabelanbieters einen VPN Server eingerichtet, welcher mir auf angenehme Weise den Fernzugriff erlaubte falls gelegentlich etwas schief lief (zum Beispiel im SmartHome: Frau zu Hause und die Batterie vom Lichtschalter ist alle ...) Was ich mir also wünsche ist eine möglichst open source Lösung um von extern TCP Ports, UDP Ports (oft muss es da auch IPv4 sein) auf mein Unraid weiterzuleiten und eine VPN in mein Netzwerk (LAN) aufzubauen. Es gibt einige Kauflösungen, welche Teile meiner Anforderungen erfüllen können aber auch irgendwie nicht alle und wo bleibt denn da der Spaß? Also habe ich mich nach Open Source Lösungen umgeschaut und einige "durchdacht": 1. VPS mit Compose Stack bestehend aus NGINX (nicht Swag wegen dem Certbot) und Wireguard welche sich ein Interface teilen. Auf Unraid dann einen Compose Stack mit SWAG und Wireguard sowie vermutlich den Services welche verwendet werden sollen. Mittels des "stream" Systems von NGINX und "proxy_protocoll" kann man dann angeblich TCP und UDP weiterleiten und die Source Ip behalten. Sogar SSL/TLS bleiben erhalten. Nun mal abgesehen, dass ich nicht so richtig verstehe welchen Wudu NGINX da mit den Paketen treibt terminiert mein VPN im Compose Stack. Damit kann ich dann leider weder mein Smart Home retten noch Weiterleitungen zu Spielserver VMs einrichten. 2. VPS mit OPNsense und OPNsense als VM auf Unraid. Damit hat man vermutlich die beste Kontrolle aber benötige ich dazu noch ein weiteres Netwerkinterface im Unraid Server und muss dann auch noch meine Fritz!Box auf ein anderes VLAN legen (die beiden sind nicht im Raum und 2 Switches voneinander entfernt). Zusätzlich habe ich Geizhals eine IONOS VPS XS genommen welche keine eigenen Images erlaubt ... 3. Was kann schon OPNsense was die guten alten Iptables nicht können. Daher meine Idee Wireguard nativ auf der VPS zu installieren und gezielt Ports in den Tunnel weiterzuleiten. In etwa so: iptables -t nat -A PREROUTING -p tcp -i {VPS_NIC} --dport 443 -j DNAT --to-destination {WG_UNRAID}:1443 #andere Port für Swag Docker iptables -t nat -A PREROUTING -p udp -i {VPS_NIC} --match multiport --dports 51820 -j DNAT --to-destination {WG_UNRAID} iptables -t nat -A POSTROUTING -o {VPS_NIC} -j SNAT --to-source {VPS_IPV4} SNAT sollte eigentlich automagically gehen oder? Auf Unraid wollte ich den internen VPN Manager nehmen um nicht extra ein Script für den Restart bauen zu müssen. Dabei ist mir die Option "LAN to LAN" aufgefallen. Hier kommt das Halbwissen ins Spiel. Mit diesem Setup sollte ich doch genau erreichen können was ich möchte oder? Meine Docker Services sollten wie früher mit öffentlicher IPV4 am Router ohne Änderungen auf ihren Ports erreichbar sein genauso die VMs. Ebenso sollte ich mit Wireguard ins ganze Netzwerk kommen (da gehts ja bestimmt nur um das Routing auf Seiten von Unraid). Mir stellen sich nun aber ein paar Fragen zum "LAN to LAN" Setup : - setze ich mich zusätzlichen Gefahren aus, da ja nun auch die VPS im meinem LAN? Gibt es einen plausiblen Angriffsvektor über die VPS in mein Heimnetzwerk inkl. Smart Home und co? - welches Standartgateway nimmt der Traffic von Unraid z.B. Community Apps Panel oder andere Docker, welche nicht aus Wireguard angesprochen wurden? - gibt es eine bessere Übersicht was Unraid mit Wireguard treibt als diese Doku Seite ? (https://docs.unraid.net/unraid-os/manual/security/vpn/) Ich freue mich darauf von euch zu lernen was ich falsch verstanden habe bzw. mir an Infos noch fehlt
En1kay
Members
-
Joined
-
Last visited