iproute2 und ein VPN Tunnel over SSH

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Debian_anwaerter
Beiträge: 76
Registriert: 08.08.2006 17:43:16
Lizenz eigener Beiträge: MIT Lizenz

iproute2 und ein VPN Tunnel over SSH

Beitrag von Debian_anwaerter » 17.09.2012 14:56:23

Hallo Leute,
nach Jahren der eigenen Recherche und Praktischen Tests bzw Versuche, komme ich bei einer Sache nicht mehr ganze weiter.
Wie oben erwähnt habe ich nach diesen TuT https://help.ubuntu.com/community/SSH_VPN eine SSH Verbindung zum Server aufgenommen und ein virtuelles Interface erstellt.

Maschine A(Client): 10.0.0.100
Maschine B(Server): 10.0.0.200

Das Anpingen der beiden Maschinen funktioniert super nach dem das geregelt war habe ich auf dem Maschine B(Server) mein Netzwerk geroutet.

ip route add 192.168.0.0/24 via 10.0.0.200

das anpingen meiner lokalen Maschnen funktioniert auch einwandfrei. Nun steht in diesen Tutorial das man die Internet IP von Maschine A nehme soll und als standart gateway einträgt. Das funktioniert leider nicht weil Maschine B(Server) keine Ausgehende Verbindung stellen kann somit bricht auf dem Server die Internetverbindung zusammen und ich muss diesen neustarten, zur erklärung es ist ein Server von Trystack. Also wollte ich jetzt das der gesamte Internetverkehr über das virtuelle Interface funkiert und nur die SSH verbindung über das Standart gateway läuft.
Wenn ich jetzt zum Beispiel ein:

ip route add 91.0.0.0/8 via 10.0.0.200

Mache kann ich sogar über apt-get update die Pakete installieren von meiner Internet Verbindung aus, also das dürfte also gehen.
Nun wollte ich per iproute2 http://www.thomas-krenn.com/de/wiki/Zwe ... nem_System ein anderes Gateway erschaffen und mit iptables die Ports auf mein virtuelles Interface weitleiten nur funktioniert keine Anweisung. Linux nimmt diese zwar alles an aber immer wenn ich versuche über traceroute http://www.heise.de den weg zufinden nimmt linux den standart gateway.

Hier mal meine bissherige Konfiguration

Code: Alles auswählen

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         8.21.28.17      0.0.0.0         UG    100    0        0 eth0
8.0.0.0         *               255.0.0.0       U     0      0        0 eth0
10.0.0.100      *               255.255.255.255 UH    0      0        0 tun0
192.168.0.0     10.0.0.200      255.255.255.0   UG    0      0        0 tun0

Code: Alles auswählen

root@server:~# ip rule add from 10.0.0.200 lookup admin prio 1000
root@server:~# ip rule show
0:      from all lookup local 
1000:   from 10.0.0.100 lookup admin 
32766:  from all lookup main 
32767:  from all lookup default 

Code: Alles auswählen

root@server:~# ip route show
default via 8.21.28.17 dev eth0  metric 100 
8.0.0.0/8 dev eth0  proto kernel  scope link  src 8.21.28.106 
10.0.0.100 dev tun0  proto kernel  scope link  src 10.0.0.200 
192.168.0.0/24 via 10.0.0.200 dev tun0 

Code: Alles auswählen

root@server:~# ip route add  default via 10.0.0.200 dev tun0 table admin
root@server:~# ip route show table admin
default via 10.0.0.200 dev tun0 
Hat jemand eine Idee wie der iptables Befehl lautet oder ob ich doch vielleicht ein Denkfehler habe oder eine route falsch gesetzt ist? Oder muss ich iproute2 noch irgendwie aktivieren oder neustarten?!

Update:
Habe jetzt ein wenig weiter geschaut, dabei ist mir aufgefallen das man nur eine Route zum virtuellen Interface braucht und der Rest die iptables -t mangle ... macht

