56 votes

Forcer une application à utiliser une interface réseau spécifique

J'utilise plusieurs interfaces réseau (LAN et Wireless), et j'ai remarqué qu'il existe un moyen de modifier l'ordre des interfaces préférées. Comment puis-je utiliser le réseau filaire pour travailler, consulter mes e-mails, etc. (en toute sécurité), et utiliser le VLAN sans fil pour accéder à d'autres choses (autrement bloquées par les ports et parfois par websense) ?

25voto

L'astuce consiste à ajuster les tables de routage (ce qui ne dépend pas du port de destination ou de l'application source, mais dépend de l'hôte de destination). Cela suppose que vous êtes sous Linux ou OS X (comme l'indiquent les balises).

Disons que votre passerelle par défaut est 1.2.3.4 et que vous avez un vpn qui peut acheminer le trafic sur 6.7.8.9. Si vous voulez que le trafic de votre courrier électronique soit acheminé sur 6.7.8.9, il suffit de faire

sudo route add mail.myserver.com 6.7.8.9

Certaines versions de route peuvent exiger un mot clé "gw" entre l'adresse et le prochain saut. Si vous voulez créer une route de réseau complet sur ce prochain saut, ajoutez simplement un masque de réseau en notation CIDR pour la destination, comme suit

sudo route add 192.168.0.0/24 6.7.8.9

Si vous voulez visualiser la table de routage existante, utilisez

netstat -nrl
or
ip route list

Si vous êtes sous Windows, "net route" vous permettra d'atteindre la plupart des objectifs, mais la syntaxe est totalement différente.

8voto

SaxDaddy Points 3551

Si vous souhaitez simplement que deux cartes réseau soient actives en même temps, vous pouvez définir l'ordre de service dans Préférences système/Réseau en cliquant sur l'engrenage situé sous la liste des périphériques réseau. Faites glisser et déposez l'ordre dans lequel vous voulez les placer.

Par exemple, j'ai Ether et WiFi toujours actifs sur mon MBP avec Ether réglé au-dessus de Wi-Fi. Comme j'utilise Ether au travail, je configure cette carte réseau avec des paramètres de proxy et mon Wi-Fi sans. Lorsque je rentre chez moi, il n'est pas nécessaire d'ajuster les paramètres. Vous pouvez également le faire à partir du terminal en utilisant /usr/bin/networksetup -ordernetworkservices .

Mais pour faire en sorte que les applications actives et les applications utilisent la valeur par défaut, j'ai eu de la chance en appliquant les conseils de @Andor de manière un peu plus simple. Si je veux qu'une application n'utilise pas Ether dans mon cas, je règle les paramètres du proxy de l'application sur l'adresse IP de mon adaptateur wi-fi. Elle utilisera cette interface pour sortir et contournera ainsi les serveurs proxy et de surveillance de l'entreprise. Ainsi, si l'adresse d'Ether est 1.2.3.4 et qu'elle précède celle de Wi-Fi (5.6.7.8) dans l'ordre des services, je fais en sorte que mon application utilise le proxy 5.6.7.8.

5voto

matrik Points 51

Pour Mac, il existe une solution simple que j'utilise. C'est en fait une implémentation de la solution de @Andor. Installez un proxy et configurez vos applications pour l'utiliser :

  1. J'ai installé SquidMan

  2. Dans la configuration, ajoutez la ligne suivante. Vous devez spécifier l'ip que vous utiliserez pour vos applications privées au lieu de x.x.x.x :

    tcp_outgoing_address x.x.x.x
  3. Démarrez SquidMan et configurez votre application pour l'utiliser comme proxy.

J'ai passé une heure à trouver ces informations dans différentes pages, j'espère donc que cela aidera les autres à le faire plus rapidement.

2voto

Sancticide Points 9

Le problème est que vous allez avoir plusieurs passerelles vers votre connexion réseau, et c'est un peu difficile à gérer...

Certains outils Unix et Linux liés au serveur ou au réseau ont généralement un drapeau appelé "interface", où vous pouvez indiquer quelle interface vous voulez utiliser, comme dans tcpdump, par exemple :

tcpdump -i eth0

Mais comme je pense que vous demandez le routage d'un logiciel de bureau standard, cela devient un peu plus difficile...

Je peux vous donner un truc pour ça en tout cas... Ma solution habituelle pour faire face à ce problème est d'utiliser un proxy et de n'avoir qu'une seule passerelle. Presque tous les logiciels qui utilisent Internet de nos jours ont des options pour configurer un proxy, donc vous pouvez le faire de n'importe quelle façon :

1. mettre en place un proxy sur la partie "non sécurisée" (c'est-à-dire où les politiques ne sont pas appliquées) de votre réseau, et faire pointer votre logiciel vers ce proxy.

2. installer un serveur SSH dans un autre endroit "non sécurisé", par exemple chez vous, ou sur un serveur dédié que vous avez sur Internet, et ouvrir une connexion grâce à une fonction spéciale de SSH qui crée un serveur proxy de chaussettes :

ssh -D 1234 user@host

Cela créerait sur votre ordinateur un serveur proxy de chaussettes sur le port "1234", qui se connecterait à votre "hôte", en utilisant votre "utilisateur", et irait sur Internet via la connexion que votre "hôte" possède... Ensuite, sur votre logiciel local, il vous suffit d'ouvrir les outils de configuration du proxy, et de pointer sur localhost:1234.

De belles astuces pour éviter les politiques Internet des entreprises :P

D

1voto

Vous aurez probablement besoin d'utiliser les fonctions de contrôle d'E/S de bas niveau (ioctl). En particulier :

ioctl( socket, SIOCGIFADDR, ... ); // Get network interface address

et

ioctl( socket, SIOCSIFADDR, ... ); // Set network interface address

Véase cette page de manuel pour plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X