如何使用 iptables 阻止用户访问除特定端口之外的所有端口?

如何使用 iptables 阻止用户访问除特定端口之外的所有端口?

我想使用 iptables 阻止特定用户(所有者)使用除 80、443、1005 之外的所有端口。

我应该使用什么命令?

答案1

您可以使用“所有者”匹配。例如:

iptables -A OUTPUT -o eth0 -m 所有者 --uid-owner nikesh -j 接受

阅读更多:http://linuxpoison.blogspot.it/2010/11/how-to-limit-network-access-by-user.html#ixzz3UOJ2glqS

无论如何,简单地谷歌一下“iptables matchowner”就会返回大量结果。在发布问题之前,请先进行自己的研究。

更新 要阻止每个端口,您有两种不同的选择。

1.改变连锁政策。以 INPUT 链为例:

iptables -P 输入拒绝

2. 将链策略保留为默认值(接受),但创建最后匹配规则以拒绝所有流量。例子:

iptables -A 输入 -j 拒绝

此后,您可以通过发布多个 ACCEPT 规则来重新启用所需的端口。例如:

iptables -I 输入 1 -m 所有者 --dport 80 --uid-owner nikesh -j 接受
iptables -I 输入 1 -m 所有者 --dport 443 --uid-owner nikesh -j 接受
iptables -I 输入 1 -m 所有者 --dport 1005 --uid-owner nikesh -j 接受

这些只是示例。请花点时间规划您的规则集。最重要的是,阅读 IPTABLES 手册页. 尝试在不阅读手册的情况下配置任何关键服务(如网络防火墙)都会导致灾难。

相关内容