How do I allow only certain IPSet set's to access a certain port with iptables?
Solution 1:
Reverse the presumption: allow through those that you want, then deny the rest:
iptables -A INPUT -m set --match-set uk.zone src -p tcp --dport 15765 -j ACCEPT
iptables -A INPUT -m set --match-set th.zone src -p tcp --dport 15765 -j ACCEPT
iptables -A INPUT -p tcp --dport 15765 -j DROP
(and similarly for port 16247, or try getting clever with -m multiport
). Note that the order is important: the exceptions (ACCEPT
s) need to come before the rule (DROP
).