
Ich habe OpenVPN so eingerichtet, dass der gesamte Datenverkehr über das VPN geleitet wird. Ich frage mich, ob es eine Möglichkeit gibt, umzuschalten, ob der gesamte Datenverkehr geleitet wird oder nur der Datenverkehr, der für dieses Netzwerk pro Client bestimmt ist.
Wenn ich mich beispielsweise in einem nicht vertrauenswürdigen Netzwerk befinde, möchte ich, dass mein gesamter Datenverkehr über das VPN geleitet wird. Später jedoch, wenn ich mich in einem vertrauenswürdigen Netzwerk befinde, möchte ich möglicherweise nur SSH-Zugriff auf die Rechner, aber nicht, dass der gesamte Datenverkehr geleitet wird, da dies unnötig langsam wäre.
Ist das möglich?
Antwort1
Wenn der Server eine Standardroute für Sie veröffentlicht, können Sie diese ignorieren, beispielsweise mit
route delete default tun0
und Sie können Ihre Standardroute vor der VPN-Verbindung auf die gleiche Weise wiederherstellen.
Wenn der Server hingegen eine solche Route nicht veröffentlicht, können Sie Ihren gesamten Datenverkehr über das VPN umleiten. In diesem Fall müssen Sie jedoch sicherstellen, dass (a) der VPN-Server dafür gerüstet ist und weiß, wie er Ihren Datenverkehr per NAT/Routenverbindung ins Internet leitet und mit den Antworten umgeht, und (b) dass Sie nicht über mehrere Standardrouten verfügen und dass Sie den VPN-Endpunkt trotzdem erreichen können.
Kurz gesagt: Wenn Sie die Kontrolle über Ihren Kunden haben, dann haben Sie auch die Kontrolleunter anderemseine Routing-Tabellen, und Sie können sie einrichten, wie Sie möchten. Routingwenigeran den Server weiterzuleiten, als er möchte, ist einfach; Routingmehrals es erfordern könnte, bedarf seiner Mitarbeit oder zumindest seiner Fähigkeit; aber beides ist möglich.
Antwort2
Basierend auf der von @MadHatter vorgeschlagenen Idee, eine Route zu löschen, habe ich einen Alias erstellt, der im Wesentlichen Folgendes tut:
sudo openvpn --config /path/to/config --route-nopull
sudo ip route add x.x.x.x/24 dev tun0
Wo x.x.x.x/24
ist der Pfad des internen Netzwerks, mit dem Sie über das VPN eine Verbindung herstellen.
Jetzt kann ich diesen Alias verwenden, wenn ich nur den Datenverkehr für das interne Netzwerk über VPN leiten möchte, und die Konfiguration ohne verwenden, --route-nopull
wenn ich möchte, dass der gesamte Datenverkehr über das VPN geleitet wird.