Forum Linux.général Diriger les paquets réseau d'une application vers une interface

Posté par  .
Étiquettes : aucune
0
11
avr.
2011

Bonjour rhum,

je cale depuis hier sur un truc qui doit être simple, mais pas pour moi.

J'ai des PC avec du Linux dessus. Jusque là, ça va.
J'ai une carte réseau, une FreeBox. Toujours pas de problème.
J'ai un VPN maison fait avec OpenVPN. Le noeud central du VPN est un serveur dédié chez un hébergeur connu dont le nom est composé de trois lettres (O, V et H, dans l'ordre qui m'est venu à l'esprit). Ce VPN me permet d'utiliser tranquillement certaines ressources de mon domicile lorsque je suis à l'hôtel ou ailleurs. Ca fonctionne, parfait.

Ce VPN me permet également, si je le souhaite, d'accéder à internet depuis chez moi. Il me suffit de mettre la route par défaut vers tun0 et hop, mon internet passe par le serveur dédié.
Aucun intérêt, certes.
Sauf que si, justement, ça a un intérêt: certaines ressources d'internet ne sont pas accessibles directement depuis ma connexion ADSL. En général le prétexte est que je suis en France donc houlàlà pas bien, toi pas regarder cette vidéo. Et il n'y a pas de bouton "t'occupes, vas-y tout de même".
Alors qu'en passant par mon VPN, ça fonctionne.

Dans l'idéal, je mets sur mon serveur dédié un proxy. Puis je configure mon navigateur internet web pour qu'il l'utilise. Comme ça pas besoin de changer la route par défaut.
Je me pose la question de savoir comment je peux faire pour que cela puisse fonctionner avec n'importe quelle application, même si elle n'est pas prévue pour fonctionner avec un proxy.

Le but: faire en sorte que tous les paquets d'une application précise passent par le VPN, alors que les autres paquets utilisent la route normale.

Par exemple une application maison qui utilise des ports sources et destinations divers. La totalité de mes applications passent en direct par la connexion ADSL, sauf mon application maison qui passe par le VPN pour accéder à internet.
Le pare-feu de Linux permet de gérer les paquets en fonction de l'application émetrice, mais je ne vois pas quoi faire pour indiquer de passer par une autre carte réseau (tun0 dans mon cas, au lieu de eth0).

Ou alors il existe une application qui s'intercale entre un processus et la pile réseau ?

Ou alors carrément une route valable juste pour une application ? Ce serait super, mais je n'ai pas trouvé non plus.

  • # Policy based routing

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

    Il est possible de faire du routage en fonction de chaque paramètres du paquet via iptables.

    Regarde par exemple : http://www.linuxhorizon.ro/iproute2.html

    Après, libre à toi de gérer le routage comme tu le souhaites.

    Cela répond à ta question ?

  • # tsocks

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

    tsocks - Shell wrapper to simplify the use of the tsocks(8) library to transparently allow an application to use a SOCKS proxy

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: tsocks

      Posté par  . Évalué à -1.

      Pas mal.
      Ca permet en outre de se passer de VPN puisque le proxy peu être n'importe-où. Bien.

  • # LD_PRELOAD

    Posté par  . Évalué à 4.

    Au plus simple, utilises LD_PRELOAD avec un programme fait pour. J'utilise un programme perso pour ça, tiré au départ de http://www.ryde.net/code/bind.c.txt
    Ca fonctionne parfaitement, c'est propre, c'est simple.
    Je pense que le code source indiqué fonctionne sur les distributions actuelles. Je l'ai modifié pour intégrer tout un tas de bricolages persos.

    Exemple:

    BIND_ADDR="10.0.0.1" LD_PRELOAD=/chemin/bind.so mon_programme
    

    Inconvénient: certains programmes pourraient ne pas utiliser le chargeur standard.
    Je ne sais pas comment faire dans ce cas. Si quelqu'un sait, je suis intéressé.

    • [^] # Re: LD_PRELOAD

      Posté par  . Évalué à 2.

      Encore mieux !
      Avec ton lien j'ai trouvé:

      http://freshmeat.net/projects/fixsrcip  
      http://freshmeat.net/projects/force_bind/  
      

      Et quelques autres.

  • # Les proxys sur les dédiés, ce n'est pas toujours appréciés...

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

    Dans l'idéal, je mets sur mon serveur dédié un proxy.

    Que tu auras au préalable déclaré à ton hébergeur.
    Extrait des CGV des serveurs dédiés d'un hébergeur connu dont le nom est composé de trois lettres (O, V et H, dans l'ordre qui m'est venu à l'esprit) :
    7.6 Pour des raisons de sécurité, l’ensemble des [...] services de navigation anonyme (généralement appelés proxy) [...] doivent faire l’objet d’une inscription préalable. XXX se réservant le droit de refuser certaines inscriptions et de suspendre tout serveur sur lequel ces éléments seraient utilisés sans autorisation préalable.

    D'ailleurs, c'est une évolution. Il me semble qu'à une époque, les proxys avaient été purement et simplement interdits.

  • # proxychains

    Posté par  . Évalué à 1.

    Salut, à une époque j'utilisais ce programme : http://proxychains.sourceforge.net/

    Si non, à la maison, j'ai sur mon routeur le patch de Julian Anastasov : http://www.ssi.bg/~ja/ pour gérer correctement le multiwan. Avec de l'iptables, tu peux ensuite spécifier ton trafic sur la route que tu souhaites

Suivre le flux des commentaires

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