2011-06-07 12:51:27 +0000 2011-06-07 12:51:27 +0000
44
44

VPN-Verbindung nur für ausgewählte Anwendungen verwenden

Ich habe Zugriff auf ein VPN und möchte es nur für einige Anwendungen verwenden, nicht für alle.

Zum Beispiel: Wenn ich mich mit einem VPN verbinde, möchte ich, dass nur die Anwendungen Opera und Newsbin diese VPN-Verbindung nutzen. Alle anderen Anwendungen, wie z.B. Outlook, sollen die normale Internetverbindung nutzen (solange das VPN verbunden/geöffnet ist).

Afaik ist das nicht möglich, aber ich bin mir nicht ganz sicher. Daher meine Frage: ist es machbar?

Antworten (8)

37
37
37
2013-09-12 01:28:23 +0000

Es ist möglich, dies zu erreichen, zumindest unter Linux (und ich denke, auch unter BSD und OS X). Sie können dies tun, indem Sie:

  • einen Exra-Benutzer für den gesamten VPN-Verkehr anlegen.
  • Erstellen Sie eine extra Routing-Tabelle mit 1 Standard-Route über das VPN.
  • Konfigurieren Sie Netfilter über Iptables so, dass die andere Routing-Tabelle für den gesamten Verkehr verwendet wird, der von einer bestimmten Benutzer-ID ausgeht.
  • Führen Sie die Anwendungen, die das VPN nutzen sollen, unter ihrem eigenen Benutzer aus. Zum Beispiel mit ‘sudo’.

Es gibt Skripte, um die obigen Schritte auszuführen hier oder es gibt eine andere Anleitung hier .

