[solved] OpenVPN als Portmapper
-
Hallo, Vollnoob hier.
Ich würde gerne eine Art Portmapper auf einem VPS bauen oder so ähnlich.
Was ich bereits mache ist Internet-Traffic @home von meiner pfSense mittels einer OVPN-Client-Verbindung über den Windows-VPS auszuleiten.
Nun möchte ich es auch noch andersherum. Also auch noch Internet-Traffic, der am Windows-VPS aufschlägt auf einen Zielrechner @home weiterleiten.
Letzteres habe ich nun geschafft, in dem ich Portforwarding mache vom VPN-Client auf den Zielrechner.
Kann man das noch besser machen oder ist das so die einzige Lösung? Es geht zumindest.
-
Zuerst wieso braucht man das....
Dann wie mach ich das denn ich will das auch haben.... ;) -
@noplan Mortmapper z.B. für Leute, die leider nur IPv6 erreichbar haben und deswegen ein VPS anmieten um eben auch IPv4 servieren zu können.
Musste leider feststellen, dass der Windows-Server anscheinend nur tcp 4to6 mappen kann.
-
Sowas brauch ich unbedingt!
Ich hab zwar noch keinen Plan was ich damit ach aber der Rest rennt auf der Box so gut jetzt kann man ruhig was herumschrauben -
@Bob-Dig said in OpenVPN Portmapper:
Musste leider feststellen, dass der Windows-Server anscheinend nur tcp 4to6 mappen kann.
Was mietest du auch Windows an ;)
@noplan said in OpenVPN Portmapper:
Ich hab zwar noch keinen Plan was ich damit ach aber der Rest rennt auf der Box so gut jetzt kann man ruhig was herumschrauben
Im Prinzip völlig simpel. Kiste oder Container oder Droplet oder whatever mit 4/6 Dualstack mieten, ggf. sogar direkt gleich nen Image mit OpenVPN deployen (oder nen Minimal Linux eurer Wahl), absichern, Fail2Ban rauf, SSH auf anderen Port kleben und mit Key etc absichern und OpenVPN installieren. Fail2Ban auf SSH, UFW o.ä. für alle Ports außer SSH-neu und OpenVPN. Fertig.
OVPN Server Konfiguration aufsetzen (da kann man ggf. auch die Konfig in der pfSense vorbereiten und exportieren ^^), pfSense als Client mit eigenem OVPN Interface konfigurieren.
Dann kann man mit PBR gezielt Traffic via VPN ausleiten wenn man will. Beim VPN Server nimmst du dann entweder UFW/irgendwas um quasi 1:1 NAT zu machen und föhnst alles einkommende außer SSH/VPN einfach nach hinten zu der pfSense weiter. Routen nicht vergessen.
Wenns nen VirtualServer, VM o.ä. ist wo ihr ggf. FreeBSD kompatibel arbeiten könnt - noch einfacher. Einfach ne "gehostete" pfSense Instanz draus machen (oder mit Proxmox die Kiste mit pfSense + VMs nutzen). Dann ist das Setup noch einfacher.
Wenn man dann auf den Tunnel als Transfernetz noch ein fdXY:: Netz (private randomized v6) draufklebt kann man ggf. sogar noch das v6 Prefix des Servers per VPN durchreichen. Und Performance sparen geht auch, da der Traffic theoretisch eh "public" ist, kann man die Encryption des Tunnels weglassen und hat dann quasi nur einen UDP Tunnel. Sowohl IP4 als auch v6 Prefix könnte man dann durchblasen.
-
Danke du Spielverderber...!
Jetzt hab ich wieder ein Projekt mehr ;) -
Ich geb dir was zu spielen, also bin ich der F***ing Gamemaster :p
-
Was wäre denn jetzt aber ein geeigneter 4to6 Portmapper, wenn möglich kostenlos und für Win (oder linux).
-
weil du schreibst für Linux: wofür? Du machst kein Portmapping (zumal der Begriff Portmapper was anderes ist) du NATtest bzw routest das einfach nach intern durch. Beispiel hatte ich doch oben beschrieben?
Sorry noch krank und schreib nur ab und an mal vom Handy wenns gerade geht...
-
Ich muss mich entschuldigen, für meine Noobness. Hatte irgendwie nicht realisiert, dass ich das Problem ja bereits selbst gelöst hatte, nur halt ohne Portmapper.
@JeGr Was Du ansprichst sind natürlich noch mal tolle Hinweise, um das Ganze noch besser/performanter aufzusetzen, danke dafür und gute Besserung.
Eine Verständnisfrage aus Mangel an eigener Erfahrung. Ein Site2Site OVPN, kann man das auch in der pfSense nutzen um Traffic "auszuleiten" oder muss es dafür schon die Konfiguration als Client sein? Würde man ggf. mit zwei Verbindungen arbeiten, wenn man denn wechselseitig "ausleiten" wollte?
-
@Bob-Dig said in OpenVPN Portmapper:
Ein Site2Site OVPN, kann man das auch in der pfSense nutzen um Traffic "auszuleiten" oder muss es dafür schon die Konfiguration als Client sein?
S2S unterscheidet sich nur marginal von RW Setup in der Hinsicht, dass bei S2S beide Seiten routen bekommen und Gateways haben, bei RW normalerweise nur die Client Seite. Somit kannst du bei S2S prinzipiell genau den gleichen Quark machen wie beim RW auch - nur eben dass es auch in die andere Richtung funktionieren würde bei Wunsch.
Das wechselseitig versteh ich aber nicht so ganz :)
-
@JeGr Also mehr Möglichkeiten. Betrifft das eigentlich nur die pfSense oder auch OVPN selbst? Weil ich hab ja momentan einen Server auf Windows laufen, den ich nur mit viel Mühen und herumprobieren einrichten konnte. Wenn ich jetzt s2s machen wollte, werde ich wahrscheinlich failen, kein Aisstent auf der Sense und auf Windows eh nix. Ach, ich lass es besser.
-
@Bob-Dig said in OpenVPN Portmapper:
Wenn ich jetzt s2s machen wollte, werde ich wahrscheinlich failen, kein Aisstent auf der Sense und auf Windows eh nix. Ach, ich lass es besser.
S2S ist in OVPN wesentlich einfacher zu konfigurieren als ein RW Setup. Und Windows oder nicht, die Konfig ist genau die gleiche. Du kannst notfalls (hatte ich auch schon) auch einfach die pfSense nutzen, die Konfig erzeugen auf Windows einspielen und gut :D Not macht erfinderisch ;)
-
@JeGr said in OpenVPN Portmapper:
S2S unterscheidet sich nur marginal von RW Setup in der Hinsicht, dass bei S2S beide Seiten routen bekommen und Gateways haben, bei RW normalerweise nur die Client Seite. Somit kannst du bei S2S prinzipiell genau den gleichen Quark machen wie beim RW auch - nur eben dass es auch in die andere Richtung funktionieren würde bei Wunsch.
Hallo Jens, eine Frage dazu.
Ich habe, da ich meine pfSense komplett neumachen musste, mich an diesem setup versucht. S2S auf der Sense erstellt, anschließend exportiert und auf den WinServer importiert. Eine Verbindung kam lt. OVPN auch zustande. Ich konnte allerdings nicht auf meinen VPS zugreifen per RDP.
In OVPN hatte ich eine erlauben any Regel. Ein Gateway habe ich aber glaube ich nicht gehabt, nur den OVPN-Server als Interface in der Sense...
Wo war wahrscheinlich mein Fehler? -
@Bob-Dig said in OpenVPN als Portmapper:
In OVPN hatte ich eine erlauben any Regel. Ein Gateway habe ich aber glaube ich nicht gehabt, nur den OVPN-Server als Interface in der Sense...
Wo war wahrscheinlich mein Fehler?Ohne Bilder schwierig zu raten, aber gerade bei Windows wären meine Steps gewesen:
- Prüfen ob die Windows Firewall an ist
- Ggf. das OVPN Tunnel Netz und dein Remote Netz / LAN als IP Range in der WinFirewall eintragen und erlauben (sonst ist alles was nicht !localnet ist abgelehnt)
- Mal ohne WinFirewall testen
- RDP sollte theoretisch auch auf der TunnelIP funktionieren, also bei Tunnelnetz 10.0.8.0/24 ist ja 1 oder 2 bei S2S der Winserver, also darauf mal die RDP Verbindung getestet (schauen ob RDP auf alle IPs hört!), anschließend nochmal auf seine LAN IP versuchen
- Test ob simpler Ping ankommt
- Wireshark o.ä. auf Windows Kiste werfen und mitloggen, schauen ob Ping oder andere Pakete auf dem tun0/VPN Tunnel ankommen
Könnte eventuell nur Windows selbst gewesen sein, eventuell auch das Routing Setting beim Tunnel (local-net/remote-net bei den Tunneleinstellungen - die müssen auf beiden Seiten natürlich passen, andernfalls policy based routing noch anpassen)
-
@JeGr Win-Firewalls hatte ich alle aus. Tunneleinstellungen, nun ja auf dem VPS habe ich ja quasi keine Netze. Policy Routing habe ich jetzt, also mit der alten Konfig, die ich wiederherstellen konnte, auch nicht, ich greife einfach auf die private IP des Servers zu. Wäre das bei S2S anders? Vielleicht fällt Dir ja noch was ein. Ich mache doch bestimmt die simpelsten Anfänger Fehler.
-
wie gesagt, schauen ob RDP auf der TunnelIP geht. Wenn die Kiste als VPS bspw.
a.b.c.d
hat (wobei das ne public IP ist) und du dahin deinen Tunnel aufbaust mit Site2Site und willst NUR den VPS erreichen, dann
- muss auf Server/VPS Seite in der S2S config die Remote Netz Konfig auf die IP deines LANs von dem du zugreifst
- TunnelNetz definiert sein
- auf Client Seite kann man dann Remote IPs leer lassen und lokal auf das LAN setzen
Wenn aufgebaut müsste:
- pfSense die TunnelIP pingen können (ihre eigene und die andere Seite)
- der VPS seine eigene TunnelIP und die Gegenseite pingen
- der VPS die LAN Devices (wenn auf der pfSense auf dem OVPN Interface Regeln existieren, die ankommenden Traffic erlauben)
Das sollte es eigentlich sein um nur den VPS zu bekommen.
-
@JeGr said in OpenVPN als Portmapper:
- muss auf Server/VPS Seite in der S2S config die Remote Netz Konfig auf die IP deines LANs von dem du zugreifst
Danke Jens, das hatte gefehlt.
Ich poste das hier mal in der Hoffnung, es bei Bedarf wiederzufinden.
route 192.168.1.0 255.255.255.0
route 192.168.10.0 255.255.255.0Gibt es eine Empfehlung, welche Encryption Algorithm und Auth digest algorithm bei S2S zu nutzen sind?
Dieser Setup ist wirklich so deutlich einfacher als der andere, wenn man denn das mit der Route weiß und/oder man per SSH die entsprechenden Dateien auf der Sense gefunden hat.
-
Ich nutze für alle Tunnel AES-256-GCM/SHA256 und TLS Enc+Auth.
-Rico
-
@Rico Hey Rico,
bei S2S bzw. P2P mit Shared Key kann ich GCM nicht auswählen und speichern.
GCM Encryption Algorithms cannot be used with Shared Key mode.
Würde jetzt gerne dabei bleiben, weil so schön einfach, irgendwelche Empfehlungen oder unbedingt auf P2P SSL/TLS umsteigen?
-
Ah Shared Key.
Da würde ich AES-256-CBC/SHA256 machen.-Rico
-
@Rico Ich werde besser TLS nehmen...
ECDH Curve default?
PS: Schade, beim P2P TLS-Server funktioniert der Client Export nicht, dafür hätte ich die IPv4 Local network(s) im GUI eintragen können...
Warum ... alles .... so ... kompliziert. -
ECDH habe ich auf Default.
Und bevor die Frage kommt DH Parameter 2048 bit ;-)EDIT: Ja, mit SSL/TLS kannst du Route pushen, das geht bei shared key nicht.
-Rico
-
@Rico said in OpenVPN als Portmapper:
EDIT: Ja, mit SSL/TLS kannst du Route pushen, das geht bei shared key nicht.
Gibt es dafür ne logische Erklärung? Wahrscheinlich...
Wenn ich den "guten" P2P-TLS Server will, muss ich wohl leider die Client-Config selbst schreiben. Ich weiß, die sehen alle ähnlich aus, aber trotzdem, warüm? -
Naja, du kannst dir den passenden Client als dummy auf der pfSense zusammenbauen und dann die Config aus
/var/etc/openvpn
holen. ;-)-Rico
-
@Rico Ach scheiß drauf, shared key und gut ist.
Danke! -
AES256GCM-SHA256-ECDH-only mit secp384r1
wenn GCM nicht möglich dann CBC. Wenn man schwache HW hat, kann man ggf auf 128 runter, aber das macht kaum noch was aus heute. DH wird kaum noch gemacht. DH Params <=2k sind auch nicht mehr safe.
-
Neue Probleme haben sich aufgetan.
Zur Erinnerung, ich habe jüngst einen OVPN Server (P2P - Shared Key) auf der pfSense @home erstellt. Anschließend auf einem Windows VPS den Key exportiert und dort in OVPN geladen. Nun baut dieser VPS die Verbindung zu meiner pfSense auf. Das geht. Ich kann auch per RDP auf den VPS verbinden, nachdem ich dort routes angelegt hatte.
Was nun entgegen dem früheren Setup, wo der OVPN-Server noch auf dem VPS war, aber nicht mehr geht ist das Ausleiten von bestimmten Internet-Traffic @home über den VPS.
Ich vermute nun leider, das ist völlig normal, weil ja jetzt der Server auf der Sense ist.
Was sind meine Optionen? -
Das OpenVPN Interface hast du hinzugefügt und nutzt es als Gateway in einer Firewall Regel?
Was genau funktioniert denn dann nicht?-Rico
-
@Rico Ja, ist hinzugefügt, so wie vorher, als es als Client auf der pfSense realisiert war. Jetzt ist es aber halt als Server konfiguriert auf der Sense (P2P). Wenn ich eine Verbindung zum Ipv4 Internet aufbauen will, dann geht es nicht auf dem Host, wo ich die entsprechende Firewallregel anwende.
Kann ich das irgendwie retten? Vielleicht ein manueller Eintrag in der OVPN Config? Dieser müsste ich ja vermutlich sagen, dass Internet-Traffic über den Client(?) ausgeleitet werden soll. Klingt für mich auch eher unüblich.
-
Wer Server und wer Client ist spielt keine Rolle, du setzt ja das Gateway auf die andere Seite.
Outbound NAT Konfiguration vergessen?-Rico
-
@Rico Outbound NAT Konfiguration auf der Sense habe ich nicht vergessen, sondern genauso gemacht, wie vorher auch. Ob das so aber richtig ist, kann ich nicht sagen.
Aber apropos, setze ich das Gateway wirklich auf die andere Seite? Es ist doch mein OVPNServer, den ich da gesetzt habe... das dürfte auch das Problem sein, oder?Hier mal die config auf dem Windows VPS. Hier hatten ja schon die Routen gefehlt, vielleicht fehlt noch mehr:
dev tun persist-tun persist-key cipher AES-256-CBC auth SHA512 resolv-retry infinite proto udp remote XXX udp4 ifconfig 10.9.7.2 10.9.7.1 keepalive 10 60 ping-timer-rem route 192.168.1.0 255.255.255.0 route 192.168.10.0 255.255.255.0 route 192.168.32.0 255.255.255.0 <secret> # # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- </secret> comp-lzo no
-
Ich habs nun extra mal für dich getestet.
pfSense 1 mit einem WAN und LAN (192.168.203.0/24), hier läuft der OpenVPN Server PtP Shared Key und Test-Client im LAN (entspricht deiner Sense zuhause).
pfSense 2 mit einem WAN und LAN (192.168.204.0/24), hier läuft der OpenVPN Client, kein Client im LAN (entspricht deinem VPS).
Tunnelnetz 10.1.2.0/24 (für den Test eigentlich zu groß, aber egal).
pfSense 1 hat auf dem OpenVPN Interface IP 10.1.2.1 bekommen mit Gateway 10.1.2.2
pfSense 2 genau anders herum, Interface IP 10.1.2.2, Gateway 10.1.2.1pfSense 1 Outbound NAT:
pfSense 1 bei der Default allow LAN to any rule das OpenVPN Gateway gesetzt. Bei pfSense 2 nichts weiter verändert.
Speedtest (Download aus dem Internet) mit dem Client der am LAN von pfSense 1 hängt:
pfSense 1:
pfSense 2:
-Rico
-
pfSense 2 OpenVPN Client config
dev ovpnc1 verb 1 dev-type tun dev-node /dev/tun1 writepid /var/run/openvpn_client1.pid #user nobody #group nobody script-security 3 daemon keepalive 10 60 ping-timer-rem persist-tun persist-key proto udp4 cipher AES-256-CBC auth SHA256 up /usr/local/sbin/ovpn-linkup down /usr/local/sbin/ovpn-linkdown local <pfSense 2 WAN IP> lport 0 management /var/etc/openvpn/client1.sock unix remote <pfSense 1 WAN IP> 1194 udp4 ifconfig 10.1.2.2 10.1.2.1 route 192.168.203.0 255.255.255.0 secret /var/etc/openvpn/client1.secret compress resolv-retry infinite
-Rico
-
@Rico Danke erst mal. Nun nutze ich natürlich pfSense nur auf einer Seite. Was mir aufgefallen ist, auf dem VPS habe ich unter Netzwerkstatus beim OVPN TAP Adapter kein Gateway drin stehen, ansonsten scheint alles so wie bei dir zu sein.
Edit: Ich erinnere mich dunkel, dass ich auch Routing und Remote Access auf der Windowskiste konfigurieren musste. Vermutlich ist das bei der Neueinrichtung von OVPN auf der Strecke geblieben. Ich werde mich wieder melden, wenn ich das hin gekriegt habe.
Danke @Rico !Edit2: Das fehlende NAT auf der Windowskiste war schuld. Ich hatte, um dieses mal alles möglichst sauber zu machen, OVPN komplett deinstalliert und dann den NAT Umstand vergessen gehabt.
Danke und hier kann dann auch zu. -
Und just wurde OVPN 2.5 released, wo ich doch gerade alles frisch installiert hatte auf den VPS. Denke, ich werde den auf 2.5 updaten, das soll wohl immer rückwärts kompatibel sein. Werde ich mal testen.
-
Also 2.5 würde ich da noch nicht anfassen. Nur weil es jetzt -release ist, ist es noch lange kein -stable. FreeBSD XY.0 ist auch meist erstmal nur -release bevor es nach ein paar kleinen Updates dann -stable wird. Lass da mal schön noch die Finger weg, vor allem weil es ein zwei Dinge gibt wie NCP Settings etc. die andere Sachen deprecaten.
-
@JeGr Hätte ich mal auf Dich gehört.
So musste ich auf die harte Tour erfahren, dass es für Windows nun einen Ordner namens config-auto gibt, in den gehört die config für den Autostart. Habe diesen Ordner leider erst sehr spät entdeckt. -
@JeGr said in [solved] OpenVPN als Portmapper:
- muss auf Server/VPS Seite in der S2S config die Remote Netz Konfig auf die IP deines LANs von dem du zugreifst
Muss noch mal was zu OVPN fragen, mein Windows VPS zeigt mir die remote Netze nicht an, wenn ich route print eingebe. Momentan kein Problem, da ja die Verbindung von meiner Seite (pfSense) aufgebaut wird. Trotzdem wundert es mich. Wollte ich nun vom Windows VPS gezielt auf eines dieser Netze zugreifen, müsste ich dann ggf. diese Netze selbst als Routen auf dem VPS anlegen, macht das OVPN nicht selbst oder bringe ich wieder alles durcheinander.