Iptables'接受'规则不起作用

时间:2018-04-08 07:35:24

标签: iptables

我在我的私人VPS上设置了VPN服务器,操作系统是CentOS 7.现在我想这个VPN服务器只能用于访问网站,所以我将使用iptables来拒绝所有输出tcp端口,除了服务器的端口80和443。

1,我添加了一个非root用户' ssuser'

useradd ssuser

2,以此用户身份运行VPN服务器。

3,添加iptables规则。

 iptables -t filter -m owner --uid-owner ssuser -A OUTPUT -p tcp --dport 80 -j ACCEPT
 iptables -t filter -m owner --uid-owner ssuser -A OUTPUT -p tcp --dport 443 -j ACCEPT
 iptables -t filter -m owner --uid-owner ssuser -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset

4,iptables -L向我展示了这个输出:

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
1    OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            owner UID match 1000 tcp dpt:80
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            owner UID match 1000 tcp dpt:443
4    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            owner UID match 1000 reject-with tcp-reset

不幸的是,Accept规则不起作用,所有端口都被阻止。我的VPN服务器无法访问任何网站,除非删除第4条规则。

根据规则的顺序,iptables应该首先接受端口80,443,然后拒绝其余的端口吗?

有人可以告诉我我必须做什么吗?

由于

1 个答案:

答案 0 :(得分:0)

如果可以显示iptables过滤器,则需要使用命令“ iptables -L -t filter”。我建议添加-vvv“ iptables -L -t filter -vvv”。它会向您显示更多详细信息。