Forum Linux.général Mise en place d'un vpn

Posté par  .
Étiquettes : aucune
0
23
août
2005
Bonjour,

Disclaimer : Je ne suis pas spécialiste réseau, je débute, donc si je dis des bêtises, vous pouvez me corriger. :)

Voilà mon cas de figure :
Je suis sur un réseau local divisé en plusieurs sous-réseaux, et qui m'impose donc une passerelle pour pouvoir naviguer entre les différents sous-réseaux.

Un pc sur ce réseau est connecté à internet, et je souhaite que ce serveur ma partage sa connection. Du fait de l'architecture du réseau, point de nat. Jusqu'ici, on a procédé par proxy, ce qui marche très bien, mais est pas mal limité, comparé au nat.

Donc, mon but est de mettre en place une liaison vpn entre ce serveur et mon pc, ce qui me permettra d'accéder directement à internet sans passer par le proxy. J'utilise poptop comme server sous linux, et, pour l'instant, j'utilise le client par défaut de winXP.

Après pas mal de bidouillages, j'arrive à établir une liaison vpn, avec les ip 192.168.1.3 pour le client, 192.168.1.1 pour le server, et un masque de sous-réseau de 255.255.255.255 (ce qui me convient tout à fait, puisqu'il n'y a qu'un seul client pour l'instant), l'interface étant nommée ppp0.
Je souhaiterais maintenant configurer le routage des paquets.

J'ai lancé la commande (eth1 est connecté à internet, eth0 au réseau local):
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Et j'ai :
DaVinci:/home/rdelmas# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.3 * 255.255.255.255 UH 0 0 0 ppp0
10.207.0.0 * 255.255.0.0 U 0 0 0 eth0
192.0.0.0 * 255.0.0.0 U 0 0 0 eth1
default 192.168.0.100 0.0.0.0 UG 0 0 0 eth1

et :

DaVinci:/home/rdelmas# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Tout ceci me semble plutôt pas mal, mais voilà : ça ne marche pas. Cependant, quand j'essaye, depuis le client, de pinger www.yahoo.fr, par exemple, le résultat de la commande me dit qu'il effectue bien la résolution des noms, puisqu'il essaye de se connecter à www.euro.yahoo.akadns.net. Mais les paquets ne sont, semble-t-il, pas transmis, soit dans un sens, soit dans l'autre (soit les deux...).

Voilà, je sens que la solution est proche, mais j'aimerais un peu d'aide, 2 jours que je galère... ;)

