Hallo zusammen,
ich würde mich über eure Vorschläge zu folgendem Szenario freuen:
Mit meinem Laptop (Client) möchte ich mittels vpn/ssh über meinen Server (Endserver) ins Internet (und nicht direkt von meinem Laptop aus). Problem: Der Endserver kann nicht direkt angesprochen werden sondern muss von sich aus die Verbindung aufbauen. Demnach möchte ich gerne meinen vserver (Zwischenserver) dazwischenschalten, zu welchem der Endserver eine Verbindung aufbaut. Alle drei Beteiligten haben natürlich linux drauf.
Demnach hätte ich dann von meinem Client aus folgenden Weg ins Internet:
Client -> Zwischenserver -> Endserver <|> Internet
Jetzt wäre meine Frage wie ich das am besten anstellen kann, sprich mit welcher Software und Konfiguration auf den beiden Servern?
Über eure Hilfe würde ich mich sehr freuen.
Vielen Dank im Voraus!
Gruß
CaptainCode
VPN / SSH Dreiergespann?
Re: VPN / SSH Dreiergespann?
Ein sinnvoller Ansatz koennte sein, dem virtuellen Server in der Mitte openvpn drauf zu tun und client-to-client einzuschalten. Anschliessend waehlen sich Client und Zielserver in das VPN ein und mit korrekt gesetzten Routen kommt der Client dann auch in das Netz hinter dem Zielserver.
Willkommen im Forum!
Gruss Cae
Willkommen im Forum!
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: VPN / SSH Dreiergespann?
Du kannst OpenVPN über TCP laufen lassen und dann einfach ne Portweiterleitung über ssh aufmachen:
ssh -R 1194:Endserver:1194 Zwischenserver
Danach kannst du ganz normal VPN machen nur dass du als Server den Zwischenserver und nicht den Endserver angibst. Aber wie gesagt, dann must du das VPN auf TCP umstellen. Du kannst sowas auch mit ncat und dann auch mit UDP bauen ist aber komplizierter.
ssh -R 1194:Endserver:1194 Zwischenserver
Danach kannst du ganz normal VPN machen nur dass du als Server den Zwischenserver und nicht den Endserver angibst. Aber wie gesagt, dann must du das VPN auf TCP umstellen. Du kannst sowas auch mit ncat und dann auch mit UDP bauen ist aber komplizierter.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 11
- Registriert: 20.10.2012 10:33:16
Re: VPN / SSH Dreiergespann?
Vielen Dank für eure Antworten.
Also müsste ich als erstes auf den Zwischenserver openvpn installieren, dies scheint der gemeinsame Nenner eurer Antworten zu sein.
Danach wird es allerdings komplizierter: Würde es bei der Portweiterleitung nicht Probleme geben, da die Verbindung dann nicht vom Endserver aufgebaut wird?
Dieses Problem wäre bei dem Vorschlag von Cae nicht. Allerdings verstehe ich da offengesagt nicht, wie dort die Konfiguration genau aussehen würde. Wären dann der Client und der Endserver quasi beides VPN-Clients? Und wie sähe das Routen genau aus?
Gruß
CaptainCode
Also müsste ich als erstes auf den Zwischenserver openvpn installieren, dies scheint der gemeinsame Nenner eurer Antworten zu sein.
Danach wird es allerdings komplizierter: Würde es bei der Portweiterleitung nicht Probleme geben, da die Verbindung dann nicht vom Endserver aufgebaut wird?
Dieses Problem wäre bei dem Vorschlag von Cae nicht. Allerdings verstehe ich da offengesagt nicht, wie dort die Konfiguration genau aussehen würde. Wären dann der Client und der Endserver quasi beides VPN-Clients? Und wie sähe das Routen genau aus?
Gruß
CaptainCode
Re: VPN / SSH Dreiergespann?
Kannst du nicht nur SSH-Forwarding nutzen, Kann den theoretisch der Server direkt den Client erreichen?
Re: VPN / SSH Dreiergespann?
Nein!captaincode hat geschrieben:Also müsste ich als erstes auf den Zwischenserver openvpn installieren, dies scheint der gemeinsame Nenner eurer Antworten zu sein.
Du sollst nur dein VPN auf TCP umstellen
(einfach in den Konfigurationsdateien (Auf Clent und Server!)
Code: Alles auswählen
# TCP or UDP server?
;proto tcp
proto udp
Code: Alles auswählen
# TCP or UDP server?
proto tcp
;proto udp
Code: Alles auswählen
ssh -R 1194:Endserver:1194 Zwischenserver
rot: Moderator wanne spricht, default: User wanne spricht.
Re: VPN / SSH Dreiergespann?
Das Problem, was ich bei den SSH-Loesung sehe: Man muss Aufwand treiben, um einen kaputten Tunnel zuverlaessig zu erkennen und ihn neuzustarten. Ich weiss, wovon ich spreche, weil ich das auch mal implementiert habe. Es ist eklig. OpenVPN kann man so konfigurieren, dass es nach einem Hupser auf der Leitung automatisch wieder verbindet.
Angenommen, du hast das Standardnetz 10.8.0.0/24 verwendet und im Tunnel ist der Laptop die 10.8.0.2/24 und der Zielserver 10.8.0.3/24. Dann sollte folgendes Routing funktionieren:Damit wird saemtlicher Verkehr an den Zielserver im Tunnel geschickt, bis auf die VPN-Verbindung zum Zwischenserver (und alle weiteren Anfragen zum Zwischenserver, kann man ueber iptables noch einschraenken). {zwischenserver} ist die externe IP, wo man den VPN-Server erreichen kann, {gateway} soll fuer den lokalen Gateway stehen, der vorher als Standardgateway eingetragen war.
Auf dem Zielserver braucht's eigentlich nur aktiviertes Routing und das NAT:Dazu kommen natuerlich noch die ueblichen Regeln fuer OpenVPN selbst, auf dem Laptop, dem Zwischen- und Zielserver (sofern diese gefirewallt sind).
Gruss Cae
Du installierst OpenVPN auf allen drei Maschinen und konfigurierst den Zwischenserver als Server und die beiden anderen als Clients. EasyRSA aus /usr/share/doc/openvpn/examples/easy-rsa/2.0/ eignet sich prima, um die Zertifikate auszugeben. Du solltest fuer den Produktivbetrieb mit Zertifikaten arbeiten, fuer einen Test kann man auch mit statischen Schluesseln arbeiten. Ausserdem muss client-to-client aktiviert sein, damit sich Laptop und Zielserver innerhalb des VPNs sehen.captaincode hat geschrieben:Dieses Problem wäre bei dem Vorschlag von Cae nicht. Allerdings verstehe ich da offengesagt nicht, wie dort die Konfiguration genau aussehen würde. Wären dann der Client und der Endserver quasi beides VPN-Clients? Und wie sähe das Routen genau aus?
Angenommen, du hast das Standardnetz 10.8.0.0/24 verwendet und im Tunnel ist der Laptop die 10.8.0.2/24 und der Zielserver 10.8.0.3/24. Dann sollte folgendes Routing funktionieren:
Code: Alles auswählen
laptop# ip route add {zwischenserver} via {gateway}
laptop# ip route replace default via 10.8.0.3 dev tun0
Auf dem Zielserver braucht's eigentlich nur aktiviertes Routing und das NAT:
Code: Alles auswählen
ziel# echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
ziel# sysctl -p # Neueinlesen, Routing jetzt aktiv
ziel# iptables -A FORWARD -s 10.8.0.0/24 -i tun0 -j ACCEPT # Pakete aus dem Tunnel annehmen
ziel# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # Quelladresse umschreiben
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier