URL: https://linuxfr.org/users/reynum/journaux/specifier-une-interface-reseau-a-un-processus-2 Title: Spécifier une interface réseau à un processus (2) Authors: reynum Date: 2014年08月05日T18:06:15+02:00 License: CC By-SA Tags: réseau, virtualisation, openvpn et debian Score: 17 Il y a 2 ans et (bientôt) 6 mois [j'ai posté une question sur le forum](http://linuxfr.org/forums/astucesdivers/posts/specifier-une-interface-reseau-a-un-processus) Désolé pour les personnes m'ayant répondues mais je ne suis pas arrivé à quelque chose de concluant avec leurs solutions (je n'ai sûrement pas bien compris les explications) Du coup je suis arrivé à une solution (que beaucoup qualifierons d'[overkill](http://fr.wikipedia.org/wiki/Overkill)) mais qui a le mérite de fonctionner et de ne pas être trop compliquée (pour moi en tout cas), je vais donc la décrire ici. Rappel : -------- Le but avoué était de faire passer le trafic réseau de certains processus vers une interface particulière, dans un but inavouable de faire tourner transmission sur un tunnel VPN et de garder la navigation internet sur un canal non sécurisé pour avoir un meilleur débit. L'idée générale : ----------------- Pour ce faire j'ai utilisé la virtualisation (j'espère ne pas trop me faire assassiner par les net-admins chevronnés). Dans la VM (Machine Virtuelle) on crée la connexion VPN. A l'extérieur de la VM on route le trafic. Du coup tous les services réseau tournant dans la VM passeront par le VPN Les détails : ----------- ### - L'Hôte Sur la machine hôte (une Debian Testing) il y a un bridge br0 défini dans le fichier `/etc/network/interfaces` tel que : ``` auto br0 iface br0 inet static bridge_ports dummy0 address 10.0.0.1 netmask 255.255.255.0 ``` On note la présence d'un port dummy qui ne sert qu'à une chose, que le pont ait au moins une interface. ce module s'active avec : `modprobe dummy numdummies=10` pour avoir 10 interface dummy. Vous pouvez vérifier la présence des dummy avec la commande `ifconfig -a` ou mieux `ip a` Pour que ces interfaces soient permanentes il faut créer un fichier nommé `/etc/modprobe.d/dummy.conf` et qui contiendra `options dummy numdummies=10` Ensuite on active le routage. `echo 1> /proc/sys/net/ipv4/ip_forward` Pour que cette modification soit permanente. if faut dé-commenter la ligne `net.ipv4.ip_forward=1` du fichier `/etc/sysctl.conf` Pour des raisons de facilité j'ai installé dnsmasq, en effet je trouve cela plus simple pour l'installation de la VM d'avoir un relais DNS, par contre je ne l'utilise pas pour le DHCP. installation de dnsmasq `apt-get install dnsmasq` Le paramétrage se fait dans le fichier `/etc/dnsmasq.conf` il faut simplement mettre `interface=br0` `no-dhcp-interface=br0` et relancer dnsmasq `/etc/init.d/dnsmasq restart` ou `systemctl restart dnsmasq.service` si vous ~~utilisez~~ essayer d'adopter systemd. Normalement une fois cela fait vous avez un fichier `/var/run/dnsmasq/resolv.conf` qui contient les dns extérieurs et un `dig` vous renvois un `SERVER: 127.0.0.1#53(127.0.0.1)` Et enfin le routage (NAT) du trafic vers l'interface de sortie eth0. `iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE` ### - La Machine virtuelle En ce qui concerne la distribution à virtualiser j'ai pris une Debian Stable installée sans interface graphique et avec un serveur SSH et serveur web. Pour simplifier j'utilise virt-manager comme GUI et KVM comme solution, pensez à mettre le pont br0 en virtio sur l'interface réseau de la VM. A l'installation on met l'IP 10.0.0.10 par exemple et 10.0.0.1 en DNS ainsi que 10.0.0.1/24 en passerelle. Une fois l'installation finie, on installe OpenVPN (c'est ce qu'utilise mon fournisseur de VPN). `apt-get install openvpn` Et on le paramètre comme expliqué sur le site de votre fournisseur de VPN (souvent il faut télécharger des certificats et des fichiers de conf). Optionnel : On fait un [partage nfs](http://formation-debian.via.ecp.fr/nfs.html) de votre disque dur sur l'hôte vers la vm On installe Transmission en mode démon `apt-get install transmission-daemon` [On paramètre le fichier json](http://homeserver-diy.net/wiki/index.php?title=Installer_un_serveur_de_téléchargement_bit-torrent_sous_debian_avec_transmission.) Optionnel : dans la section "download-dir": du fichier json mettre votre point de montage sur le disque de l'hôte. puis on se connecte sur 10.0.0.10:9091/transmission/web/ et on peut commencer à partager des torrent via VPN et surfer sur l'hôte sans passer par l'autre bout du monde. Bien entendu tout autre service que vous voudriez voir passer par le tunnel sécurisé devra être installé sur la VM.

AltStyle によって変換されたページ (->オリジナル) /