Merci d'avance!
  • # pourquoi

    Posté par  (site web personnel) . Évalué à 1.

    > Un pc sur ce réseau est connecté à internet, et je souhaite que ce
    > serveur ma partage sa connection. Du fait de l'architecture du réseau,
    > point de nat. Jusqu'ici, on a procédé par proxy, ce qui marche très
    > bien, mais est pas mal limité, comparé au nat.

    pourquoi point de NAT ?
    • [^] # Re: pourquoi

      Posté par  . Évalué à 1.

      J'avoue que c'est le point de la démonstration qui me pose problème... je ne sais pas exactement.
      J'ai envie de dire que c'est parce que je suis obligé de spécifier une passerelle qui n'est pas le serveur, pour pouvoir me ballader sur le réseau local. C'est peut-être une bêtise, mais, ce qui est certain, c'est que le nat n'est pas utilisable dans ce cas précis.
  • # pb de route côté client

    Posté par  . Évalué à 1.

    Il s'agit peut-être d'un problème de route sur le client. Est-ce que tu pourrais nous les donner pour voir ?

    Sinon, tu as essayé de regarder le traffic avec un logiciel comme Ethereal ?

    • [^] # Re: pb de route côté client

      Posté par  . Évalué à 1.

      "route print" me donne ça...
      (laissez tomber tout ce qui est associé à la certe Gigabit ethernet, elle n'est pas utilisée)


      ===========================================================================
      Liste d'Interfaces
      0x1 ........................... MS TCP Loopback interface
      0x2 ...00 e0 4c 39 19 03 ...... Realtek RTL8139/810x Family Fast Ethernet NIC - Deterministic Network Enhancer Miniport
      0x3 ...00 01 6c a6 06 83 ...... Realtek RTL8169/8110 Family Gigabit Ethernet NIC - Deterministic Network Enhancer Miniport
      0x20005 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface
      ===========================================================================
      ===========================================================================
      Itin‚raires actifsÿ:
      Destination r‚seau Masque r‚seau Adr. passerelle Adr. interface M‚trique
      0.0.0.0 0.0.0.0 10.207.0.254 10.207.11.25 30
      10.207.0.0 255.255.0.0 10.207.11.25 10.207.11.25 30
      10.207.11.25 255.255.255.255 127.0.0.1 127.0.0.1 30
      10.207.16.7 255.255.255.255 10.207.11.25 10.207.11.25 30
      10.255.255.255 255.255.255.255 10.207.11.25 10.207.11.25 30
      127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
      192.168.1.0 255.255.255.0 192.168.1.3 192.168.1.3 1
      192.168.1.3 255.255.255.255 127.0.0.1 127.0.0.1 50
      192.168.1.255 255.255.255.255 192.168.1.3 192.168.1.3 50
      224.0.0.0 240.0.0.0 10.207.11.25 10.207.11.25 30
      224.0.0.0 240.0.0.0 192.168.1.3 192.168.1.3 50
      255.255.255.255 255.255.255.255 10.207.11.25 10.207.11.25 1
      255.255.255.255 255.255.255.255 192.168.1.3 192.168.1.3 1
      255.255.255.255 255.255.255.255 192.168.1.3 3 1
      Passerelle par d‚fautÿ: 10.207.0.254
      ===========================================================================
      Itin‚raires persistantsÿ:
      Aucun
      • [^] # Re: pb de route côté client

        Posté par  . Évalué à 1.

        Ta paseerelle par défaut est pour le moment 10.207.0.254 et il faudrait que ce soit l'adresse IP de ton serveur vpn 192.168.1.1.

        Le problème, c'est qu'en changant la route par défaut tu risques de perdre les routes vers les autres sous-réseaux. Il faut alors les ajouter à la main.

        Peux-tu donner les adresses IPs, masques et réseaux de ta machine et de ton serveur (pas ceux du vpn) ?

        Sinon, il faut également que tu fasses du NAT sur ton serveur vpn :

        iptables -t nat -A POSTROUTING -o eth1 -i ppp0 -j MASQUERADE
        echo 1 > /proc/sys/net/ipv4/ip_forward

        Je ne suis pas sûr de la commande iptables (surtout pour le "-i ppp0"), si qqun pouvait vérifier.
        • [^] # Re: pb de route côté client

          Posté par  . Évalué à 1.

          Je suis assez d'accord pour la passerelle. Le problème, c'est que 10.207.0.254 est ma passerelle pour le réseau local, et que je peux pas en changer. (en fait si, je pourrais, mais alors je n'aurais accès qu'au sous-réseau 10.207.x.x, et ce n'est pas bon).

          En fait, il faudrait pourvoir spécifier une autre passerelle pour le réseau vpn.

          Mes ip, en réseau local:
          Le client : 10.207.11.25
          Le serveur : 10.207.16.7
          Masque de sous-réseau : 255.255.0.0
          Passerelle : 10.207.0.254

          En vpn :
          Client : 192.168.1.3
          Serveur : 192.168.1.1


          Sinon, quand j'exécute la commande donnée plus haut, je me retrouve avec :
          iptables v1.2.11: Can't use -i with POSTROUTING

          Merci pour l'aide, en tout cas!
          • [^] # Re: pb de route côté client

            Posté par  . Évalué à 1.

            Avec ton masque et ton adresse IP, tu es capables d'atteindre toutes les machines du réseau 10.207.0.0. Donc tu peux atteindre ton serveur vpn sans avoir besoin d'une passerelle.
            Le but, c'est d'envoyer tout le traffic à travers ton vpn, sauf ce qui est à destination de ton réseau local. D'après ce que j'ai vu, en local tu as le réseau 10.207.0.0 (où sont branchés ta machine et ton serveur) et un réseau 224.0.0.0 (avec un masque à la con :) ).

            Ce que je ferais...
            sur le client :
            - passerelle par défaut : 192.168.1.1
            - définir des routes statics vers les réseaux locaux
            sur le serveur :
            - configurer le NAT, essaie la commande
            iptables -t nat -A POSTROUTING -o ton_interface_pour_aller_sur_le_net -s 192.168.1.0/24 -j MASQUERADE

            En gros, tout ce sort par ton_interface_pour_aller_sur_le_net, qui vient du réseau 192.168.1.0 doit subir un masquage d'adresse.
            Mais je ne suis pas sûr pour la partie iptables, google est ton ami. Je te conseille quand même d'aller faire un tour sur ce site [1], il explique pas mal de chose sur le NAT.

            [1] http://christian.caleca.free.fr/(...)

Suivre le flux des commentaires

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