De hecho, tengo dos escenarios para aplicar esto:
Escritorio de múltiples asientos: dos conexiones de red con puertas de enlace de Internet y dos cuentas que realizan tareas intensivas de ancho de banda en cada una. Quiero dividirlos para que una cuenta solo use eth0 y la segunda cuenta solo eth1.
Servidor: tengo dos direcciones IP en un servidor y quiero asegurarme de que el usuario de correo solo envíe correos electrónicos desde la segunda IP (alias eth0: 1)
El segundo probablemente puede ser IPTabled (simplemente no sé cómo) para enrutar el tráfico de correo electrónico a través de esa interfaz, pero el primero se ocupará de todo tipo de tráfico, por lo que debe estar basado en el usuario. Si hay una solución basada en el usuario, podría aplicarla en ambos lugares.
-m owner
. Es bastante confiable con TCP y UDP, pero otros tipos no son tan confiables. La única forma confiable de lograr este 100% es con máquinas virtuales o contenedores.Puede configurar dos máquinas virtuales en la máquina física, y configurar el puente de interfaz de red para que una VM use eth0 y la otra VM use eth1. Consulte la sección de documentación de la caja virtual sobre redes en puente .
fuente
No estoy seguro de que sea posible para el primer punto. Desea hacer una manipulación de enrutamiento basada en el ID de usuario del usuario. La última vez que revisé no vi esta posibilidad.
Para el segundo punto, no es iptables lo que desea usar, sino iproute2 (http://lartc.org/howto/ y http://www.policyrouting.org/iproute2.doc.html para el documento completo). Es el reemplazo de los comandos ifconfig / route ya que se consideran obsoletos. iproute2 le permite enrutar paquetes de acuerdo con su fuente. Eso es lo que quieres
fuente