Code: Alles auswählen

ip route add  default via 10.0.0.200 dev tun0 table admin
## Wichtig! damit linux weiß ab wann er die Route benutzen soll
ip rule add to 192.168.0.0/24 dev tun0 table admin
## hiermit werden jetzt alle icmp Pakete für google.de markiert
iptables -t mangle -A OUTPUT -p icmp -d 74.125.226.95 -j MARK --set-mark 0x54
# Damit können jetzt die Pakete weitergeleitet werden mit 'dev tun0' gehts nicht
ip rule add fwmark 0x54 table admin
jetzt bekomme ich durch das tun0 device am anderen PC die ICMP anfragen leider bekommt mein Server immernoch keine Antwort.

VG und danke schonmal im vorraus.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: iproute2 und ein VPN Tunnel over SSH

Beitrag von Natureshadow » 20.09.2012 09:51:03

Hallo,

dein Post enthält einige Fehler, die es schwer machen, ihn vollständig zu analysieren. Beispiel:

Code: Alles auswählen

root@server:~# ip rule add from 10.0.0.200 lookup admin prio 1000
root@server:~# ip rule show
0:      from all lookup local
1000:   from 10.0.0.100 lookup admin
32766:  from all lookup main
32767:  from all lookup default 
Das kann so absolut nicht sein, denn die IP-Adresse, die du oben in der Regel eingetragen hast, ist eine andere als die, die ausgegeben wird.

Dann glaube ich, dass du die Routingregen auf dem falschen System anlegst. Du musst die Regeln natürlich auf deinem lokalen System anlegen, nicht auf dem Server.

Dann solltest du noch darüber nachdenkne, ob du irgendwo SNAT / Masquerading machen musst und/oder Rückrouten eintragen musst.

Ich habe hier genau das Setup, das du suchst, zwar mit einem Tinc-Tunnel statt SSH aber sonst identisch. Aufgesetzt mit Shorewall. Wenn du das haben möchtest, meld dich nochmal (oder benutze die Forensuche; ich meine, das mal gepostet zu haben).

-nik

Debian_anwaerter
Beiträge: 76
Registriert: 08.08.2006 17:43:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iproute2 und ein VPN Tunnel over SSH

Beitrag von Debian_anwaerter » 20.09.2012 13:27:59

Hey,
mist habe gedacht das fällt jetzt nicht so auf :D hast natürlich recht, müsste 10.0.0.200 lauten.

Also die bin jetzt schon etwas weiter, so wie es aussieht sind die routen garnicht falsch gelegt zumindest bekomme ich die ICMP Pakete zurück auf den Server wenn es nach tcpdump -i tun0 geht. Nur leider bekommt der ping prozess auf dem Server keine Pakete zugesendet.

Aber ist auch wieder war das ich noch ne eine SNAT auf dem Server setzen musste.

Server:

Code: Alles auswählen

## Mit OUTPUT funktioniert das ganze, nur leider steht in den TuTs das PREROUTING genommen werden soll.
iptables -t mangle -A OUTPUT -p icmp  -j MARK --set-mark 0x80
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
ip rule add fwmark 0x80 table admin
## Wenn ich mich jetzt richtig erinnere :D
ip route add default via 10.0.0.200 dev tun0 table admin
Aber werde mir mal das Programm anschauen hoffe aber immernoch ich kann bei den Basic´s bleiben :D

Wie gesagt bei dem Befehl

Code: Alles auswählen

ip rule add to 192.168.0.0/24 dev tun0 table admin
funktioniert alles auf anhieb und ich kann alle Pakete durchschicken. Hatte auch schon versucht alle ICMP Pakete durchzulassen aber bei der IP 10.0.0.200 gehen die Pakete verloren und kommen nicht an den ping Befehl an.
Da bin ich jetzt halt irgendwie überfragt :?: :?:

Antworten