Forum Linux.général Routage openvpn

Posté par  (site web personnel) .
Étiquettes : aucune
0
5
oct.
2010
Bonjour à tous,

Je viens pour un problème dans une configuration openvpn; j'ai une machine avec quelques services ouvert sur le net (web, ssh…), sur laquelle je suis en train d'installer un client openvpn.

Le serveur openvpn me propose une connexion en mode bridge, et cela fonctionne : depuis mon client, j'accède bien au réseau externe.

Le problème est le suivant : dès qu'openvpn est en marche, je n'ai plus la possibilité d'acceder aux services de ma machine : j'ai des time out à chaque fois. Par contre les services sont accessibles lorsque je cherche à joindre la machine par son IP fournie par la vpn. Je cherche bien sûr à ce que les services puissent être accessibles quelque soit l'interface sur laquelle on cherche la machine.

Je me demande s'il n'y aurait pas un problème avec la table de routage : serait-ce possible que les connexions entrantes sur l'interface eth soient redirigées en sorties sur tap ?

Voici la table de routage avec le vpn en route :

Table de routage IP du noyau

Destination_____Passerelle______Genmask_________Indic___MSS_Fenêtre_irtt_Iface
serveur-vpn_____192.168.0.254___255.255.255.255_UGH_______0_0__________0_eth3
192.168.0.0_____0.0.0.0_________255.255.255.0___U_________0_0__________0_eth3
reseau-vpn______0.0.0.0_________255.255.255.0___U_________0_0__________0_tap0
0.0.0.0_________passerelle-vpn__128.0.0.0_______UG________0_0__________0_tap0
128.0.0.0_______passerelle-vpn__128.0.0.0_______UG________0_0__________0_tap0
0.0.0.0_________192.168.0.254___0.0.0.0_________UG________0_0__________0_eth3


(Oui, le VPN me donne une sortie complète sur internet, et j'ai besoin de pouvoir y faire sortir tout le traffic)

Merci à vous
  • # Précisions

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

    Voici quelques précisions, en terme « iptable », peut être est ce plus clair :

    il faudrait que les nouvelles connexions sortantes passent par le VPN.
    il faudrait que les connexions existantes ou relatives sortantes passent par la même interface que l'entrée.

    Cela devrait être faisable en « taguant » les connexions avec iptable, je vais essayer de voir ça…
  • # ShoreWall

    Posté par  . Évalué à 1.

    J’ai exactement le même problème, mais je n’ai pas eu le temps de m’y plongé.

    Personnellement j’utilise ShoreWall comme FireWall dont la documentation propose deux articles intéressants :
    http://www.shorewall.net/MultiISP.html
    http://www.shorewall.net/OPENVPN.html

    J’espère pouvoir m’intéresser au problème très prochainement, car pour le moment j’ai ajouté des routes en dur ce qui n’est pas très propre.
    • [^] # Re: ShoreWall

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

      Voila une solution ( à compléter )

      On commence par donner une marque à tous les paquets qui sont en provenances d'un port donné :

      iptables -t mangle -A OUTPUT -j MARK -p tcp --sport 80 --set-mark 80

      Ensuite on route les paquets avec cette marque vers la passerelle qui nous intéresse ( nécessite iproute2 )

      ip rule add fwmark 80 table 200
      ip route add table 200 default via 192.168.0.254

      Cela permet au port de répondre sur une IP (pas les deux), mais c'était pour moi la priorité…
    • [^] # Re: ShoreWall

      Posté par  . Évalué à 1.

      Réponse à moi-même,

      Avec ShoreWall:
      _ Dans le fichier "providers" mettre :
      ISPMain 1 1 main eth0 192.168.1.254 track none
      ISPVpn 2 2 main tun0 - track,balance none
      _ dans le fichier "interfaces" mettre :
      net eth0 detect dhcp,routeback,logmartians
      vpn tun0 detect optional,routeback,logmartians
      _ dans le fichier "rules" mettre les régles.

      Avec cette configuration, par défaut toutes les connexions sortent par le VPN et les connexions entrantes fonctionnent aussi bien sur le VPN et sur le fournisseur d’accès SDSL.

Suivre le flux des commentaires

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