novacean
Goto Top

SSH-Traffic über VPN-Server zu spezifischen Server routen

Hallo,
ich habe einen VPN-Server, der mit Server1 und Server2 verbunden ist. Die Verbindung ist permanent.
Nun möchte ich als Client auf den VPN-Server mit einer SSH-Verbindung zugreifen und etwas senden.
Der VPN-Server soll nun entscheiden, an welchen Server der SSH-Traffic weitergeleitet wird.
Wie ich das realisieren soll ist mir leider unklar. Kann ich die Daten samt der SSH-Verbindung, einfach durch den Tunnel an Server1 oder Server2 weiterleiten?
Muss ich eventuell erstmal die Daten "entpacken" und diese werden anschließend vom VPN-Server an Server1 oder Server2 weitergeleitet? Muss der VPN-Server eventuell eine neue SSH-Verbindung zu dem jeweiligen Server aufbauen?

Ziel ist es auf jeden Fall, dass der VPN-Server entscheidet, an welchen Server die Daten weitergeleitet werden. Die Frage nach dem "wie" würde mir auch sehr viel weiterhelfen!

Ich habe hier eine kleine Illustration erstellt, um mein Problem deutlicher zu machen.

ssh_vpn_server

Ebenfalls habe ich hier noch die VPN-Server Konfiguration und die Clientseitige Konfiguration. Eventuell muss dort etwas geändert werden um das Problem zu realisieren?
Ich könnte mir auch vorstellen, dass mit IPTables gearbeitet werden muss. Leider weiss ich nicht genau wie.

VPNServer-Konfiguration
dev tun
proto udp
port 11945
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1 bypass-dhcp"  
#set the dns servers
push "dhcp-option DNS 8.8.8.8"  
push "dhcp-option DNS 8.8.4.4"  
log-append /var/log/openvpn
comp-lzo
duplicate-cn
keepalive 10 120
cipher AES-256-CBC

Client-Konfiguration
dev tun
clientA
proto udp
remote myVPNServer.ddns.net 11945
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
cipher AES-256-CBC

Vielen Dank für eure Hilfe!

Content-Key: 342133

Url: https://administrator.de/contentid/342133

Printed on: April 19, 2024 at 18:04 o'clock

Member: beidermachtvongreyscull
beidermachtvongreyscull Jun 30, 2017 updated at 11:17:08 (UTC)
Goto Top
Mein Problem:

Deine OpenVPN-Server-Config scheint nicht nur für Deinen Client sondern auch für die beiden anzusprechenden Server zu gelten.
Demzufolge, müssten alle im gleichen IP-Bereich sich sehen können.

Nach welchem/n Kriterien/um willst Du denn die Pakete für die Zielserver aufteilen?
Soll der VpnServer als Loadbalancer herhalten?

Mir will nicht in die Birne, warum Du eine Entscheidungslogik auf dem VPN_Server haben willst, wenn doch IP-Pakete an sich genau adressierbar sind. Es sei denn, Du hast eine NAT-Anbindung ins VPN eingebaut. Aber dann ziehst Du Performance raus.
Ich versteh's nicht.
Member: Novacean
Novacean Jun 30, 2017 updated at 11:23:48 (UTC)
Goto Top
Das ist richtig. Die Server können sich untereinander sehen, was auch nicht schlimm ist.
Hier das Szenario :
Der Client möchte eine E-Mail an Server1 versenden. Dies tut der Client auch. Dafür wird erst einmal eine SSH Verbindung mit dem VPN-Server hergestellt. Dieser öffnet den Header der E-Mail und sucht sich die Server1-Adresse heraus. Der VPN-Server realisiert dies und leitet die E-Mail an den Server1 weiter.
Member: beidermachtvongreyscull
beidermachtvongreyscull Jun 30, 2017 updated at 11:45:09 (UTC)
Goto Top
Aha.

PROXY bzw. RELAY sind die Schlüsselworte. face-smile

Wie wäre es mit einem DoveCot oder Postfix_Server auf dem VPN-Server?
Richtig konfiguriert müsste das die Lösung sein für Dein Email-Szenario.
Member: aqui
aqui Jun 30, 2017 updated at 14:22:16 (UTC)
Goto Top
Der VPN-Server soll nun entscheiden, an welchen Server der SSH-Traffic weitergeleitet wird.
Das ist doch kinderleicht...!
Du gibst doch die Zieladresse des Servers 1 oder 2 am VPN Server an und damit sendet der VPN Server es doch schon an den richtigen Server rein aufgrund der Ziel IP Adresse. Simpler Standard seit Jahrzehnten im TCP/IP. Die IP Adresse bestimmt doch den Weg !!
Du hast es ja mit dem Beispiel "Dieser öffnet den Header der E-Mail und sucht sich die Server1-Adresse heraus. Der VPN-Server realisiert dies und leitet die E-Mail an den Server1 weiter." exakt beschrieben wie es ist und auch sein soll
Wo ist da also dein wirkliches Problem ??!!

