Forum Linux.debian/ubuntu Connecter deux réseaux OpenVPN

Posté par  . Licence CC By‑SA.
Étiquettes :
1
22
juil.
2017

J'essaye de connecter deux serveurs OpenVPN afin que les clients des deux réseaux puissent se joindre.

Mes fichiers de configurations sont ceux créé par PiVPN et il me semble que les push route sont faux (si je retire --route-nopull j'arrive encore a joindre le LAN et l'intérieur du réseau VPN mais plus aucun accès à internet).

Donc sauriez-vous se qu'il faut indiquer dans les fichiers /etc/openvpn/server.conf afin que le routage entre les deux réseaux fonctionne et ce sans forcer les clients à faire passer tout leur trafic internet par les dits serveurs VPN?

Actuellement :
serveur A est connecté (openvpn client) à serveur B
serveur B est connecté (openvpn client) à serveur A
chacun peut ping sans problème les clients du conjoint, mais aucun client ne peut les imiter

Voici le fichier de conf actuel de serveur B (10.8.5.1)

dev tun
proto tcp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh4096.pem
topology subnet
server 10.8.5.0 255.255.255.0
# server and remote endpoints
ifconfig 10.8.5.1 10.8.5.2

# Add route to Client routing table for the OpenVPN Server
push "route 10.8.5.1 255.255.255.255"
push "route 10.8.6.1 255.255.255.255"

# Add route to Client routing table for the OPenVPN Subnet
push "route 10.8.5.0 255.255.255.0"
push "route 10.8.6.0 255.255.255.0 10.8.5.1"

# your local subnet
#push "route 0.0.0.0 "
# Set your primary domain name server address for clients
push "dhcp-option DNS 10.8.5.1"
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
#push "redirect-gateway def1"
client-to-client
duplicate-cn
keepalive 10 120
tls-version-min 1.2
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
#crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
log /var/log/openvpn.log
verb 1
# Generated for use by PiVPN.io

