So leiten Sie den Netzwerkverkehr unter Mac OS X Leopard selektiv über VPN weiter

96

Ich möchte meinen gesamten Netzwerkverkehr nicht an VPN senden, wenn ich von zu Hause aus (über VPN) mit dem Netzwerk meines Unternehmens verbunden bin. Wenn ich beispielsweise von zu Hause aus arbeite, möchte ich in der Lage sein, alle meine Dateien in der Time Capsule zu Hause zu sichern und trotzdem auf das interne Netzwerk des Unternehmens zuzugreifen.

Ich verwende den integrierten VPN-Client von Leopard. Ich habe versucht, das Kontrollkästchen "Alle Daten über eine VPN-Verbindung senden" zu deaktivieren. Wenn ich das tue, verliere ich den Zugriff auf die internen Websites meines Unternehmens, sei es per Curl oder über den Webbrowser (obwohl interne IP-Adressen noch erreichbar sind). Es wäre ideal, wenn ich eine Reihe von IP-Adressen oder Domänen auswählen könnte, die über VPN weitergeleitet werden sollen, und den Rest in meinem eigenen Netzwerk behalten könnte. Ist dies mit Leopards integriertem VPN-Client möglich? Wenn Sie Software-Empfehlungen haben, würde ich sie gerne auch hören.

Newtonapple
quelle
2
Die erste Lösung funktioniert nur mit einem PPP-VPN. Die folgende Lösung funktioniert auf einem Cisco - VPN (und anderen Arten nichts spezifisch für Cisco) superuser.com/questions/91191/...
dr jimbob

Antworten:

84

Erstellen Sie die Datei / etc / ppp / ip-up mit folgendem Inhalt:

#!/bin/sh
/sbin/route add <SUBNET> -interface $1 

<SUBNET>Wenn Sie das Subnetz ersetzen , möchten Sie das Routing über VPN durchführen (z. B. 192.168.0.0/16).

als root ausführen:

chmod 0755 /etc/ppp/ip-up

Diese Datei wird jedes Mal ausgeführt, wenn Sie eine Verbindung zu VPN herstellen.

Die Parameter für das Skript:

  • $1: Die VPN-Schnittstelle (zB ppp0)
  • $2: Unbekannt, war 0in meinem Fall
  • $3: IP des VPN-Servers
  • $4: VPN-Gateway-Adresse
  • $5: Reguläres (nicht-vpn) Gateway für Ihre LAN-Verbindungen
Aleksei Balandin
quelle
1
Das Trinkgeld von Aleksei hat für mich funktioniert. Ich frage mich nur, ob die erste Zeile (#! / Bin / sh) etwas tut. Ist es nicht auskommentiert? Ich frage dies, da ich dies für die Verwendung in unserer Firma beschreibe und je einfacher
Edgar Wieringa
1
@EdgarWieringa: Ihre Antwort wurde in einen Kommentar umgewandelt. Hoffe das ist besser! :)
studiohack
6
@Edgar - nein. Diese erste Zeile ist etwas Besonderes. en.wikipedia.org/wiki/Shebang_(Unix)
James Moore
6
Auf 10.7 / Lion hatte ich besseres Glück mit: / sbin / route add 172.16.0.0/16 -interface $ 1 Die Argumente, die ich beim IP-Up-Empfang gesehen habe, sind: $ 1 = VPN-Schnittstelle, zB 'ppp0' $ 2 = '0' (nicht sicher, was dieser Wert ist) $ 3 = Ihre VPN-IP $ 4 = IP-Adresse des öffentlichen VPN-Gateways $ 5 = Normales Standard-Gateway für Ethernet / WLAN
Gabe Martin-Dempesy
4
Was passiert, wenn ich zwei oder mehr VPN-Verbindungen konfiguriert habe? Wie unterscheide ich mich darin, /etc/ppp/ip-updamit ich die Routen entsprechend hinzufügen kann? Wird der benutzerfreundliche VPN-Name als sechstes Argument übergeben ( ipparam)?
Kal
11

Ich wollte etwas Ähnliches machen. Verbinden Sie das VPN und routen Sie dann ein zusätzliches Netzwerk über dieses VPN. Am Ende habe ich Folgendes von Applescript erhalten:

-- Connect Work VPN

tell application "System Events"
    tell network preferences
        tell current location
            tell service "Work"
                connect
                tell current configuration
                    repeat until get connected = true
                        delay 1
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

set gateway to "192.168.1.1"

do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges

Sie müssen "Work"den Namen Ihrer VPN-Verbindung, 192.168.1.1Ihre Gateway-Adresse und 172.16.0.0/16die Adresse des Netzwerks ändern , zu dem Sie eine Route einrichten möchten. Zusätzliche Netzwerke können hinzugefügt werden, indem die letzte Zeile mit anderen Adressen wiederholt wird.

Martin Hilton
quelle
1
(Kleiner Zusatz für diejenigen, die sich über diese IP-Adresse wundern: Wie der Fragesteller bereits sagte, ist 172.16.0.0/16 ein privater Adressraum wie 10.xxx und 192.168.xx. Es ist also tatsächlich Teil des VPN. und keine externe Website oder was auch immer.)
Arjan
1
Ist 192.168.1.1Ihr Router im VPN oder der Router im LAN? Und müssen Sie die Standardroute nicht auf Ihr LAN zurücksetzen?
Jack M.
8

In den Netzwerkeinstellungen unter MacOS gibt es eine versteckte Funktion : Sie können Schnittstellen sortieren .

Öffnen Sie die Systemeinstellungen -> Netzwerk -> Klicken Sie gearunten links auf ->Set service Order...

<code> Serviceauftrag festlegen ... </ code> VPN-Bestellung

Es ist wichtig, dass Sie Ihre Netzwerkschnittstellen in der Reihenfolge sortieren, in der sie verwendet werden sollen. Wenn ALLE Nicht-LAN-Daten an das VPN gesendet werden sollen, stellen Sie die VPN-Schnittstelle oben ein. Sortieren Sie wie folgt

  1. VPN
  2. Ethernet
  3. Flughafen

So nicht:

  1. Flughafen
  2. Ethernet
  3. VPN

Auf diese Weise müssen Sie die folgenden Einstellungen nicht überprüfen Session Options:

Senden Sie den gesamten Datenverkehr über eine VPN-Verbindung

✅ Bei L2TP VPNVerbindung getestet

GabLeRoux
quelle
Ich denke nicht, dass dies die Frage beantwortet, es sei denn, das OP
Josh Newman
1
Ich habe den ppp-Start-Trick verwendet, aber es hat nicht funktioniert, bis ich meine VPN-Verbindung unter die WLAN-Verbindung verschoben habe. Dies ist eine gültige Antwort.
Arosboro
Es wird wirklich die Hauptantwort sein! Vielen Dank, es wäre unmöglich herauszufinden!
Andre Soares
1
Dies funktioniert für L2TP-IPSec-VPNs, NICHT jedoch für Cisco-IPSec-VPNs. Cisco IPSec VPNs sind im Dialogfeld "Set Service Order"
Serviceauftrag festlegen)
1

Ich habe online nachgeschaut, ob ich etwas finden kann. Soweit ich weiß, möchten Sie Ihren Computer wie gewohnt verwenden und gleichzeitig eine Verbindung zu firmeninternen Websites herstellen müssen eine benutzerdefinierte Routing-Tabelle einrichten.

Dieser Link gilt anscheinend nur für 10.4, aber das Kommandozeilen-Zeug funktioniert möglicherweise immer noch.

Alexis Hirst
quelle