Comment acheminer sélectivement le trafic réseau via un réseau VPN sous Mac OS X Leopard?

96

Je ne souhaite pas envoyer tout mon trafic réseau vers un réseau VPN lorsque je suis connecté au réseau de mon entreprise (via un réseau VPN) depuis mon domicile. Par exemple, lorsque je travaille à domicile, j'aimerais pouvoir sauvegarder tous mes fichiers sur Time Capsule à domicile et pouvoir toujours accéder au réseau interne de l'entreprise.

J'utilise le client VPN intégré de Leopard. J'ai essayé de décocher "Envoyer tout le trafic via une connexion VPN". Si je le fais, je perdrai l'accès aux sites Web internes de mon entreprise, que ce soit via curl ou le navigateur Web (bien que les adresses IP internes soient toujours accessibles). L'idéal serait que je puisse choisir de manière sélective un ensemble d'adresses IP ou de domaines à acheminer via un réseau privé virtuel et garder le reste sur mon propre réseau. Est-ce réalisable avec le client VPN intégré de Leopard? Si vous avez des recommandations concernant les logiciels, j'aimerais également les entendre.

pomme de newton
la source
2
La première solution ne fonctionnera que sur un VPN PPP. La solution suivante fonctionnera sur un
réseau privé

Réponses:

84

Créez le fichier / etc / ppp / ip-up avec le contenu suivant:

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

en remplaçant <SUBNET>par un sous-réseau, vous souhaitez acheminer via un réseau privé virtuel (par exemple 192.168.0.0/16)

exécuter en tant que root:

chmod 0755 /etc/ppp/ip-up

Ce fichier sera exécuté chaque fois que vous vous connecterez au VPN.

Les paramètres donnés au script:

  • $1: L'interface VPN (par exemple ppp0)
  • $2: Inconnu, était 0dans mon cas
  • $3: IP du serveur VPN
  • $4: Adresse de passerelle VPN
  • $5: Passerelle standard (non-vpn) pour vos connexions LAN
Aleksei Balandin
la source
1
La pointe d'Aleksei a fonctionné pour moi. Je me demande seulement si la première ligne (#! / Bin / sh) fait quoi que ce soit. N'est-ce pas commenté. Je demande ceci puisque je décris ceci pour une utilisation dans notre entreprise et plus simple, mieux c'est :-) Merci, Edgar
Edgar Wieringa Le
1
@ EdgarWieringa: converti votre réponse en commentaire. J'espère que c'est mieux! :)
studiohack
6
@ Edgar - non. Cette première ligne est spéciale. fr.wikipedia.org/wiki/Shebang_(Unix)
James Moore
6
Sur 10.7 / Lion, j’avais plus de chance avec: / sbin / route add 172.16.0.0/16 -interface $ 1 Les arguments que j’ai vus obtenir ip-up sont les suivants: $ 1 = interface VPN, par exemple 'ppp0' $ 2 = '0' (non $ 3 = Votre adresse IP VPN $ 4 = Adresse IP de la passerelle publique VPN $ 5 = Passerelle normale par défaut pour Ethernet / WiFi
Gabe Martin-Dempesy
4
Que se passe-t-il si j'ai plusieurs connexions VPN configurées? Comment puis-je les distinguer /etc/ppp/ip-upafin d’ajouter les itinéraires en conséquence? Le nom VPN convivial sera-t-il passé en tant que 6ème argument ( ipparam)?
Kal
11

Je voulais faire la même chose. Connectez le VPN puis acheminez un réseau supplémentaire via ce VPN. Je me suis retrouvé avec le morceau suivant d'AppleScript:

-- 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

Vous devez modifier "Work"le nom de votre connexion VPN, 192.168.1.1votre adresse de passerelle et 172.16.0.0/16l’adresse du réseau vers lequel vous souhaitez router. Des réseaux supplémentaires peuvent être ajoutés en répétant la dernière ligne avec des adresses différentes.

Martin Hilton
la source
1
(Ajout mineur, pour ceux qui s’interrogent sur cette adresse IP: tout comme l’interrogateur, 172.16.0.0/16 est un espace d’adresse privé, tout comme 10.xxx et 192.168.xx. Il s’agit donc en réalité d’une partie du VPN, et pas un site Web externe ou autre.)
Arjan
1
Alors 192.168.1.1est votre routeur sur le VPN ou le routeur sur le réseau local? Et ne devez-vous pas redéfinir la route par défaut vers votre réseau local?
Jack M.
8

Il existe une fonctionnalité masquée dans les préférences réseau sous MacOS: vous pouvez trier les interfaces .

Ouvrez les Préférences Système -> Réseau -> Cliquez en gearbas à gauche ->Set service Order...

<code> Définir la commande de service ... </ code> Commande VPN

Il est essentiel que vos interfaces réseau soient triées dans l'ordre dans lequel vous souhaitez les utiliser. Si vous souhaitez que TOUTES les données non-LAN accèdent au VPN, placez l'interface VPN en haut. Trier comme ça

  1. VPN
  2. Ethernet
  3. Aéroport

Pas comme ça:

  1. Aéroport
  2. Ethernet
  3. VPN

De cette façon, pas besoin de vérifier le réglage suivant Session Options:

Envoyer tout le trafic via une connexion VPN

✅ Testé sur la L2TP VPNconnexion

GabLeRoux
la source
Je ne pense pas que cela réponde à la question, sauf si l'OP sauvegarde sur Time Machine via Ethernet et se connecte au réseau de la société. Airport (connexion sans fil)
Josh Newman
1
J'ai utilisé l'astuce de démarrage PPP, mais cela n'a pas fonctionné jusqu'à ce que je passe ma connexion VPN en dessous de la connexion sans fil. Ceci est une réponse valide.
Arosboro
Ce serait vraiment la réponse principale! Merci beaucoup, il serait impossible de comprendre!
Andre Soares
1
Cela fonctionne pour les VPN IPSec L2TP, mais PAS pour les VPN IPSec de Cisco. Les VPN Cisco IPSec ne sont pas disponibles dans la boîte de dialogue "Définir l'ordre de service"
goofology
1

J'ai jeté un coup d'œil en ligne pour voir si je pouvais trouver quelque chose et, autant que je sache, vous semblez vouloir utiliser votre ordinateur normalement, tout en étant capable de vous connecter aux sites Web internes de l'entreprise. besoin de mettre en place une table de routage personnalisée.

Ce lien ne s’apparente apparemment qu’à la version 10.4, mais les commandes en ligne de commande peuvent toujours fonctionner.

Alexis Hirst
la source