Infelizmente, devido à maneira como o netfilter
funciona, você não pode fazer uma configuração de "um passo".
- Os proprietários de pacotes só podem ser detectados na cadeia OUTPUT, mas
- O SNAT só pode ser executado na cadeia POSTROUTING
Dito isso, em vez de usar o SNAT, recomendo usar uma combinação de netfilter
e iproute2
, por exemplo:
Para netfilter
:
iptables -A OUTPUT -m owner --uid-owner 500 -j MARK --set-mark 500
iptables -A OUTPUT -m owner --uid-owner 501 -j MARK --set-mark 501
Para iproute2
:
ip rule add fwmark 500 table 500
ip rule add fwmark 501 table 501
ip route add default via $gateway dev eth0 src $ip_eth0 table 500
ip route add default via $gateway dev eth0 src $ip_eth0_1 table 501