Anders sieht die Sache aus wenn der SSH Zugang ein VPN für Arme ist:
VPN für Arme - TCP in SSH tunneln mit Putty
und du den Traffic in SSH tunnelst ?! Das erwähnst du aber explizit nicht.
In sofern ist es ja auch fraglich wie du Mails über eine SSH Terminal Session verschickst. So ohne weiteres geht das gar nicht.
Danach stellt sich dann die Frage warum sich der Client nicht auch per OpenVPN einwählt und der ganze Thread hier damit überflüssig wäre ?!

Beachte auch das das OpenVPN Interface ein normales IP Interface ist auf den Servern. Wenn die Server 1 und 2 dort also eine lokale Firewall aktiv haben wirkt die auch dort und blockt ggf. inbound Traffic. Das solltest du nicht vergessen und ggf. anpassen wenn das der Fall sein sollte.

Nochwas zum VPN Server:
  • Du solltest bei nicht Standard Ports keine IANA registrierten Ports verwenden sondern immer Ports aus dem sog. freien Ephemeral Ports Bereich von 49152 bis 65535. Also z.B. 51194
  • Nur Dummies deren ihre Privatsphäre egal ist setzen Google Server als DNS Adressen ein. Jedermann weiss heutzutage das Google damit ein Profil deiner Internet Gewohnheiten erstellt und das mit Drittfirmen vermarktet. Wem sie das sonst noch so schicken willst du sicher besser gar nicht erst wissen. Oder wie dachtest du verdient Google seine Milliarden ?
Wenn also VPN dann nutze sinnigerweise den DNS deines lokalen Providers. Es macht zudem aus Performancesicht auch keinerlei Sinn DNS Requests um den halben Erdball zu schicken. Schon gar nicht wenn man dann auch noch ausgeschnüffelt wird.
Also mal nachdenken wenn dir deine Privatsphäre was wert ist.
Member: Novacean
Novacean Jun 30, 2017 at 14:24:50 (UTC)
Goto Top
Hallo! Erstmal Danke für die Tips zum VPN-Server, die werde ich direkt umsetzen!


Zitat von @aqui:
Du gibst doch die Zieladresse des Servers 1 oder 2 am VPN Server an und damit sendet der VPN Server es doch schon an den richtigen Server rein aufgrund der Ziel IP Adresse. Simpler Standard seit Jahrzehnten im TCP/IP. Die IP Adresse bestimmt doch den Weg !!

Die Zieladresse gebe ich nicht an dem VPN-Server an. Ich erstelle lediglich die ca, key, crt und ovpn Dateien. Es kann sich ein Client an das VPN hängen, welcher eine statische IP zugewiesen bekommt. Somit kenne ich zwar seine IP, kann jedoch aktuell nicht vom Client aus an diese IP eine E-Mail via SSH senden (im Mailprogramm eingestellt), da ich nicht weiss, wie der VPN-Server diese an den Client routen kann.

Hättest du eine weitere Idee?
Member: aqui
aqui Jun 30, 2017 updated at 14:36:34 (UTC)
Goto Top
Dann machst du aber auch kein SSH auf den VPN Server oder hast uns oben Unsinn erzählt. face-sad
Dein Client macht dann also auch eine OpenVPN Connection auf auf den VPN Server und keine SSH Verbindung.
Damit bekommt der Client dann aber auch eine IP aus dem internen OVPN Netz 10.8.0.0 /24 und kann dann problemlos über die IP Adresse ganz gezielt mit allen 3 Servern kommunizieren.
Alle 3 Server hängen IP Adress seitig im inneren OVPN IP Netz. Z.B. 10.8.0.1 = VPN Server, 10.8.0.10 = Server 1 und 10.8.0.20 = Server 2.
Der Client z.B. mit der 10.8.0.3.
Er kann doch jetzt dediziert indem der mit der .10 oder der .20 die Server 1 und 2 Adressen angibt diese dediziert direkt vom Client aus ansprechen !
Was ist also dein Problem ???
Member: Novacean
Novacean Jun 30, 2017 at 14:45:30 (UTC)
Goto Top
Aktuell ist es so, genau. Die Verbindung zwischen Client und VPN-Server möchte ich auf SSH umstellen, so dass ich quasi ins externe VPN eine E-Mail sende. Die IP des Server1 und Server2 sind meinem Client bekannt, auch wenn dieser nicht im VPN ist.
Member: aqui
aqui Jul 01, 2017 updated at 14:52:47 (UTC)
Goto Top
Über SSH kannst du doch keine Emails versenden ?! Wie sollte das gehen ?
Ausnahme ist wenn du einen Tunnel über SSH machst (das oben zitierte "VPN für Arme"). Anders liesse sich ja sonst gar kein Email versenden, denn SSH ist ja erstmal nur Terminal Zugang auf den Shell Prompt.
Wäre ja auch irgendwie Blödsinn mit SSH wenn der VPN Server ein OVPN Server ist und man das besser mit einem klassischen OVPN Zugang machen kann wie es auch üblicherweise gemacht wird.

Fazit: Irgendwie klingt das alles etwas wirr was du willst.
Einerseits ist es problemlos machbar eben über die IP Adressierung wie es seit Jahrzehnten Standard im TCP/IP ist und andereseits erzählst du was mit SSH und Email was technisch so gar nicht geht.
Wir drehen uns im Kreis hier....