JackCarver
Well-known Member
Hallo Community,
da die Frage danach aufkam möchte ich euch hier mal eine Methode vorstellen, mit der man auch unter Linux eine VPN Kaskade nutzen kann. Ich geh in dieser Anleitung nur auf das Routing ein, das dazu nötig ist. Wie man sich zu den jeweiligen Servern verbindet (GUI/Terminal) bleibt jedem selbst überlassen. Im Test hatte ich das Terminal zum Verbinden genutzt.
Diese Methode ist vom Routing her etwas aufwändiger, hat aber den Vorteil, dass man die Kaskade auch wieder Stück für Stück abbauen kann und dabei stets über einen VPN Server verbunden ist, bis man zu guter Letzt wieder über den Router surft. Die hinzugefügten Routen werden dabei alle wieder selbständig gelöscht, mit Ausnahme einer einzigen, die per Hand zu löschen ist. Dazu später mehr. Die Kaskade soll bei max 4 Servern liegen, dabei können natürlich auch kürzere Kaskaden genutzt werden.
Vorbereitung:
Zunächst einmal lädt man sich die Linux PP Configs herunter, ich hatte im Test die Config ppConfig_linux.zip genutzt.
Im Test hatte ich folgende Kaskade aufgebaut:
1, Prag
2, Steinsel
3, Paris
4, Huenenberg
Zu diesen 4 genannten Verbindungen editiert man die jeweilige .ovpn Datei danach, dass in allen die Option:
hinzugefügt wird. Diese verhindert das automatische Anpassen der Routen durch OpenVPN, das wir selbst erledigen müssen.
1, Verbindung:
Man verbindet sich zu PP Prag und notiert sich die externe IP des Servers (kann aus dem Log entnommen werden), sowie die interne VPN IP des Servers (via ifconfig über die IP bei tun0).
Dazu gibt es folgende Möglichkeiten:
Hat der Client unter tun0 die IP 10.41.12.n mit n < 128, so ist die interne Server-IP die 10.41.12.1.
Hat der Client die IP 10.41.12.n mit n > 129, so ist die interne Server-ip die 10.41.12.129.
Server-IP (extern): 1.2.3.4
Server-IP (interne VPN): 10.41.12.129
Router-IP: 192.168.1.1
Routing:
Nun testet man zb unter www.whoer.net ob sich die IP nun auf Prag geändert hat.
2, Verbindung:
Man verbindet sich zu PP Steinsel und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 5.6.7.8
Server-IP (interne VPN): 10.14.21.129
Server-IP (interne VPN IP des Vorgängers): 10.41.12.129
Routing:
Auch hier sollte sich über whoer nun eine Lux-IP zeigen.
3, Verbindung:
Man verbindet sich zu PP Paris und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 9.10.11.12
Server-IP (interne VPN): 10.17.12.1
Server-IP (interne VPN IP des Vorgängers): 10.14.21.129
Routing:
4, Verbindung:
Man verbindet sich zu PP Huenenberg und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 13.14.15.16
Server-IP (interne VPN): 10.24.13.1
Server-IP (interne VPN IP des Vorgängers): 10.17.12.1
Routing:
Damit hat man zum Schluss die Kaskade über 4 Server. Trennt man nun die Verbindung zu Huenenberg, so surft man wieder über Paris, trennt man Paris so ruft man wieder über Steinsel usw. Beim Trennen der einzelnen Verbindungen werden alle Routen, die über irgendeine interne VPN Server IP gehen automatisch gelöscht, übrig bleibt nur die Route die über den Router nach PP Prag geht. Man kann sich das über ein:
anzeigen lassen.
Diese Route löscht man über ein:
Damit ist die Routing Tabelle von allen Einträgen wieder bereinigt.
Man kann sich die ganze Schreibarbeit der Routing Befehle auch in einem Skript automatisieren. Die Routing Befehle oben kann man ja fest skripten und lässt externe Server-IP, die interne Server VPN IP sowie die interne VPN IP des Vorgängers jeweils als Kommandozeilenparameter $2, $3, $4. Der erste Parameter $1 könnte zb die Anzahl der Verbindungen sein, so kann man im Skript über ne if/else Auswahl die jeweiligen Routing Befehle ausführen.
Zum Bspl für die erste Verbindung:
Die 1 leitet in der if/else Anweisung zu den ersten Routing Befehlen, wie oben unter 1, Verbindung gezeigt.
Beispiel zweite Verbindung:
Die 2 leitet zu den Routing Befehlen der zweiten Verbindung mit den nötigen IPs. Das ganze nur als Möglichkeit das zu automatisieren.
Falls Fragen sind, fragen
Gruß Jack
da die Frage danach aufkam möchte ich euch hier mal eine Methode vorstellen, mit der man auch unter Linux eine VPN Kaskade nutzen kann. Ich geh in dieser Anleitung nur auf das Routing ein, das dazu nötig ist. Wie man sich zu den jeweiligen Servern verbindet (GUI/Terminal) bleibt jedem selbst überlassen. Im Test hatte ich das Terminal zum Verbinden genutzt.
Diese Methode ist vom Routing her etwas aufwändiger, hat aber den Vorteil, dass man die Kaskade auch wieder Stück für Stück abbauen kann und dabei stets über einen VPN Server verbunden ist, bis man zu guter Letzt wieder über den Router surft. Die hinzugefügten Routen werden dabei alle wieder selbständig gelöscht, mit Ausnahme einer einzigen, die per Hand zu löschen ist. Dazu später mehr. Die Kaskade soll bei max 4 Servern liegen, dabei können natürlich auch kürzere Kaskaden genutzt werden.
Vorbereitung:
Zunächst einmal lädt man sich die Linux PP Configs herunter, ich hatte im Test die Config ppConfig_linux.zip genutzt.
Im Test hatte ich folgende Kaskade aufgebaut:
1, Prag
2, Steinsel
3, Paris
4, Huenenberg
Zu diesen 4 genannten Verbindungen editiert man die jeweilige .ovpn Datei danach, dass in allen die Option:
Code:
route-noexec
1, Verbindung:
Man verbindet sich zu PP Prag und notiert sich die externe IP des Servers (kann aus dem Log entnommen werden), sowie die interne VPN IP des Servers (via ifconfig über die IP bei tun0).
Dazu gibt es folgende Möglichkeiten:
Hat der Client unter tun0 die IP 10.41.12.n mit n < 128, so ist die interne Server-IP die 10.41.12.1.
Hat der Client die IP 10.41.12.n mit n > 129, so ist die interne Server-ip die 10.41.12.129.
Server-IP (extern): 1.2.3.4
Server-IP (interne VPN): 10.41.12.129
Router-IP: 192.168.1.1
Routing:
Code:
sudo route add 1.2.3.4/32 gw 192.168.1.1
sudo route add -net 0.0.0.0/1 gw 10.41.12.129
sudo route add -net 128.0.0.0/1 gw 10.41.12.129
Nun testet man zb unter www.whoer.net ob sich die IP nun auf Prag geändert hat.
2, Verbindung:
Man verbindet sich zu PP Steinsel und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 5.6.7.8
Server-IP (interne VPN): 10.14.21.129
Server-IP (interne VPN IP des Vorgängers): 10.41.12.129
Routing:
Code:
sudo route add 5.6.7.8/32 gw 10.41.12.129
sudo route add -net 0.0.0.0/2 gw 10.14.21.129
sudo route add -net 64.0.0.0/2 gw 10.14.21.129
sudo route add -net 128.0.0.0/2 gw 10.14.21.129
sudo route add -net 192.0.0.0/2 gw 10.14.21.129
Auch hier sollte sich über whoer nun eine Lux-IP zeigen.
3, Verbindung:
Man verbindet sich zu PP Paris und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 9.10.11.12
Server-IP (interne VPN): 10.17.12.1
Server-IP (interne VPN IP des Vorgängers): 10.14.21.129
Routing:
Code:
sudo route add 9.10.11.12/32 gw 10.14.21.129
sudo route add -net 0.0.0.0/3 gw 10.17.12.1
sudo route add -net 32.0.0.0/3 gw 10.17.12.1
sudo route add -net 64.0.0.0/3 gw 10.17.12.1
sudo route add -net 96.0.0.0/3 gw 10.17.12.1
sudo route add -net 128.0.0.0/3 gw 10.17.12.1
sudo route add -net 160.0.0.0/3 gw 10.17.12.1
sudo route add -net 192.0.0.0/3 gw 10.17.12.1
sudo route add -net 224.0.0.0/3 gw 10.17.12.1
4, Verbindung:
Man verbindet sich zu PP Huenenberg und notiert sich wieder die externe Server-IP, sowie die interne VPN IP des Servers:
Server-IP (extern): 13.14.15.16
Server-IP (interne VPN): 10.24.13.1
Server-IP (interne VPN IP des Vorgängers): 10.17.12.1
Routing:
Code:
sudo route add 13.14.15.16/32 gw 10.17.12.1
sudo route add -net 0.0.0.0/4 gw 10.24.13.1
sudo route add -net 16.0.0.0/4 gw 10.24.13.1
sudo route add -net 32.0.0.0/4 gw 10.24.13.1
sudo route add -net 48.0.0.0/4 gw 10.24.13.1
sudo route add -net 64.0.0.0/4 gw 10.24.13.1
sudo route add -net 80.0.0.0/4 gw 10.24.13.1
sudo route add -net 96.0.0.0/4 gw 10.24.13.1
sudo route add -net 112.0.0.0/4 gw 10.24.13.1
sudo route add -net 128.0.0.0/4 gw 10.24.13.1
sudo route add -net 144.0.0.0/4 gw 10.24.13.1
sudo route add -net 160.0.0.0/4 gw 10.24.13.1
sudo route add -net 176.0.0.0/4 gw 10.24.13.1
sudo route add -net 192.0.0.0/4 gw 10.24.13.1
sudo route add -net 208.0.0.0/4 gw 10.24.13.1
sudo route add -net 224.0.0.0/4 gw 10.24.13.1
sudo route add -net 240.0.0.0/4 gw 10.24.13.1
Damit hat man zum Schluss die Kaskade über 4 Server. Trennt man nun die Verbindung zu Huenenberg, so surft man wieder über Paris, trennt man Paris so ruft man wieder über Steinsel usw. Beim Trennen der einzelnen Verbindungen werden alle Routen, die über irgendeine interne VPN Server IP gehen automatisch gelöscht, übrig bleibt nur die Route die über den Router nach PP Prag geht. Man kann sich das über ein:
Code:
route -n
Diese Route löscht man über ein:
Code:
sudo route del 1.2.3.4/32 gw 192.168.1.1
Damit ist die Routing Tabelle von allen Einträgen wieder bereinigt.
Man kann sich die ganze Schreibarbeit der Routing Befehle auch in einem Skript automatisieren. Die Routing Befehle oben kann man ja fest skripten und lässt externe Server-IP, die interne Server VPN IP sowie die interne VPN IP des Vorgängers jeweils als Kommandozeilenparameter $2, $3, $4. Der erste Parameter $1 könnte zb die Anzahl der Verbindungen sein, so kann man im Skript über ne if/else Auswahl die jeweiligen Routing Befehle ausführen.
Zum Bspl für die erste Verbindung:
Code:
sudo skriptname 1 1.2.3.4 192.168.2.1 10.41.12.129
Die 1 leitet in der if/else Anweisung zu den ersten Routing Befehlen, wie oben unter 1, Verbindung gezeigt.
Beispiel zweite Verbindung:
Code:
sudo skriptname 2 5.6.7.8 10.41.12.129 10.14.21.129
Die 2 leitet zu den Routing Befehlen der zweiten Verbindung mit den nötigen IPs. Das ganze nur als Möglichkeit das zu automatisieren.
Falls Fragen sind, fragen
Gruß Jack