Question: How do I route traffic though tun1 for a specific user?
What I've tried so far: I followed:
1: iptables forward all traffic to interface
sudo iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to-source 192.168.1.1
Result: The traffic doesnt reach tun1, which I can see in wireshark and "host google.com" gives no result.
2:
sudo iptables -t nat -A POSTROUTING -m owner --uid-owner test --out-interface tun1
Result: The traffic goes through default route, i.e. reaches internet without going through tun1 (vpn).
More information:
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: enx0c5b8f279a64: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.8.100/24 brd 192.168.8.255 scope global dynamic noprefixroute enx0c5b8f279a64
valid_lft 53043sec preferred_lft 53043sec
inet6 fe80::5f5a:e5de:ae93:e80b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
9: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
link/none
inet 10.0.0.1/24 scope global tun1
valid_lft forever preferred_lft forever
inet6 fe80::c626:a226:a66c:2b0/64 scope link stable-privacy
valid_lft forever preferred_lft forever
ip route list
default via 192.168.8.1 dev enx0c5b8f279a64 proto dhcp metric 100
10.0.0.0/24 dev tun1 proto kernel scope link src 10.0.0.1
169.254.0.0/16 dev enx0c5b8f279a64 scope link metric 1000
192.168.8.0/24 dev enx0c5b8f279a64 proto kernel scope link src 192.168.8.100 metric 100
linkdown