web-dev-qa-db-fra.com

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

J'utilise plusieurs interfaces réseau (LAN et sans fil) et j'ai remarqué qu'il était possible de modifier l'ordre des interfaces préférées. Comment puis-je utiliser le réseau câblé pour travailler, vérifier les e-mails, etc. (en toute sécurité) et utiliser le réseau sans fil VLAN pour accéder à d'autres éléments (autrement bloqués par des ports et parfois WebSense)?

48
Kami

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

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 votre trafic de courrier route au-dessus de 6.7.8.9, faites juste

Sudo route add mail.myserver.com 6.7.8.9

Certaines versions de route peuvent nécessiter un mot clé "gw" entre l'adresse et le saut suivant. Si vous voulez créer un itinéraire complet pour le saut suivant, ajoutez simplement un masque de réseau en notation CIDR pour la destination, comme

Sudo route add 192.168.0.0/24 6.7.8.9

Si vous souhaitez afficher la table de routage existante, utilisez

netstat -nrl
or
ip route list

Si vous êtes sous Windows, "net route" vous mènera presque jusqu'au bout, mais la syntaxe est totalement différente.

22
Tim Hatch

Si vous souhaitez simplement activer deux cartes réseau en même temps, vous pouvez définir la commande de service dans Préférences Système/Réseau en sélectionnant le rapport situé sous la liste des périphériques réseau. Glissez-déposez l'ordre dans lequel vous les souhaitez.

Par exemple, Ether et WiFi sont toujours actifs sur mon MBP avec Ether défini au-dessus de Wi-Fi. Depuis que j'utilise Ether au travail, j'ai configuré cette NIC avec les paramètres de proxy et mon Wi-Fi sans. Quand je rentre chez moi, il n’est pas nécessaire de modifier les paramètres. Vous pouvez également le faire depuis un terminal en utilisant/usr/bin/networksetup -ordernetworkservices.

Mais pour avoir à la fois actif et une application utilisant le non-défaut, j'ai eu de la chance avec une rotation légèrement plus facile sur les conseils de @ Andor. Si je souhaite qu'une application n'utilise pas Ether dans mon cas, je règle les paramètres de proxy de l'application sur l'adresse IP de mon adaptateur Wi-Fi. Il utilisera cette interface pour sortir et contournera ainsi le proxy de la société et les serveurs de surveillance. Donc, si Ether a une adresse de 1.2.3.4 et vient avant Wi-Fi (5.6.7.8) dans l'ordre de service, j'ai mon proxy d'application à 5.6.7.8.

6
SaxDaddy

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. En configuration, ajoutez la ligne suivante. Vous devez spécifier l'adresse 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 cette information sur différentes pages. J'espère donc que cela aidera les autres à le faire plus rapidement.

5
matrik

Vous devrez probablement utiliser les fonctions de contrôle IO de bas niveau (ioctl). En particulier:

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

et

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

Voir cette page de manuel pour plus de détails.

1
Martin Cote

Le problème est que vous allez avoir plusieurs passerelles vers votre connexion réseau, ce qui 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", qui indique quelle interface vous souhaitez utiliser, comme dans tcpdump, par exemple:

tcpdump -i eth0

Mais comme je pense que vous vous interrogez sur le routage des logiciels de bureau standard, cela devient un peu plus difficile ...

De toute façon, je peux vous donner un truc pour cela ... Ma solution habituelle pour régler ce problème consiste à utiliser un proxy et à n’avoir qu’une passerelle. Presque tous les logiciels qui utilisent Internet de nos jours ont des options pour configurer un proxy. Vous pouvez donc le faire de l'une des façons suivantes:

1.- Configurer un proxy sur la partie "non sécurisée" de votre réseau (et je veux dire, les stratégies ne sont pas appliquées) et diriger votre logiciel vers ce proxy.

2.- Configurer un serveur SSH sur un autre lieu "non sécurisé", par exemple votre domicile ou un serveur dédié que vous avez sur Internet, et ouvrir une connexion via une fonction spéciale de SSH qui crée un serveur proxy chaussettes:

ssh -D 1234 user@Host

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

Astuces pour éviter les politiques Internet des entreprises: P

:RÉ

1
Andor

Je lance mes applications métier dans une machine virtuelle. J'ai utilisé les instructions ci-dessus pour définir le WiFi comme connexion préférée, puis j'ai configuré la machine virtuelle pour utiliser le port Ethernet en tant qu'adaptateur "ponté".

Tout ce qui tourne à l'intérieur de la machine virtuelle est maintenant lié au port Ethernet. Le WiFi est ma connexion préférée pour toutes les autres applications (en dehors de la machine virtuelle), dans la mesure où une connexion WiFi est connectée.

Je crois qu'il existe des utilitaires pouvant forcer la liaison d'une application à un port Ethernet particulier, mais je n'ai pas effectué de recherche à ce sujet pour MacOS.

La méthode de routage mentionnée précédemment est quelque peu complexe pour le "profane", mais elle semble également être une bonne approche viable, en particulier si vous obtenez à plusieurs reprises la même adresse IP sur vos connexions.

1
Rich

Même si cette question concerne OSX, je vais laisser ici le texte suivant, qui fonctionne sous Windows 7 64 bits. Cette question est apparue comme l’un des principaux résultats lorsqu’on a cherché Google pour forcer les applications à passer par un adaptateur spécifique , les éléments suivants pourraient donc être utiles aux autres.

http://www.howtogeek.com/117890/how-to-force-an-application-to-use-a-specific-network-card/

Le guide ci-dessus utilise un utilitaire appelé ForceBindIp qui est censé fonctionner sur Windows NT/2000/XP/2003, mais je n'ai eu aucun problème à le faire fonctionner sous Windows 7 - 64 bits.

En outre, Problèmes avec ForceBindIP sous Windows 7 (x64)

0
Ashutosh Jindal