Gérer ses routes IP pour ses VPN (via NetworkManager et route)

Plop à tous …

Juste pour faire un autre article ce mois-ci ^^ … Je vais parler des routes IP, pour gérer par exemple plusieurs VPN ou plusieurs connexions à internet. Rien de compliqué bien sûr, juste un truc que j’oubli assez souvent et que j’utilise assez rarement …

Mon accès à internet ce fait généralement par des VPNs (mon dédié pour les trucs top secret, itsHidden, IPRED et co. pour les choses pas très orthodoxe), malheureusement, la latence est trop élevé pour pouvoir jouer à des FPS/MMORPG, il a donc fallut ajouter quelques règles de routages pour utiliser mon routeur comme gateway pour l’accès à mes jeux favoris …

Dans le cas le plus simple (celui que je vais présenter), on veut gérer une connexion à internet + une connexion VPN, deux solutions sont possible pour le routage :

  1. Utiliser notre connexion à internet comme gateway et rediriger le traffic nécessitant le chiffrement par routage (sympa si l’on ne veut pas tout chiffrer)
  2. Utiliser le VPN comme gateway et router le traffic nécessitant une latence plus faible (sympa si l’on veut tout chiffrer)

Je vais utiliser l’interface du Network Manager qui permet de sauvegarder nos routes pour chaque configurationVPN différentes, ce qui peut s’avérer utile si vous en avez plusieurs. Sinon, je présenterai rapidement les commandes routes pour ajouter une route pour un host ou un subnet (mais il faudra les ré-exécuter à chaque fois).

Le premier cas

Par défaut, si l’on utilise le NetworkManager pour la gestion des VPN, il remplace directement la route par défaut par celle du VPN(si il est configuré pour être un gateway), ce que nous ne voulons pas … on peut ignorer les routes fournit par le service de VPN en allant dans le menu « configuration de VPN » de NM, et suivre les séquences de clic ci-dessous ou l’on peut forcer à n’utiliser que le VPN pour les ressources de son réseaux en cliquant sur la checkBox en dessous du 3  :
Ce qui nous permettra de garder nos routes et l’ip fournit par notre FAI pour notre connexion à internet en général : ATTENTION, LE VPN NE SERA PAS UTILISé jusqu’à ce que vous ayez configuré vos routes …

Imaginons maintenant que nous voulons utiliser les services du VPN pour certaines IP en particulier genre pour notre test : utiliser l’ip du VPN pour se connecter à mon-ip.com (80.247.226.90), ajouter la route en ligne de commande ce fait comme suit :

sudo route add -host 80.247.226.90 gw [ip du gateway du serveur VPN]

On peut bien sûr utiliser une plage IP en remplaçant -host par -net et fournir un netmask assez large (selon la taille du réseau généralement).

Network Manager n’étant pas trop mal foutu, on peut gérer nos routes par l’interface que nous avons vu sur l’image ci-dessus, ce qui donne, pour le cas de mon-ip.com via 10.0.0.1 qui est l’ip de mon VPN :

Il faudra ensuite se connecter au service de VPN pour que les changements soient valides, et l’accès à mon-ip.com passera donc par notre VPN (les modifications ne sont pas prises directement en compte …). C’est bien entendu un cas bidon … généralement, on utilise ce type de configuration pour un accès au réseau locale d’entreprises pour accéder à des services bien particulier, tout en gardant notre connexion à internet pour le reste.
On peut supprimer cette configuration par ligne de commande :
sudo route del -host 80.247.226.90 gw [ip du gateway du serveur VPN]

Ou en cliquant sur supprimer dans l’interface ci-dessus …

Cas numéro deux

On veut faire l’inverse, utiliser notre VPN pour toutes les connexions à internet, et notre connexion à internet pour accéder à mon-ip.com … En fait c’est le cas le plus simple si l’on à très peu de services à utiliser avec notre véritable IP (c’est mon cas …), on reprend donc notre interface de configuration du VPN :
On vérifie que les deux checkbox soient décochés, et on remplace la passerelle par celle de notre réseau, chez moi 192.168.0.1. On valide, on se connecte au VPN (se déconnecter si on l’était déjà), et l’accès à mon-ip.com se fait par notre IP à nous, alors que si l’on accède à www.whatismyip.com, l’accès se fera pas notre VPN …

Cas pratique

Bien sûr les cas représentés ici étaient bidon et appliqués aux VPN, un cas pratique d’utilisation des routes sur une connexion « normale » peut être l’utilisation du réseau wifi du voisin pour dl comme un porc (utilisation de sa passerelle comme passerelle par défaut) et définir des règles de routages pour utiliser notre connexion à internet (par rj45 ou …) pour les FPS et les accès privés qui seront beaucoup plus rapide ;).
Bien entendu je n’incite personne à faire ça (sans l’autorisation du voisin ^^).