J'ai en fait deux scénarios pour appliquer cela:
Multiseat Desktop: deux connexions réseau avec passerelles Internet et deux comptes effectuant des tâches gourmandes en bande passante sur chacune. Je veux les diviser afin qu'un seul compte utilise eth0 et le deuxième compte n'utilise que eth1.
Serveur: J'ai deux adresses IP sur un serveur et je veux m'assurer que l'utilisateur de messagerie n'envoie que des courriels à partir de la deuxième adresse IP (alias eth0: 1)
Le second peut probablement être IPTabled (je ne sais pas comment) pour acheminer le trafic de messagerie via cette interface, mais le premier traitera de toutes sortes de trafic et doit donc être basé sur l'utilisateur. S'il existe une solution basée sur l'utilisateur, je pourrais l'appliquer aux deux endroits.
-m owner
. Il est assez fiable avec TCP et UDP, mais d'autres types ne sont pas aussi fiables. Le seul moyen fiable d'atteindre cet objectif à 100% est d'utiliser des machines virtuelles ou des conteneurs.Vous pouvez configurer deux machines virtuelles sur la machine physique et configurer le pontage de l'interface réseau de sorte qu'une machine virtuelle utilise eth0 et l'autre machine virtuelle utilise eth1. Voir la section de documentation de la boîte virtuelle sur les réseaux pontés .
la source
Je ne suis pas sûr que ce soit possible pour le premier point. Vous souhaitez effectuer une manipulation de routage en fonction de l'ID utilisateur de l'utilisateur. La dernière fois que j'ai vérifié, je n'ai pas vu cette possibilité.
Pour le deuxième point, ce n'est pas iptables que vous souhaitez utiliser mais iproute2 (http://lartc.org/howto/ et http://www.policyrouting.org/iproute2.doc.html pour la doc complète). C'est le remplacement des commandes ifconfig / route car elles sont considérées comme obsolètes. iproute2 vous permet de router les paquets en fonction de sa source. C'est ce que tu veux
la source