web-dev-qa-db-fra.com

Comment utiliser un VPN sur un pont réseau configuré manuellement (avec l'interface principale non gérée par NetworkManager)?

J'ai configuré un pont réseau que j'utilise pour connecter KVM machines virtuelles de mon bureau à mon réseau domestique. Je règle cela manuellement en créant le pont dans /etc/network/interfaces (comme le livre le décrit pour obtenir les meilleures performances réseau et que nous utilisons sur les serveurs de virtualisation de notre société).

Cela signifie toutefois que NetworkManager ne gère plus l'interface eth0 et refuse de configurer des connexions VPN.

Cela ne m'aurait pas trop dérangé si je pouvais trouver une application avec laquelle me connecter au lieu de NM. Mais, hélas, je n'ai rien trouvé! Il y avait un paquet appelé kvpnc, décrit comme une interface graphique pour les clients VPN, mais il continuait à planter. Autant que je sache, il n'y avait pas d'autre interface graphique VPN fonctionnelle.

D'autres personnes ont des problèmes similaires: pont de réseau - sans détruire le gestionnaire de résea mais ce gars-là vient de retourner à NM et de mettre en place un routage au lieu d'un pont au lieu de trouver une alternative Client VPN.

Des idées?

Edit: j'ai oublié de mentionner que j'utilise PPTP pour le moment et que j'aurais peut-être besoin d'OpenVPN dans le futur.

4
jjakob

Ok, voici comment j’ai eu autour le problème:

1. Supprimer le gestionnaire de réseau

Sudo apt-get remove network-manager

note: lisez la fin de cet article pour un disclaimer

2. Configurez pptp sur la ligne de commande

Nous allons utiliser un outil pratique appelé pptpsetup qui configure pour nous tous les fichiers de configuration nécessaires.

Courir:
Sudo pptpsetup --create $your-connection --server se.rv.er.ip --username $pptp-username --encrypt

remplace:
- $ votre-connexion avec le nom abrégé de la nouvelle connexion
- se.rv.er.ip avec l'adresse IP du serveur auquel vous souhaitez vous connecter
- $ pptp-username avec le nom d'utilisateur de l'utilisateur qui se connecte

Le mot de passe Sudo vous sera d'abord demandé, puis pptpsetup vous demandera le mot de passe pour la connexion PPTP. Entrez-le, puis appuyez sur entrée. Prenez garde, ne les mélangez pas. Cela aura créé tous les fichiers de configuration nécessaires. Si vous ne souhaitez pas utiliser la route par défaut proposée par le serveur, ajoutez une ligne indiquant nodefaultroute à /etc/ppp/peers/$connection-name.

3. Démarrer et arrêter la connexion manuellement

Sudo pon your-connection
pour vous connecter, et

Sudo poff your-connection
débrancher.

4. Si vous souhaitez ajouter et supprimer automatiquement des itinéraires personnalisés:

Créez deux scripts, comme ceci:
(placez-les quelque part dans votre dossier personnel,/root est également correct si vous n'oubliez pas de le sauvegarder)

pptp-on.sh:

#!/bin/bash
# This script connects us using pre-configured PPTP VPN,
# and then adds all the routes we specify here.

pon your-connection
a=$?

sleep 5

# add routes
if [ $a == 0 ]; then
        # whatever routes you need
        route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp0
        echo "Connected"
fi

exit $a

pptp-off.sh:

#!/bin/bash

poff your-connection

a=$?

# delete routes
if [ $a == 0 ]; then
        #specify whatever routes you have here
        route del -net 192.168.1.0 netmask 255.255.255.0 dev ppp0
        echo "Disconnected"
fi

exit $a

Ils doivent appartenir à root: Sudo chown root:root pptp-on.sh pptp-off.sh. Rendez-les exécutables: Sudo chmod +x pptp-on.sh pptp-off.sh
Nommez-les comme bon vous semble, vous saurez ainsi à quoi ils servent.

5. Création de lanceurs de bureau

Je voulais avoir des lanceurs de bureau sur lesquels je peux simplement cliquer, au lieu d'exécuter les scripts manuellement chaque fois que je me connecte et que je me déconnecte. Pour ce faire, j'ai créé deux lanceurs de bureau exécutant respectivement gksudo /path/to/pptp-on.sh et gksudo /path/to/pptp-off.sh. J'ai utilisé Marian Lux-es Create Launcher disponible à partir du centre logiciel Ubuntu. Google pour savoir comment faire cela, je ne vais pas écrire cela ici (parce que je suis paresseux).

C'est ça. Vous pouvez avoir autant de connexions différentes que vous le souhaitez, toutes activées et désactivées facilement avec les lanceurs. Il suffit de refaire toutes les étapes pour chaque connexion supplémentaire.

Mais attention, comme dit, ce n'est pas une solution, mais une solution. Le correctif interviendra lorsque NM aura un support intégré pour les ponts réseau, ce qui est déjà fait dans 13.04, si j'ai bien lu. Ceci est uniquement destiné aux personnes comme moi qui envisagent de conserver la version 12.04 aussi longtemps qu’elles le peuvent (j’ai essayé la version 12.10 mais j’ai eu de gros problèmes, comme une incompatibilité avec ma carte graphique ATI, de nombreux bugs, etc.) ou moins jusqu'à la prochaine version de LTS ou avant de passer à un nouveau matériel.

4
jjakob