Forum Linux.général Faire passer uniquement le trafic d'un logiciel par un VPN

Posté par (page perso) . Licence CC by-sa
Tags :
3
4
juil.
2014

Bonjour, comme le titre l'indique, je souhaiterais faire passer tout le trafic d'un logiciel (et que celui-ci) à travers un VPN.

Par défaut, lorsque l'on configure et lance OpenVPN, tout le trafic de l'OS passe par l'interface créée pour l'occasion (tun0 dans mon cas), je souhaite juste qu'un seul programme utilise cette interface, et que les autres utilises les autres interfaces (eth0) et ne passe pas par le VPN, car j'aimerai avoir accès aux autres programme (SSH) depuis l’extérieur avec la vrai IP de la machine, et non pas une IP dynamique de VPN que je ne pourrais connaître.

Le problèmes est que je ne sais pas comment faire… Avez-vous des idées de comment je pourrais faire ?

  • # Je pense avoir trouver quelque chose :3

    Posté par (page perso) . Évalué à 2.

    J'ai trouver ce script en cherchant mieux sur google, le seul truc c'est que je ne comprend pas à quoi sert la variable NETIF et LANIP ?, VPNUSER sert à définir l'utilisateur dont le traffic va être "dévier" et INTERFACE sert à définir l'interface d'arriver, non ?

    http://www.niftiestsoftware.com/2011/08/28/making-all-network-traffic-for-a-linux-user-use-a-specific-network-interface/

    Eleos - French student · Developer and SysAdmin self-taught

  • # Spam

    Posté par (page perso) . Évalué à -10. Dernière modification le 05/07/14 à 00:09.

    Compté créé aujourd'hui, spam?

    • [^] # Re: Spam

      Posté par . Évalué à 3.

      Je vois souvent ce genre de remarques et je ne les comprends toujours pas. C'est généralement le jour où l'on veut poster pour la première fois qu'on crée un compte puisqu'il est nécessaire de s'inscrire pour écrire…

      • [^] # Re: Spam

        Posté par (page perso) . Évalué à 1.

        Tu ne comprends pas quand c'est mis, la plupart du temps? Euh…
        Bon, si il faut expliquer : il y a parfois un nouveau compte créé avec comme contenu du premier journal/post de forum du vide bla bla avec comme par hasard un lien vers un site web à la fin. Si il faut expliquer le pourquoi du lien, c'est pour se faire de la pub. Donc spam.
        Tu as les plus discrets qui font ça que sur le forum exemple de spam que la notion de karma négatif n'émpèche pas assez (pas assez de votes quand c'est sur le forum).

        Ici, la remarque est toutefois des plus stupides, puisque l'auteur pose rééllement une question (pertinente) et ne fait aucun lien vers un autre site.

  • # Je demande de l'aide et l'on m'accuse de spam....

    Posté par (page perso) . Évalué à 6. Dernière modification le 05/07/14 à 00:24.

    Je viens ici demander de l'aide et l'on m'accuse de spam, merci ! (Mon compte a en effet été créer aujourd'hui)

    Ce forum n'est-il pas un forum d'entre aide ?

    C'est comme ça que vous traiter les nouveaux inscrits -.-'…

    Eleos - French student · Developer and SysAdmin self-taught

    • [^] # Re: Je demande de l'aide et l'on m'accuse de spam....

      Posté par (page perso) . Évalué à 4.

      Si si, c'est aussi un forum d'entre aide. Tu peux d'ailleurs voir d'après les commentaires qui suivent celui qui t'accuse de spam qu'il n'est pas suivi par tout le monde, loin de là. Tu peux aussi voir que la note de son commentaire est tombé à -8, ce qui veut dire que plusieurs personnes ont jugé son commentaire inutile ou ne sont pas d'accord.

      Moi-même, je ne comprends juste pas la remarque de Grégoire G. Comme le dit Zenitram, tu poses une question clairement, sans lien vers un site de pub merdique, il n'y a aucune raison de te traiter comme un spam.

      @Grégoire G : on a tous eu un compte "ouvert aujourd'hui". Et je pense qu'on doit être plein à avoir créé son compte parce qu'on avait une question à poser.

      It's a fez. I wear a fez now. Fezes are cool !

  • # changer le routage

    Posté par . Évalué à 3.

    le routage par defaut avec openvpn dit de tout faire passer dans le VPN,
    si tu as acces au serveur, tu peux faire en sorte qu'il ne pousse que la route vers le reseau distant

    si tu n'as pas acces au serveur, tu peux modifier la configuration du client pour refuser les routes proposées par le serveur,
    et tu rajoutes les routes qui t'interessent à la main

    ainsi ton client aura acces à internet via ses access habituels, et c'est seulement en allant vers le reseau distant que cela passera par le VPN.

    • [^] # Re: changer le routage

      Posté par (page perso) . Évalué à 1.

      "si tu n'as pas acces au serveur, tu peux modifier la configuration du client pour refuser les routes proposées par le serveur,
      et tu rajoutes les routes qui t'interessent à la main"

      En ajoutant la directives route-nopull dans le fichier de config OpenVPN, mais par contre je ne sais pas comment faire pour router, tu peut m'expliquer ou post un tuto s'il te plait ?

      Eleos - French student · Developer and SysAdmin self-taught

  • # Crade et simple

    Posté par . Évalué à 2.

    Une solution crade et simple. Crade bien que plus élégante qu'ajouter 15 000 règles de routages.
    Sinon ya un machin dans Linux pour le faire, mais je sais pas du tout comment ça marche, j'avais renoncé.

    Il s'agit de faire tourner un serveur sock sur le serveur VPN et forcer l'application à l'utiliser grâce a proxychain par exemple.

    Please do not feed the trolls

    • [^] # Re: Crade et simple

      Posté par (page perso) . Évalué à 3.

      Bonjour,

      c'est ce que j'avais commencé à répondre.
      Tu peux créer un tunel socks et soit forcer ton application à s'en servir si elle sait gérer les proxy socks (Firefox, Thunderbird…), soit la lancer en paramètre de Tsocks.

      J'ai cru que c'était un spam à cause du lien publié et du nouveau compte. Pardon.

      Bonne journée

  • # Plus simple ?

    Posté par (page perso) . Évalué à 1.

    Il n'existe pas de solution plus simple/propre que celles-là, faire une redirection du trafic d'une app selon l'user qui la lance (j'ai vu sa quelque part avec Iptables) ou attribuant une interface réseau à une app, et dire au autres d'utiliser celle par défaut (eth0) ?

    J'accepte volontier d'autre solution, le seul soucis, c'est que je n'arrive pas à faire fonctionner le tutos que j'ai citer plus haut qui utilise le principe de routage selon user…

    J'ai aussi essayer un autre tuto qui créer une loopback qui pointer sur l'interface tun0, il suffisait ensuite de modifier une directive dans la conf de mon programme afin de lui dire que tout son trafic doit passer par l'ip du loopback (192.168.0.1) qui sera ensuite rediriger vers le VPN, sans succès encore une fois…

    J'ai aussi des erreurs dans mes output de OpenVPN, pourtant les fichiers de config sont ceux fournit par mon VPN : Ipredator, auquel j'ai rajouter la directive route-nopull, et créer un fichier avec mes identifiants pour l'authentification…

    Le plus bizarre, c'est lorsque je touche au table de routage…, on dirait que sa casse le VPN, dans un sens ou il démarre, exécute les scripts de démarrage, puis au bout d'un certain temps, perd la connection, et redémarre, puis s'arrête, durant ce temps mon application n'as eu aucun accès à Internet… alors que si je ne régle aucun routage rien… ce que je ne veut absolument pas… Tout fonctionne… mais tout le traffic passe par le VPN :(

    Eleos - French student · Developer and SysAdmin self-taught

    • [^] # Re: Plus simple ?

      Posté par . Évalué à 2.

      dans le premier tuto,

      INTERFACE c'est l'interface du VPN
      VPNUSER, le compte qui devra voir son trafic passer par le VPN
      LANIP, le reseau IP du LAN
      NETIF, l'interface reseau du LAN

      le fonctionnement se fait en 3 etapes :

      1. le script automatique avec iptables, qui marque les paquets des applis utilisés par "VPNUSER"
      2. l'ajout d'une table iproute 200 vpnuser (à faire une seule fois
      3. le script de routage pour router les paquets marqués en (1) vers l'interface VPN

      le (2) n'a besoin d'etre fait qu'une seule fois.

      1 et 3 sont à lancer à l'ouverture du VPN.

      • [^] # Re: Plus simple ?

        Posté par (page perso) . Évalué à 1.

        Je vais refaire le tuto, et je vous tiens au courant.

        Eleos - French student · Developer and SysAdmin self-taught

  • # Pour faire simple :)

    Posté par (page perso) . Évalué à 0.

    Ce gars et dans le même cas que moi :) :

    http://www.debian-fr.org/debian-openmediavault-vpn-transmission-t47602.html

    Eleos - French student · Developer and SysAdmin self-taught

  • # Me revoilà :)

    Posté par (page perso) . Évalué à 0. Dernière modification le 05/07/14 à 15:15.

    Bon sa marche toujours pas…

    J'ai suivie le tuto à la lettre :

    1. J'ai créer le script up.sh dans le dossier /etc/openvpn/, celui-ci contient le contenue du script 1 et 2, l'un après l'autre, vous pouvez y accéder ici : http://pastebin.com/zyNRn6vx et qui se lancera à chaque démarrage du VPN J'ai juste modifier les ports pour mon application, et les DNS afin d'utiliser ceux fournit par mon VPN, et j'ai modifier les variables comme indiqué dans le tuto.

    User de mon App : debian-transmission
    Interface Ethernet : eth0
    Interface Tunnel VPN : tun0
    LANIP : j'ai laisser par défaut : 192.168.1.0/24, sachant que mon réseau local ont des IP du type 192.168.1.XXX

    1. J'ai par ailleurs aussi créer le script down.sh : http://pastebin.com/JtKgAe8g
      Il sert principalement, à chaque coupure du VPN de stopper Transmission et de vider Iptables

    2. Voici aussi mon fichier de configuration du VPN (Je suis chez Ipredator), c'est celui fournit par le VPN auquel j'ai rajouter la directive : route-nopull et l'emplacement des scripts : http://pastebin.com/0ddMf1Xc

    3. J'ai par ailleurs créer le fichiers qui contient mes identifiants pour la connexion au VPN.

    4. J'ai ensuite modifier le fichier /etc/iproute2/rt_tables et rajouter à la fin la ligne "200 debian-transmission", j'ai ensuite créer le fichier /etc/sysctl.d/9999-vpn.conf et mis le contenue indiqué dans le tuto (en remplaçant br0 par eth0) et ai lancé la commande sysctl -p

    fichier /etc/iproute2/rt_tables : http://pastebin.com/6RizejwZ
    fichier /etc/sysctl.d/9999-vpn.conf : http://pastebin.com/LBNKAUf2

    1. Je lance ensuite OpenVPN en mode console via la commande : "openvpn --config /etc/openvpn/IPredator-CLI-Password.conf"

    Voici les outputs au démarrage : http://pastebin.com/wufZGB4H

    Voici les outputs au bout de 30 sec (Tiens c'est comme la directive keepalive dans le fichier de config IPredator-CLI-Password.conf, celle-ci permettant de pinger le VPN toute les 30 sec, et de redémarre au bout de 10 sec si rien reçu en retour) : http://pastebin.com/yGbupABv

    On dirait que le VPN est inaccessible, je lance donc le service openvpn et je jette un coup d’œil à ifconfig et je me rend compte que tout les paquet envoyer par tun0 est droppé… jusqu’à ce que OpenVPN redémarre et rebelote : http://pastebin.com/ge35WCxa

    Je décide donc de virer tout ce qui est script de démarrage/arrêt, de virer la directive route-nopull, et de clear Iptables, de supprimer le fichier 9999-vpn.conf et d'enlever la ligne dans rt_tables en relançant la commande, bref de refaire une installation propre d'openvpn sans rien, et la le VPN se lance et fonctionne : seul hic, c'est que tout le trafic passe par le VPN, ce que je n'ai nullement envie….

    Eleos - French student · Developer and SysAdmin self-taught

    • [^] # Re: Me revoilà :)

      Posté par (page perso) . Évalué à 1.

      Je précise que pendant tout le temps ou le VPN était "disponible", l'interface de Transmission était accessible en local (192.168.1.1:9091) et que celui-ci ne pouvait télécharger aucun torrent (Pas de connection avec le tracker de ipleak.net).

      Eleos - French student · Developer and SysAdmin self-taught

    • [^] # Re: Me revoilà :)

      Posté par . Évalué à 3.

      dans la doc du premier tuto ils disent que seul le script 2 a besoin d'etre lancé dans le UP du vpn

      les autres sont lancés avant pour "ppreparer" le terrain

      ATTENTION :
      pour repondre à un commentaire precedent, il faut cliquer sur "repondre" plutot que sur "poster un commentaire"

      ca evite d'ouvrir 25 discussions pour nous dire ou tu en es

  • # Je vais tester ce tuto...

    Posté par (page perso) . Évalué à -1.

    Ce tuto à l'air de faire ce que je veut… je vais tester pour voir : http://www.botcyb.org/2012/11/force-application-to-use-vpn-using.html

    Eleos - French student · Developer and SysAdmin self-taught

  • # Re

    Posté par (page perso) . Évalué à 1.

    Je peut pousser une application à utiliser le VPN, grâce à ce tuto, mais comment je peut faire pour empêcher les autres de l'utiliser ?

    Eleos - French student · Developer and SysAdmin self-taught

    • [^] # Re: Re

      Posté par . Évalué à 3.

      Je peut pousser une application à utiliser le VPN, grâce à ce tuto, mais comment je peut faire pour empêcher les autres de l'utiliser ?

      ben c'est exactement ce que tu voulais, faire que les applis d'un USER passe dans le vpn
      les autres ne doivent pas y passer,

      normalement si tu va sur monip.net ou whatismyip.com avec ton navigateur, tu dois voir celle de la maison et pas celle du VPN

  • # Proxychains

    Posté par . Évalué à 2.

    Pour faire passer uniquement un logiciel, tu ouvre une session ssh avec tunnel dynamique via le VPN et tu utilise proxychains.

Suivre le flux des commentaires

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