I have an RHEL 6 system which has 20 users. I have 20 ports on which separate versions of a service is running. I want user a to access port a, but not other ports. Is there a way to do this? (possibly by modifying iptables)?
You can use the "owner" iptables module to do this. As an example to restrict port 999 to the user 'fred' only you can use:
iptables -I OUTPUT -p tcp --dport 999 -j REJECT iptables -I OUTPUT -p tcp --dport 999 -m owner --uid-owner fred -j ACCEPT
The above rules are inserted to the top of the OUTPUT chain so the order reject then accept.