Forum Linux.debian/ubuntu OpenVPN en mode pont

Posté par  .
Étiquettes :
0
12
nov.
2009
Bonjour,

Je cherche à mettre un place un serveur VPN à l'aide d'OpenVPN sous Debian Lenny. On trouve beaucoup de tutoriels sur le net mais chacun à sa façon de mettre en place la configuration.

J'ai donc suivit ce qui ce rapproche au mieux de ma configuration actuelle : la documentation Ubuntu. [https://help.ubuntu.com/9.10/serverguide/C/openvpn.html]

Mon serveur VPN est maintenant actif, j'ai créé les différents certificats (sans bien comprendre comment ça marche) et j'arrive à me connecter.

Cependant, impossible de communiquer avec mon réseau local. Je voudrais faire en sorte que l'hôte distant croient qu'il est dans mon réseau local et qu'il puisse accéder aux différents services et hôtes du réseau comme s'il y était vraiment connecté.

Pour faire ça, et ça doit être là que je commet des erreur, j'ai configuré OpenVPN en mode "bridge" et il m'attribut effectivement une adresse IP dans mon sous réseau. Cependant impossible de contacter ne serait-ce le serveur VPN en lui même.

En me connectant avec mon poste client et NetworkManager, j'ai les paramètres suivants :

$ ifconfig
eth1 Link encap:Ethernet HWaddr 00:13:ce:80:9c:4d
inet adr:192.78.5.23 Bcast:192.78.5.255 Masque:255.255.255.0
adr inet6: fe80::213:ceff:fe80:9c4d/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:146 errors:0 dropped:0 overruns:0 frame:0
TX packets:155 errors:0 dropped:20 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:37646 (36.7 KiB) TX bytes:22378 (21.8 KiB)
Interruption:21 Adresse de base:0xe000 Mémoire:ffcfe000-ffcfefff

tap0 Link encap:Ethernet HWaddr 02:73:f5:b7:51:1a
inet adr:192.168.82.100 Bcast:192.168.82.255 Masque:255.255.255.0
adr inet6: fe80::73:f5ff:feb7:511a/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:0 (0.0 B) TX bytes:6202 (6.0 KiB)

spack@korola:~$ route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
82.234.18.83 192.78.5.254 255.255.255.255 UGH 0 0 0 eth1
192.168.82.0 * 255.255.255.0 U 0 0 0 tap0
192.78.5.0 * 255.255.255.0 U 2 0 0 eth1
default * 0.0.0.0 U 0 0 0 tap0


La carte eth1 est la liaison vers Internet à travers le réseau local. Le réseau local distant à l'adresse de sous réseau 192.168.82.0/24 dont l'adresse 192.168.82.100 et attribué à mon poste client. Mais les routes semblent poser problème.

Sans connexion au VPN les routes ressemblent à ça :
$ route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.78.5.0 * 255.255.255.0 U 2 0 0 eth1
default 192.78.5.254 0.0.0.0 UG 0 0 0 eth1


Dans le fichier de configuration du serveur OpenVPN, j'ai mis (entre autres) les lignes suivantes :
port 1194
proto udp
dev tap
server-bridge 192.168.82.252 255.255.255.0 192.168.82.100 192.168.82.110
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
  • # bridge au niveau serveur

    Posté par  . Évalué à 2.

    Vous avez bridgé l'interface du serveur ethernet avec celle du vpn ?
    • [^] # Re: bridge au niveau serveur

      Posté par  . Évalué à 2.

      La question est là... Comment faire ? :D

      Tout ce que j'ai réussi à faire lors de mes tentatives, c'est de perdre la liaison SSH avec le serveur et de devoir le relancer.
      • [^] # Re: bridge au niveau serveur

        Posté par  . Évalué à 7.

        Je vous fait part de mes notes

        Installez le paquet bridge-utils
        pour la suite, eth0 est la carte ethernet du serveur 192.168.10.200 son ip. 192.168.10.1 est la passerelle du reseau du serveur vpn.

        Modifications de la partie réseau ( supprimez toute la partie relative à eth0 )

        /etc/network/interfaces
        # bridge eth0 sur br0 pour Openvpn
        auto br0
        iface br0 inet static
        bridge_ports eth0
        address 192.168.10.200
        netmask 255.255.255.0
        broadcast 192.168.10.255
        gateway 192.168.10.1
        post-up /etc/openvpn/scripts/ovup.sh && /etc/init.d/openvpn start
        pre-down /etc/init.d/openvpn stop
        post-down /etc/openvpn/scripts/ovdown.sh

        Créations des scripts ovup.sh et ovdown.sh

        /etc/openvpn/scripts/ovup.sh
        #!/bin/sh
        openvpn --mktun --dev tap0
        brctl addif br0 tap0
        ifconfig eth0 promisc up
        ifconfig tap0 promisc up
        ifconfig br0 192.168.10.200 netmask 255.255.255.0 broadcast 192.168.10.255

        /etc/openvpn/scripts/ovdown.sh
        #!/bin/sh
        openvpn --rmtun --dev tap0
  • # Bridge vraiment nécessaire?

    Posté par  . Évalué à 7.

    Bonjour,

    la configuration d'OpenVPN en mode bridge (TAP) est un peu plus ardue qu'en mode routé (TUN), notamment parce qu'il faut créer les ponts avant toute chose, etc...

    Le mode bridge est généralement moins performant que le mode routé. La grosse différence est que le mode bridge propage aussi le broadcast via le vpn, le mode routé non.

    Pourquoi a tu choisis le mode bridge? A tu réellement besoin de pouvoir broadcaster depuis un site vers l'autre? Le mode routé permet tout autant a tes clients d'accéder aux services de ton réseau local "comme s'ils y étaient vraiment connectés". Personnellement, je n'ai pas envie que le vpn se trouve sollicité a chaque fois que quelqu'un démarre son poste windows sans avoir décoché l'option "envoyer 20 tonnes de merde sur le réseau pour essayer de retrouver les imprimantes en workgroup toutes les 5min".

    Quoiqu'il en soit, tu dis ne pas pouvoir communiquer avec ton réseau local. A tu vérifié les firewalls client et serveur? Il est possible que les paquets partent bien, mais ne reviennent jamais, a tu vérifié si un des éléments du vpn bloquait les réponses? Je crois constater que d'après tes routes, tu a activé la fonction qui fait passer tout le trafic internet via le vpn, chose que tu ne devrais activer qu'avec au moins une config normale qui marche.
    Est ce que le serveur openvpn est la passerelle de ton lan?

    Ce serait sympa d'avoir au moins les logs d'openvpn sur le client, le serveur (logs un peu épurés pour ne montrer que le démarrage du serveur et la tentative de connexion du client, la config complète du serveur et du client ainsi que des ponts, les résultats de divers ping, traceroute & dumps etc... ;)
    • [^] # Re: Bridge vraiment nécessaire?

      Posté par  . Évalué à 2.

      tout comme maxix, la config par defaut d'openvpn sur une interface tun fonctionne tres bien

      il faut juste regler le parefeu de la machine serveur vpn pour tranferer les données entre l'interface tun et l'interface eth

      il faut evidemment que la route de retour renvoie sur le serveur vpn sinon les paquets se perdent en route...

      idealement je mettais le serveur VPN sur le routeur adsl de la société afin que les routes soient simplifiées

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.