Hier ist eine ausführliche Anleitung für die Weiterleitung der Übertragung über ein VPN (mit einem eigenen VPN-Server.

14
14
14
2011-07-07 16:01:13 +0000

Sie könnten die Windows-Firewall verwenden, um dies zu erreichen (vorausgesetzt, Sie verwenden Win 7 oder Vista) - Ich habe eine Anleitung dazu geschrieben

  1. Verbinden Sie sich wie gewohnt mit Ihrem VPN.

  2. Öffnen Sie das Netzwerk- und Freigabecenter - klicken Sie mit der rechten Maustaste auf das Symbol für die Internetverbindung in der Taskleiste und wählen Sie “Netzwerk- und Freigabecenter öffnen” (siehe unten)

  3. Sie sollten (mindestens) zwei Netzwerke unter “Ihre aktiven Netzwerke anzeigen” sehen - Ihre VPN-Verbindung und eines namens “Netzwerk” - auch bekannt als Ihre ISP-Verbindung. Stellen Sie sicher, dass Ihr VPN ein “Öffentliches Netzwerk” und Ihre ISP-Verbindung ein “Heimnetzwerk” ist. Wenn Sie eine der beiden Verbindungen ändern müssen, klicken Sie darauf und ein Optionsfenster wird angezeigt (siehe unten).

  4. Gehen Sie zur Systemsteuerung und klicken Sie auf “System und Sicherheit” (siehe unten).

  5. Klicken Sie in dem sich öffnenden Fenster auf Windows-Firewall (siehe unten).

  6. Klicken Sie im Fenster Windows-Firewall im linken Bereich auf Erweiterte Einstellungen (siehe unten). Hinweis: Sie müssen als Administrator eingeloggt sein, um Änderungen an den Firewall-Einstellungen vornehmen zu können.

  7. Sie sollten ein Fenster mit dem Titel Windows-Firewall mit erweiterter Sicherheit sehen. Klicken Sie in diesem Fenster auf Eingehende Regeln (siehe unten).

  8. Im rechten Bereich sehen Sie eine Option für eine neue Regel. Klicken Sie diese an (siehe unten).

  9. Gehen Sie im Assistenten für neue eingehende Regeln (der erscheinen sollte) wie folgt vor:

  10. Wiederholen Sie Schritt 9 für ausgehende Regeln.

5
5
5
2017-05-29 07:03:30 +0000

Ich habe das unter Windows gemacht. Die Idee ist, die ausgehenden Netzwerkpakete an die Schnittstelle des VPN zu binden. Die Leute schlagen dafür ForceBindIP vor, aber dank dieser Antwort bin ich auf die Idee gekommen, Proxy zu verwenden. Der Nachteil dieser Methode ist, dass entweder Ihre Anwendungen Proxy-Unterstützung haben müssen oder Sie müssen einen Proxifier verwenden (siehe hier und hier ). Der Vorteil ist, dass Sie auf diese Weise die Verwendung von VPN im Browser mit FoxyProxy oder ähnlichen Add-ons auf bestimmte Domains beschränken können.

Ich verwende 3proxy im SOCKS-Modus und binde dessen externes Interface an die IP des VPN. Für die VPN-Verbindung wird OpenVPN verwendet.

In meiner .ovpn-Datei (client, dev tun) habe ich diese Zeilen hinzugefügt:

route-nopull
route 0.0.0.0 0.0.0.0 vpn_gateway
pull-filter ignore "dhcp-option DNS "
script-security 2
up 'c:\path\to\up.cmd'
down 'c:\path\to\down.cmd'

route-nopull um vom Server gepushte Routen zu ignorieren. In Ihrem Fall müssen Sie möglicherweise stattdessen redirect-gateway auskommentieren.

route, um eine Route für diese Schnittstelle hinzuzufügen, ohne diese Zeile wird sie nicht verwendet, selbst wenn die App an sie gebunden ist.

pull-filter, um gepushte DNS zu erhalten, die sonst zusammen mit den gepushten Routen durch route-nopull verworfen werden. Diese Option wird ab OpenVPN 2.4 unterstützt, wenn Sie bei OpenVPN 2.3 (letzte Version für Windows XP) bleiben müssen, müssen Sie stattdessen zwei dhcp-option DNS x.x.x.x-Zeilen mit hartcodierten IPs hinzufügen.

script-security 2, um Skripting zu erlauben.

up Skript:

cd %~dp0
echo auth none> 3proxy-openvpn.conf
echo internal 127.0.0.1>> 3proxy-openvpn.conf
echo external %4>> 3proxy-openvpn.conf
echo socks>> 3proxy-openvpn.conf
start /b 3proxy.exe 3proxy-openvpn.conf

down Skript:

taskkill /f /im 3proxy.exe

Nachdem Sie sich mit dieser Konfiguration mit dem VPN verbunden haben, wird der 3proxy.exe-Prozess gestartet und ein auf den lokalen Host beschränkter SOCKS5-Proxy mit DNS-Auflösungsfunktion wird auf dem 1080-Port ausgeführt.

4
4
4
2017-10-25 10:36:54 +0000

Sie können das mit Netzwerk-Namensräumen unter GNU/Linux machen.

So führen Sie OpenVPN und eine einzelne Anwendung in einem separaten Namespace aus:

Erstellen Sie den Netzwerk-Namespace net:

ip netns add myvpn

Starten Sie das Loopback-Interface im Namespace (sonst funktionieren viele Dinge nicht wie erwartet…)

ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up

Erstellen Sie virtuelle Netzwerk-Interfaces, über die OpenVPN (im Namespace) auf das reale Netzwerk zugreifen kann, und konfigurieren Sie die Schnittstelle im Namensraum (vpn1) so, dass sie die Schnittstelle außerhalb des Namensraums (vpn0) als Standardgateway verwendet

ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns myvpn up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec myvpn ip addr add 10.200.200.2/24 dev vpn1
ip netns exec myvpn ip route add default via 10.200.200.1 dev vpn1

& Aktivieren Sie IPv4-Routing und NAT für die Schnittstelle im Namensraum. Da meine Standardschnittstelle eine drahtlose ist, verwende ich wl+ (was mit wlan0, wlp3s0, etc. übereinstimmen kann. ) in iptables für die ausgehende Schnittstelle; wenn Sie eine kabelgebundene Schnittstelle verwenden, sollten Sie wahrscheinlich en+ (oder br+ für eine überbrückte Schnittstelle) verwenden

iptables -A INPUT \! -i vpn0 -s 10.200.200.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o wl+ -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1

Konfigurieren Sie den Nameserver so, dass er innerhalb des Namespaces verwendet wird

mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf

Fast fertig, jetzt sollten wir vollen Netzwerkzugriff im Namespace

ip netns exec myvpn ping www.google.com

Schließlich starten wir OpenVPN im Namespace

ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf

Sobald tun0 im Namespace läuft, sind wir bereit, das gewünschte Programm zu starten!

while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime

SOURCE-Artikel.

Außerdem gibt es im Source-Artikel ein Wrapper-Skript, das Sie für Ihre Bedürfnisse anpassen können.

1
1
1
2018-07-12 16:19:29 +0000

Wenn Sie unter Linux arbeiten und openVPN verwenden, funktioniert VPNShift wunderbar.

0
0
0
2019-09-12 14:47:21 +0000

Ich weiß, dass dies eine viel zu späte Antwort ist, über die ich gerade gestolpert bin, aber für den Fall, dass es für jemanden relevant ist, hatte ich die gleiche Situation, in der ich meinen Arbeitsverkehr durch das VPN laufen lassen wollte, aber nicht wollte, dass mein persönlicher Verkehr durch ihre Proxyserver und so geleitet wird. Also habe ich damals Win7 benutzt, aber auf vielen ihrer Systeme lief noch WinXP. Schließlich gaben sie mir einen zweiten PC für die Arbeit, was das Problem löste (eine Switchbox, die an beide PCs angeschlossen war, so dass ich einfach hin- und herspringen konnte), aber davor hatte ich ein virtuelles XP, das ich als mein Arbeits-OS einrichtete… Ich würde VPN in von besagter VM zu verbinden, um zu arbeiten, die meine persönlichen OS Verkehr frei von der Arbeit Einschränkungen und Spionage verlassen würde.

0
0
0
2018-01-16 01:54:06 +0000

Greifen Sie einfach über eine virtuelle Maschine auf das VPN zu.

  1. Erstellen Sie eine VM, dann von innerhalb der VM…
  2. Installieren Sie die ‘ausgewählten’ Anwendungen
  3. Konfigurieren Sie das VPN

Verwenden Sie die “ausgewählten” Anwendungen von der VM aus, anstatt sie von der Host-Maschine aus zu verwenden.

P.S. Sie müssen der VM natürlich Netzwerkzugriff über den Host-Rechner geben.

-1
-1
-1
2011-06-10 22:32:46 +0000

Nein, ist es nicht. Jedenfalls nicht mit normalen Mitteln. Routing ist Routing. Routing arbeitet auf der unteren Ebene des OSI-Modells. Was passieren muss, ist, dass es auf der Anwendungsebene (weiter oben) erkannt wird, welches Programm Sie verwenden usw. NORMALE Router erlauben es Ihnen nicht, Routen auf der Basis von Anwendungen oder Portnummern zu konfigurieren.

Ich denke, es ist dennoch möglich. Router können Ports sehen, so dass man sie nach Portnummern filtern und den Verkehr über verschiedene Routen schicken kann. ich bin mir sicher, dass ich vor einer Weile etwas über Cisco-Router gelesen habe, die das können. Sie sind allerdings nicht billig und es sind Business-Router, die eine Menge an Konfiguration erfordern, und ich vermute, Sie wollen etwas Einfaches für den Heimgebrauch.

Zusammengefasst ist es der Router, der diese Funktion benötigt, und Ihre Standard-Router für den Heimgebrauch, sogar die Business-Router unterstützen diese Funktionen nicht. Nur die fortgeschrittenen Modelle von Cisco und Sonicwalls bieten diese Funktionen.