Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/05/2020, à 16:55

LucMorizur

[Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Bonjour ;

j'ai eu beaucoup de mal à réaliser une connexion VPN bridgée vers ma Freebox V6, voici donc comment au final comment j'y suis parvenu (c'est certainement améliorable).

Tout d'abord, il faut savoir que la Freebox V6 (ou Freebox révolution) propose un serveur OpenVPN : dans l'interface de gestion, Paramètres de la Freebox / Serveur VPN . Il faut définir un utilisateur, et quatre services de serveur VPN sont proposés : IPsec IKEv2, PPTP, OpenVPN Routé, et OpenVPN Bridgé. Je ne me souviens plus très bien, mais je crois que PPTP est fortement déconseillé ; en tous cas en ce qui me concerne c'est OpenVPN bridgé qui m'intéressait. En effet le mode routé est une encapsulation de la couche OSI 3, la machine distante est donc intégrée au réseau local grâce à une nouvelle adresse IP ; tandis que le mode ponté est une encapsulation de la couche OSI 2, c'est donc avec une adresse MAC qu'on intègre une machine, qui se retrouve donc dans le réseau local quasiment exactement de la même manière que si elle y était physiquement — il y a sûrement quelques imprécisions dans cette description, mais en gros c'est à peu près ça.

À savoir aussi, qu'en mode routé, le flux internet sur la machine distante passe entièrement par la Freebox. Si on fait une vérification d'adresse IP depuis la machine distante une fois le VPN routé établi (genre http://www.mon-ip.fr/ ), c'est celle de la Freebox que voient les sites. Cela peut être pratique pour surfer comme on veut depuis des endroits où certains sites sont empêchés (comme avec tous les service VPN proposés sur internet). Mais évidemment, la machine distante connectée à la Freebox par VPN, subit le très faible débit ascendant d'une connexion ADSL (130 ko/s dans mon cas, sur connexion ADSL2+ — le "A" de ADSL, c'est pour asynchrone, car la plupart de la bande passante est dédiée au flux descendant : quand on surfe, on envoie quelques caractères (= quelques octets, l'URL), pour recevoir des méga-octets, voire plus, de données).

Enfin l'interface Freebox permet de récupérer des fichiers de configuration .ovpn pour chacun des deux modes OpenVPN, ces fichiers de configuration permettant normalement au client de se connecter très simplement au serveur.

J'ai donc installé OpenVPN sur mon PC sous Ubuntu (Ubuntu Studio ; Linux 4.15.0-96-lowlatency #97-Ubuntu x86_64 GNU/Linux ; Ubuntu 18.04.4 LTS ; Xfce 4.12), c'est la version 2.4.4-2ubuntu1.3 qui est présente (alors que j'ai compilé et installé la version 2.4.9 hmm, j'ai dû louper quelque chose). J'ai aussi installé les paquets network-manager-openvpn et network-manager-openvpn-gnome, pour pouvoir gérer les connexions OpenVPN avec des outils graphiques intégrés à Ubuntu.

Une fois les fichiers .ovpn importés, j'ai créé de nouvelles connexions avec le Network Manager d'Ubuntu : clic sur l'icône du réseau dans la barre des tâches, "Modifier les connexions", appui sur "+" dans la fenêtre "Connexions réseau" afin de créer une nouvelle entrée, et là dans la liste déroulante, "Importer une configuration VPN enregistrée", qui permet donc d'utiliser les fichiers .ovpn.

Le mode routé fonctionne de cette façon, mais pas le mode bridgé. Je suis un peu rentré dans les détails ; ci-dessous les résultats.

Lorsque le mode routé est actif, on peut voir dans les processus une très longue ligne pour le process openvpn : cet exécutable est lancé par le Network Manager, avec de très nombreuses options. À l'aide de la commande Linux ps, j'ai pu récupérer les process démarrés, avec toutes les options. Même si le mode bridgé s'arrête assez rapidement, on a quand même le temps de récupérer cela. Le mode routé est défini par l'option --tun alors que le mode bridgé l'est par l'option --tap. Le premier entraîne la création de l'élément virtuel "tun0" dans le dossier "/sys/devices/virtual/net/", tandis que le mode bridgé sera représenté par l'élément virtuel "tap0".

Je suis allé voir dans le fichier "/var/log/syslog" ce qui n'allait pas avec le mode bridgé.

Après pas mal de temps, j'ai pu relever les trois principaux problèmes suivants :
1. Il y a un message "Could not generate persistent MAC address for tap0: No such file or directory"
2. Il y a un message "VPN plugin: failed: bad-ip-config (2)"
3. Il y a un message "Failed running command (--up/--down): external program exited with error status: 1"

Après de nombreuses recherches (aucune ne donnant de solution clé en main) et différents tests, j'en suis arrivé aux conclusions suivantes :

Le Network Manager démarre openvpn avec l'option --up, qui permet l'exécution d'un script une fois la connexion établie. C'est ce script qui s'arrête avec un code sortie d'erreur, et qui entraîne l'arrêt du processus avec le message "Failed running command (--up/--down): external program exited with error status: 1". Dans mon cas, le script démarré est :

/usr/lib/NetworkManager/nm-openvpn-service-openvpn-helper --debug 0 4867 --bus-name org.freedesktop.NetworkManager.openvpn.Connection_10 --tap --

Pour le mode routé, c'est

/usr/lib/NetworkManager/nm-openvpn-service-openvpn-helper --debug 0 4082 --bus-name org.freedesktop.NetworkManager.openvpn.Connection_6 --tun --

et là ça fonctionne. Évidemment, le mode bridgé ne fonctionne pas avec le script du mode routé, même en remplaçant bien sûr l'option --tun par --tap.

J'ai donc exécuté openvpn en gérant moi-même les options. Déjà, en précisant l'option --lladdr avec une adresse MAC de mon PC (ici je mets 01:23:45:67:89:AB), j'ai pu faire disparaître le message "Could not generate persistent MAC address for tap0". (Enfin en fait pas dans "/var/log/syslog" (je pense que c'est testé là trop tôt, en quelque sorte), mais dans un fichier de log généré par openvpn (options "--verb 4" et "--log-append /chemin/de/fichier/log), les messages "/sbin/ip link set addr 01:23:45:67:89:AB dev tap0" et "TUN/TAP link layer address set to 01:23:45:67:89:AB" sont apparus, montrant que l'adresse MAC était attribuée à l'élément virtuel tap0 — déjà un bon point, a priori.) Puis j'ai tout simplement viré l'option --up avec le script qui entraînait l'erreur. Là, la connexion était présente plus longtemps, mais un "ifconfig -a" sur ma machine donnait le résultat suivant pour la connexion tap :


tap0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 01:23:45:67:89:AB  txqueuelen 100  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Et pas d'accès à mon réseau domestique bien sûr.

Mais à cette étape, comme finalement j'avais bien ce réseau tap0 connecté à mon réseau domestique, il a simplement suffi d'affecter une adresse IP à tap0 pour avoir ENFIN ! une connexion bridgée fonctionnelle :

ifconfig tap0 192.168.0.51
tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.51  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 1234:1234:1234:1234:1234:1234:1234:1234  prefixlen 64  scopeid 0x0<global>
        inet6 1234::1234:1234:1234:1234  prefixlen 64  scopeid 0x20<link>
        inet6 1234:1234:1234:1234:1234:1234:1234:1234  prefixlen 64  scopeid 0x0<global>
        ether 01:23:45:67:89:AB  txqueuelen 100  (Ethernet)
        RX packets 8  bytes 1180 (1.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 63  bytes 9892 (9.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Ça, c'est normal !

Pfiou !!


Conclusion, pour me connecter en VPN bridgé à ma Freebox, j'exécute la commande suivante en tant que root dans une fenêtre bash :

/usr/sbin/openvpn --remote 123.456.789.ABC 12345 --proto tcp-client --nobind --dev tap0 --dev-type tap --lladdr 01:23:45:67:89:AB --cipher AES-256-CBC --keysize 256 --auth-nocache --extra-certs "/chemin/vers/extra-certs.pem" --verify-x509-name "C=FR, O=Freebox SA, CN=Freebox OpenVPN server 123456789ABCDEF0123456789ABCDEF0" subject --remote-cert-tls server --reneg-sec 0 --verb 4 --log-append "/chemin/vers/openvpn.log" --syslog nm-openvpn --tun-mtu 1500 --script-security 2 --up "/chemin/vers/ifconfig_script.sh" --up-restart --persist-key --persist-tun --management /var/run/NetworkManager/nm-openvpn-12345678-1234-1234-1234-123456789ABC unix --management-client-user root --management-client-group root --management-query-passwords --auth-retry interact --route-noexec --ifconfig-noexec --client --ca "/chemin/vers/ca.pem" --cert "/chemin/vers/cert.pem" --key "/chemin/vers/key.pem" --auth-user-pass "/chemin/vers/UTILISATEUR_VPN.txt" --user nm-openvpn --group nm-openvpn --chroot /var/lib/openvpn/chroot

( hmm !)

Où :
123.456.789.ABC est l'adresse IP fixe de ma Freebox, et 12345 le port indiqué pour le mode bridgé dans l'interface de gestion OpenVPN Bridgé de la Freebox ;
01:23:45:67:89:AB une adresse MAC de mon PC client
"/chemin/vers/extra-certs.pem" le chemin pointant sur le certificat extra-certs (tous les certificats sont automatiquement générés et correctement répartis sur le disque dur par le Network Manager, lors de l'importation des fichiers .ovpn)
"C=FR, O=Freebox SA, CN=Freebox OpenVPN server 123456789ABCDEF0123456789ABCDEF0" une chaîne utilisée par l'option --verify-x509-name pour reconnaître le serveur (la Freebox, sûrement wink !)
"/chemin/vers/openvpn.log" le chemin vers un fichier de log, pratique pour analyser ce qui ne fonctionne pas, à combiner avec l'option --verb 4, qui permet apparemmment d'avoir un bon niveau de détails
"/chemin/vers/ifconfig_script.sh" un script lancé une fois la connxion établie grâce à l'option --up, et dans lequel réside la commande ifconfig tap0 192.168.0.51, permettant de finaliser l'intégration de la machine distante au réseau local
/var/run/NetworkManager/nm-openvpn-12345678-1234-1234-1234-123456789ABC un fichier sur le disque dur...
"/chemin/vers/ca.pem" le chemin pointant sur le certificat ca
"/chemin/vers/cert.pem" le chemin pointant sur le certificat cert
"/chemin/vers/key.pem" le chemin pointant sur la clé
"/chemin/vers/UTILISATEUR_VPN.txt" le chemin pointant sur un fichier contenant sur la première ligne l'identifiant VPN à connecter (défini dans l'interface de la Freebox), et sur la seconde ligne, le mot de passe pour cet identifiant. Si ces lignes sont vides, ces renseignements seront demandés en ligne de commande — il va de soi qu'il vaut largement mieux ne pas renseigner le mot de passe.


Pfou !!

Désolé pour ce long post, mais comme vous voyez ce n'a pas été simple. Enfin, peut-être quelqu'un va écrire une réponse avec une solution largement meilleure tenant en trois lignes... je reste preneur !


Ubuntu Studio sur Dell Latitude E5570, le pied.

Hors ligne

#2 Le 02/07/2020, à 23:20

Starjuice

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Merci pour ton tuto!!! Malheureusement ca ne fonctionne pas chez moi, j'ai une erreur dans le log.

Thu Jul  2 23:14:49 2020 us=238577 /home/jb/ifconfig_script.sh tap0 1500 1591   init
Thu Jul  2 23:14:49 2020 us=240704 WARNING: Failed running command (--up/--down): could not execute external program
Thu Jul  2 23:14:49 2020 us=240752 Exiting due to fatal error

Si quelqu'un a une idée.

Hors ligne

#3 Le 03/07/2020, à 07:53

LucMorizur

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Salut !

Starjuice a écrit :

Merci pour ton tuto!!!

De rien ! Content que ça serve !

Malheureusement ca ne fonctionne pas chez moi, j'ai une erreur dans le log.

A priori, la ligne

Thu Jul  2 23:14:49 2020 us=240704 WARNING: Failed running command (--up/--down): could not execute external program

suggère que c'est l'option --up qui cherche à faire exécuter une commande qui n'aboutit pas. Pourrais-tu donner l'intégralité de la commande qui est lancée ?


Ubuntu Studio sur Dell Latitude E5570, le pied.

Hors ligne

#4 Le 04/07/2020, à 12:12

ERenon

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

LucMorizur a écrit :

Désolé pour ce long post, mais comme vous voyez ce n'a pas été simple. Enfin, peut-être quelqu'un va écrire une réponse avec une solution largement meilleure tenant en trois lignes... je reste preneur !


Bonjour,

Peut être, moi pour un VPN sous Ubuntu, je vais dans « réseau » > ajouter ( + ) un VPN > en important un fichier > téléchargement du fichier > ajout du nom d’utilisateur et du mot de passe, terminé, 3 minutes.

Hors ligne

#5 Le 04/07/2020, à 12:48

ERenon

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Et un pont ( bridge ) dans un réseau, d’autant que je me rappelle, n’a jamais été très conseillé, c’est vulnérable.

Quant à monter un VPN à partir de la freebox, j’ai bien peur que Niels se frotte les mains, sans oublier la police parfois.


Un VPN mal monté est dangereux, ne pas acheter un truc avec des serveurs aux USA ou en Grande Bretagne ( problème de journaux ), préférer le monter à la main en OpenVPN, changer le DNS dans IPv4 et 6, utiliser Firefox réglé « pas de proxy » et « activer le DNS via HTTPS » ( des fois ça fuit du port 80 ), ou bloquer ce port en sortie ( pour le VPN ) dans un pare feu si Windows.
Un module «  useragent » aidera à la confidentialité.


Ça vaut Tor parfois et ce n’est pas bloqué ( port 443 ).

Dernière modification par ERenon (Le 04/07/2020, à 12:57)

Hors ligne

#6 Le 04/07/2020, à 16:03

LucMorizur

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

ERenon a écrit :

moi pour un VPN sous Ubuntu, je vais dans « réseau » > ajouter ( + ) un VPN > en important un fichier > téléchargement du fichier > ajout du nom d’utilisateur et du mot de passe, terminé, 3 minutes.

Oui... moi j'ai essayé, ça fonctionnait en routé, pas en bridgé...
Pour vous, ça fonctionne en bridgé ou routé ? Et d'où provenait le fichier que vous avez importé ?

ERenon a écrit :

Et un pont ( bridge ) dans un réseau, d’autant que je me rappelle, n’a jamais été très conseillé, c’est vulnérable.

Ah... enfin là il s'agit de mon réseau domestique, je n'ai pas trop de craintes que ma femme ou mes enfants viennent hacker mon PC sous Ubuntu lorsque je le connecte par OpenVPN...
Pour autant que j'aie compris, le résultat d'un VPN bridgé vise à ce que le PC connecté se retrouve exactement dans la même situation que s'il était physiquement connecté au réseau. Et ensuite, ben je fais confiance à OpenVPN et à Free pour que ce soit sûr entre le point d'où je me connecte et la Freebox... Après, il se peut en effet que le point d'où je me connecte ne soit pas fiable.

ERenon a écrit :

Quant à monter un VPN à partir de la freebox, j’ai bien peur que Niels se frotte les mains, sans oublier la police parfois.

Niels ? Désolé j'ai pas la ref...
Pas connaissance de vulnérabilités particulières concernant la Freebox, des conseils à ce sujet ?

ERenon a écrit :

Un VPN mal monté est dangereux, ne pas acheter un truc avec des serveurs aux USA ou en Grande Bretagne ( problème de journaux ), préférer le monter à la main en OpenVPN, changer le DNS dans IPv4 et 6, utiliser Firefox réglé « pas de proxy » et « activer le DNS via HTTPS » ( des fois ça fuit du port 80 ), ou bloquer ce port en sortie ( pour le VPN ) dans un pare feu si Windows.
Un module «  useragent » aidera à la confidentialité.

Ça vaut Tor parfois et ce n’est pas bloqué ( port 443 ).

OK, merci pour les conseils ; néanmoins des précisions seront sûrement utiles aux moins avertis, dont je suis.


Ubuntu Studio sur Dell Latitude E5570, le pied.

Hors ligne

#7 Le 04/07/2020, à 18:55

ERenon

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

J’ai essayé le freebox par un temps, à l’époque, pas de pare feu mais un routeur… donc le routage ça protège, faire un pont selon mes souvenirs c’est se passer de celui ci pour une connexion, moi je ne le ferais pas.

D’autre part, accès à la configuration de la freebox en tapant l’IP dans la barre de navigation, moi je n’aimais pas, malgré tout la freebox était réputée par un temps solide au hack par rapport à un routeur classique, souvent non mis à jour.

Le tunnel il est solide, mais il faut que la porte d’entrée à chaque bout le soit aussi, moi je ne vois pas pourquoi tu ne montes pas un VPN de façon classique, derrière du routage, mais c’est vrai qu’on n’est pas attaqué par la CIA tous les jours.

Dernière modification par ERenon (Le 04/07/2020, à 19:25)

Hors ligne

#8 Le 05/07/2020, à 10:20

LucMorizur

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Moi je ne suis pas trop calé en réseaux et sécurité. Mais pour ce que j'ai compris, un VPN "classique" comme tu dis, ça permet d'accéder à des adresses IP (sites internet ou autres types de service) qui pourraient ne pas être acceptées, ou particulièrement surveillées, par ton fournisseur d'accès au lieu où tu te trouves. Par exemple si tu veux aller chercher des renseignements avec Google sur Tian'anmen alors que tu te trouves en Chine hmm . (De plus le site que tu visites pourrait aussi restreindre ton accès en fonction de ton adresse IP (et je crois bien que Google justement a des accords à ce sujet avec la Chine, par exemple), ou tracer celle-ci, donc le duo VPN + Tor (qui lui fais en sorte d'afficher une autre adresse IP que la tienne) permet une navigation totalement sûre de n'importe où. Enfin, en principe, bien sûr hmm ...)

En l'occurrence moi ce n'est pas du tout ce que je veux faire, je veux juste pouvoir accéder à mon réseau domestique comme si j'étais à la maison : pouvoir imprimer, accéder aux disques durs des autres PC... D'ailleurs si j'essayais de naviguer sur internet en étant connecté à ma Freebox par VPN (ce que permet le mode routé, et encore une fois ça ne m'intéresse pas), alors les données des sites visités seraient d'abord envoyées sur ma Freebox, à un débit de l'ordre de 1.8 Mbit/s comme d'habitude en ADSL ; puis renvoyées vers mon PC connecté en VPN routé, mais là à un débit d'environ 0.2 Mbit/s ! Aucun intérêt !

(Bon, d'accord, c'est pas très, très souvent, que j'ai besoin d'imprimer un truc sur mon imprimante à la maison, alors que je suis à 300 km de là à l'hôtel... Maaais... sait-on jamais... wink )

Si des précisions ou des corrections techniques (précises de préférence) doivent être apportées à ce que je viens de raconter, ce sera bien volontiers !


Ubuntu Studio sur Dell Latitude E5570, le pied.

Hors ligne

#9 Le 05/07/2020, à 11:36

ERenon

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

Pas de navigation j’en doute, si tu veux être tranquille, désinstalle  le navigateur, pas besoin de VPN.

« alors les données des sites visités seraient d'abord envoyées sur ma Freebox », ton FAI ne verra que l’IP du serveur du VPN si présence d’un VPN classique, le reste bernique, sauf fuite DNS.

Ton histoire de débit en retour bof ! moi je connais le débit descendant c’est tout.

« alors que je suis à 300 km de là à l'hôtel... Maaais... sait-on jamais... », je t’ai prévenu, VPN mal monté attention ! surtout à l’hôtel, dans un hotspot ou dans un cybercafé.

Hors ligne

#10 Le 05/07/2020, à 11:56

LucMorizur

Re : [Résolu] OpenVPN ponté (bridge) sur Freebox V6 depuis Ubuntu 18.04

ERenon a écrit :

Pas de navigation j’en doute, si tu veux être tranquille, désinstalle  le navigateur, pas besoin de VPN.

Pas compris.

« alors les données des sites visités seraient d'abord envoyées sur ma Freebox », ton FAI ne verra que l’IP du serveur du VPN si présence d’un VPN classique, le reste bernique, sauf fuite DNS.

Oui, ça c'est en effet le principe du VPN

Ton histoire de débit en retour bof ! moi je connais le débit descendant c’est tout.

Alors là y'a pas photo. Et je me suis amusé à mesurer (Test débit nPerf), c'est limpide :

  _ connecté depuis chez moi normal : IP vue par les sites (Info IP) : l'IP de ma Freebox ; débit descendant : normal, comme d'hab, vers les 1.8 Mbit/s ; débit ascendant : normal, comme d'hab, vers les 0.2 Mbit/s ;
  _ connecté sur ma clé 4G : IP vue par les sites : l'IP de ma clé 4G évidemment ; débit descendant : normal, comme d'hab, vers les 1.8 Mbit/s ; débit ascendant : normal, comme d'hab, vers les 0.2 Mbit/s ;
  _ connecté sur ma clé 4G, VPN routé vers ma Freebox activé : IP vue par les sites : l'IP de ma Freebox ; débit descendant : vers les 0.2 Mbit/s (ça rame !) ; débit ascendant : vers les 0.1 Mbit/s.

Rien de plus logique : c'est comme si je naviguais depuis chez moi, mais ensuite tout le flux est renvoyé via le tunnel VPN vers mon PC où qu'il se trouve. Or le seul tuyau par lequel ma Freebox peut renvoyer ce flux, c'est la liaison ascendante de mon ADSL, laquelle liaison est bien calibrée à quelque chose comme 0.2 Mbit/s (comme expliqué dans le deuxième paragraphe de mon premier post sur ce fil, c'est normal, c'est une liaison ADSL, pour laquelle le besoin en ascendant est à 99.99 % extrêmement faible).

Dernière modification par LucMorizur (Le 05/07/2020, à 11:57)


Ubuntu Studio sur Dell Latitude E5570, le pied.

Hors ligne