note : aucune règle iptable ne perturbe ce labo

  • # client isolation

    Posté par  . Évalué à 3.

    et tu as regardé si deux clients A peuvent se pinguer l'un l'autre ?
    si ce n'est pas le cas, c'est qu'il y a du "client isolation"

    cela evite justement deux clients se voient l'un l'autre.
    il faut alors voir comment desactiver cette isolation pour permettre à deux clients de se contacter l'un/l'autre

    • [^] # Re: client isolation

      Posté par  . Évalué à 2.

      et tu as regardé si deux clients A peuvent se pinguer l'un l'autre ?

      Oui les machines peuvent communiquer entre elles sans aucun problème sur le même réseau VPN :) (si je ne m'abuse l'isolation est désactivée avec "client-to-client").

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

  • # Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

    Posté par  (site Web personnel) . Évalué à 3.

    Table de routage des machines du tunnel et des clients ?

    Un schéma serait bienvenu.

    Le serveur vpn n'est pas le routeur ?

    Système - Réseau - Sécurité Open Source

    • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

      Posté par  . Évalué à 2. Dernière modification le 23/07/17 à 14:52.

      schema connecter deux réseaux openvpn

      Sur un client connecté au second VPN avec --route-nopull :

      └─ # ▶ route -n
      Table de routage IP du noyau
      Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
      0.0.0.0         192.168.66.1     0.0.0.0         UG    600    0        0 wlp13s0
      10.8.5.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
      169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp13s0
      192.168.66.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp13s0
      

      Le même client mais sans --route-nopull

      └─ # ▶ route -n
      0.0.0.0         192.168.66.1     0.0.0.0         UG    600    0        0 wlp13s0
      10.8.6.0        10.8.5.1        255.255.255.0   UG    0      0        0 tun0
      10.8.6.1        10.8.5.1        255.255.255.255 UGH   0      0        0 tun0
      10.8.5.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
      10.8.5.1        10.8.5.1        255.255.255.255 UGH   0      0        0 tun0
      169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp13s0
      192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp13s0
      

      Sur le serveur VPN 2 (10.8.5.1)

      └─ # ▶ route -n
      Table de routage IP du noyau
      Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
      0.0.0.0         192.168.66.1     0.0.0.0         UG    202    0        0 enp2s0
      10.8.6.0        0.0.0.0         255.255.255.0   U     0      0        0 tun1
      10.8.5.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
      192.168.66.0     0.0.0.0         255.255.255.0   U     202    0        0 enp2s0
      

      Le serveur vpn n'est pas le routeur ?

      Non

      Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

      Un thread où s'était conseillé (connecter deux réseaux vpn semble étrangement peu documenté)

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

      • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

        Posté par  . Évalué à 2. Dernière modification le 23/07/17 à 19:57.

        connecter deux réseaux vpn semble étrangement peu documenté

        Peut-être parce que c'est la même chose que connecter 2 réseaux.
        Je l'ai fait une fois avec des OpenVPN (c'est probablement un besoin rare), et je n'ai eu aucune difficulté.

        Je n'ai pas trouvé d'erreur flagrante en survolant tes fichiers de configuration ni le résultat des routes.
        Que donnent des traceroute ?

        • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

          Posté par  . Évalué à 2.

          J'oubliais : que donne tcpdump sur le « serveur opposé » lorsque tu fais un traceroute (ou un ping, ou un socat, ou ce que tu veux) ?

          Par exemple depuis le poste de Pierre, tu envoies un paquet vers le poste de Michel.
          tcpdump sur le serveur 2 doit voir le paquet arriver (et repartir, mais pas sûr que tcpdump le voit car c'est une interface logicielle. Je ne me souviens plus).
          Si serveur 2 ne vois rien, il y a déjà un pépin au niveau du serveur 1. Il manque éventuellement sysctl --write net.ipv4.ip_forward=1 (pour vérifier l'état actuel : sysctl net.ipv4.ip_forward=1)

          • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

            Posté par  . Évalué à 1. Dernière modification le 24/07/17 à 16:15.

            Le routage IPv4 est bien activé (PiVPN s'en charge lors de l'installation).
            Je vais checker avec wireshark dés que faire ce peut mais le problème vient des push route je pense.
            Pour le moment seul VPN 2 est (mal) "configuré", je n'ai pas encore "configuré" le VPN 1.

            Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

            • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

              Posté par  (site Web personnel) . Évalué à 2. Dernière modification le 25/07/17 à 23:54.

              Tu dois pouvoir pinguer du plus proche au plus loin ( passerelle sur le même réseau ip, extrémité du tunnel, autre patte du routeur vpn,.. jusqu'à la machine finale

              Probablement un soucis de routage…

              Système - Réseau - Sécurité Open Source

              • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

                Posté par  . Évalué à 1.

                Depuis un client de VPN2

                └─ $ ▶ route -n
                Table de routage IP du noyau
                Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
                0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp14s0
                10.8.6.0 (VPN1) 10.8.5.1 (VPN2) 255.255.255.0   UG    0      0        0 tun0
                10.8.6.1 (VPN1) 10.8.5.1 (VPN2) 255.255.255.255 UGH   0      0        0 tun0
                10.8.5.0 (VPN2) 0.0.0.0         255.255.255.0   U     0      0        0 tun0
                10.8.5.1 (VPN2) 10.8.5.1 (VPN2) 255.255.255.255 UGH   0      0        0 tun0
                169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp14s0
                192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp14s0
                
                └─ $ ▶ traceroute 10.8.5.1 (VPN2)
                traceroute to 10.8.5.1 (VPN2) (10.8.5.1 (VPN2)), 30 hops max, 60 byte packets
                 1  10.8.5.1 (VPN2) (10.8.5.1 (VPN2))  328.468 ms  328.457 ms  328.453 ms
                
                 └─ $ ▶ traceroute 10.8.6.1 (VPN1)
                traceroute to 10.8.6.1 (VPN1) (10.8.6.1 (VPN1)), 30 hops max, 60 byte packets
                 1  10.8.5.1 (VPN2) (10.8.5.1 (VPN2))  464.628 ms  559.468 ms  706.238 ms
                 2  * * *
                 3  * * *
                [...]
                29  * * *
                30  * * *
                

                Dans le fichier /etc/openvpn/server.conf de VPN2

                topology subnet
                server 10.8.5.0 255.255.255.0
                
                # server and remote endpoints
                ifconfig 10.8.5.1 10.8.5.2
                
                # Add route to Client routing table for the OpenVPN Server
                push "route 10.8.5.1 255.255.255.255"
                push "route 10.8.6.1 255.255.255.255"
                
                # Add route to Client routing table for the OPenVPN Subnet
                push "route 10.8.5.0 255.255.255.0"
                push "route 10.8.6.0 255.255.255.0"
                

                et push "redirect-gateway def1 bypass-dhcp" est commenté

                Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

                • [^] # Re: Pourquoi 2 tunnels croisés entre les 2 mêmes machines ?

                  Posté par  (site Web personnel) . Évalué à 1. Dernière modification le 01/08/17 à 20:28.

                  Il faut creuser pour savoir pourquoi 10.8.6.1 et 10.8.6.0/24 n'est pas joignable, depuis le serveur puis le client…

                  Je vois toujours pas l'intérêt d'avoir 2 vpn entre deux hôtes similaires, un seul suffit pour faire le job.

                  Système - Réseau - Sécurité Open Source

  • # Tuto

    Posté par  . Évalué à 0.

    Trucs de fou que connecter deux VPN ne soit pas documenté (poser la question a google = on tombe sur "comment connecter deux réseaux en utilisant un VPN", ou encore "comment se connecter à deux VPN en même temps", idem en english).

    Si l'un de vous dispose d'un tuto fournissant les infos nécessaire pour configurer correctement les routes, je suis preneurs.

    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

Suivre le flux des commentaires

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