Ce qui suit fonctionne pour moi. Exécutez-les après vous être connecté au VPN Cisco. (J'utilise le client Cisco intégré d'OS X, pas le client de marque Cisco.)
sudo route -nv add -net 10 -interface utun0
sudo route change default 192.168.0.1
Remplacez 10
dans la première commande le réseau situé de l'autre côté du tunnel.
Remplacez 192.168.0.1
par la passerelle de votre réseau local.
Je l'ai mis dans un script bash, comme ceci:
$ cat vpn.sh
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Run this as root"
exit 1
fi
route -nv add -net 10 -interface utun0
route change default 192.168.0.1
J'ai également trouvé une explication sur la manière de l' exécuter automatiquement lorsque vous vous connectez au VPN, mais il est tard vendredi et je n'ai pas envie de l'essayer :)
Modifier:
Depuis, j'ai quitté le travail où j'utilisais le réseau privé virtuel Cisco. C'est donc en mémoire.
La 10
première commande est le réseau que vous souhaitez router sur le VPN. 10
est la main courte pour 10.0.0.0/8
. Dans le cas de Tuan Anh Tran, il semble que le réseau soit 192.168.5.0/24
.
Quant à la passerelle à spécifier dans la deuxième commande, ce devrait être votre passerelle locale. Lorsque vous vous connectez à un VPN qui empêche le tunneling fractionné, il applique cette stratégie en modifiant vos tables de routage afin que tous les paquets soient routés sur l'interface virtuelle. Par conséquent, vous souhaitez rétablir votre itinéraire par défaut, tel qu’il était avant d’être connecté au VPN .
Le moyen le plus simple de comprendre la passerelle consiste à s'exécuter netstat -rn
avant de vous connecter au VPN et à regarder l'adresse IP à droite de la destination "par défaut". Par exemple, voici à quoi cela ressemble sur ma boîte en ce moment:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 29 0 en1
10.0.1/24 link#5 UCS 3 0 en1
10.0.1.1 0:1e:52:xx:xx:xx UHLWIi 55 520896 en1 481
10.0.1.51 7c:c5:37:xx:xx:xx UHLWIi 0 1083 en1 350
10.0.1.52 127.0.0.1 UHS 0 0 lo0
Ma passerelle est 10.0.1.1
- elle se trouve à droite de la destination "par défaut".
En utilisant les informations de mehaase, j'ai écrit un script Python qui simplifie vraiment ce processus sur Mac. Lorsque vous l'exécutez, le script enregistre vos informations de pare-feu, lance le client AnyConnect, attend la connexion, puis corrige les routes et le pare-feu. Il suffit de lancer le script à partir de 'terminal'.
la source
Le script Python de cette réponse précédente était utile, mais il ne tenait pas compte des itinéraires utilisés par AnyConnect pour prendre en charge d'autres interfaces sur le périphérique (telles que les interfaces VMware). Il n'était pas non plus capable de gérer plusieurs réseaux VPN.
Voici le script que j'utilise:
la source
Il est fort probable que votre administrateur souhaite configurer des connexions VPN pour utiliser le routage local pour les sous-réseaux 10.121. * Et 10.122. * Et laisser la machine distante (votre ordinateur personnel) acheminer le reste des demandes. (cela leur évite de la bande passante et de la responsabilité)
Utilisez-vous le "client VPN" de Cisco? OS OS X?
Si vous utilisez le VPN d'OS X (configuré via la sous-fenêtre des préférences de réseau), vous devriez pouvoir cliquer sur "avancé" et sélectionner l'onglet "VPN à la demande". puis fournissez les sous-réseaux nécessaires au VPN.
la source
Je voulais une application native que je puisse exécuter à l'ouverture de session (et continuer à s'exécuter / masquée) pour activer le routage Split Tunnel, similaire à une fonction de Locamatic . Peut-être que je bifurquerai à un moment donné Locamatic et que je jouerai avec. Je peux aussi télécharger ce AppleScript sur Github. Je ne voulais pas jouer avec un démon comme le suggère cette réponse.
Ce script suppose que VPN a un
VPN (Cisco IPSec)
nom par défaut et que l'itinéraire VPN est10.10.10.1/22
>10.10.20.10
. Celles-ci devront être changées / des itinéraires supplémentaires ajoutés. Exécutez le terminal>netstat -rn
lorsque le VPN est connecté (avant d'activer ce script) pour voir les itinéraires ajoutés au VPN.Ce script génère également des notifications de style Growl dans le Centre de notifications :)
Je suis tombé sur quelques problèmes avec Mark E. Haase de réponse que mes modifie VPN Cisco la passerelle existante d'un
UCSc
à unUGScI
itinéraire (spécifique d'interface en0) et ajoute la passerelle VPN commeUCS
itinéraire, ce qui nécessite la suppression de deux passerelles par défaut et rajoutant laUGSc
passerelle par défaut d' origineDieu merci pour StackExchange / google, il s’agit de mon premier AppleScript et je n’aurais pas pu le mettre en place sans quelques heures de recherche sur Google.
Suggestions / corrections / optimisations bienvenues!
AppleScript ( GitHubGist ):
enregistrer en tant qu'application:
clic droit> afficher le contenu du paquet, ajouter ce qui suit à info.plist (cela masque l'icône de l'application du dock, nécessitant l'utilisation d'Activity Monitor ou d'un terminal>
pkill -f 'Split Tunnel'
pour quitter l'application, omettez si vous VOULEZ une icône de dock:créez un nouveau
routeNOPASSWD
fichier d' une ligne (sans extension) en utilisant EXACTEMENT le code suivant (cela peut empêcher un accès sudo s'il est mal effectué, googlevisudo
pour plus d'informations - ceci permet aux commandes sudo du AppleScript de s'exécuter SANS invite de mot de passe, omettre si vous VOULEZ une invite de mot de passe lorsque la table de routage doit être modifiée):copier ce fichier dans
/etc/sudoers.d
lancez les commandes suivantes dans le terminal (la deuxième commande demandera le mot de passe - ceci permet aux
sudo route
commandes du script AppleScript de s'exécuter SANS invite de mot de passe; omettre si une invite de mot de passe est souhaitée lorsque le script modifie la table de routage)Enfin, ajoutez l'application dans Préférences système> Utilisateurs et groupes> Éléments de connexion.
la source
Vous devriez pouvoir demander à l'administrateur du routeur auquel vous vous connectez de configurer un "groupe" distinct qui effectue le tunneling fractionné et vous donne un fichier PCF contenant le nom du groupe et le mot de passe du groupe pour ce groupe.
la source
J'ai eu le même problème et cela a fonctionné grâce à @mehaase
Après avoir créé la
~/vpn.sh
réponse as @mehaase, vous pouvez l'insérer dans un script exécutable d'automate d'application en procédant comme suit:do shell script "sudo ~/vpn.sh" with administrator privileges
Vous devrez peut-être également exécuter à
chmod 700 ~/vpn.sh
partir de Terminal pour accorder au script des privilèges d'exécution.Une fois connecté au VPN, vous pouvez simplement exécuter ce script d'application. Entrez votre mot de passe administrateur et cliquez sur ok - Terminé. :)
la source