Você pode marcar pacotes via iptables
com base no UID do processo de criação. Pode utilizar esta marca do Netfilter tanto para o encaminhamento (avançado) ( ip rule
: man ip
ou man ip-rule
; palavra-chave "fwmark") como para a DNAT. Não tenho certeza qual é mais fácil / melhor.
Editar 1 Para cada usuário:
iptables -t mangle -A PREROUTING -m owner --uid-owner $user -j MARK --set-mark $usermark
# one line in /etc/iproute2/rt_tables (numbers don't matter)
ip route add default via $user_gw_ip dev $user_if src $user_if_local_ip table $user_table
ip rule add type unicast fwmark $usermark priority 100 table $user_table