IPTables - 仅允许来自特定范围的流量

IPTables - 仅允许来自特定范围的流量

我试图阻止除某些定义的子网之外的所有到网络服务器的流量。我检查了很多帖子,并相信我的 iptables 设置正确,但由于某种原因,该站点仍然可以在我在规则集中定义的子网之外访问。有人能够阐明我可能做错了什么吗?我已经确定,删除规则 3 会导致网站完全无法访问。该网站本身位于 10.10.0.0/16。

Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  any    any     10.10.0.0/16         anywhere            
2        0     0 ACCEPT     all  --  any    any     172.30.0.0/16        anywhere            
3        0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  any    lo      anywhere             anywhere    

目标是添加各种列入白名单的公共 IP 并锁定该网站,以便只有某些人可以访问。

添加规则如下:

iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
iptables -I INPUT -s 10.10.0.0/16 -j ACCEPT
iptables -I INPUT -s 172.30.0.0/16 -j ACCEPT
iptables -P INPUT DROP

答案1

规则顺序iptables 中的问题。通过使用iptables -A您正在附加规则在最后规则集的。但iptables -I会在规则集之上插入一条规则,除非您指定了行号(您没有指定)。因此,规则不会按预期顺序进行评估。

这是一个应该可以工作的示例配置,基于这个帖子。之前刷新您的规则以避免重复。

iptables -P FORWARD DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 10.10.0.0/16 -j ACCEPT
iptables -A INPUT -s 172.30.0.0/16 -j ACCEPT
# add some more whitelisting rules here
iptables -P INPUT DROP # Drop everything we don't accept

第三条规则很重要:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

否则,您的服务器将不会收到对其发起的连接的回复,例如 DNS 请求。

顺便说一句,iptables 适用于 IPv4,但不适用于 IPv6,因此,如果您的服务器支持 IPv6,您可能会有客户端使用以下方式进行连接IPv6。如果它们通过主机名而不是 IP 地址进行连接,并且主机名解析为服务器上的有效 IPv6 地址,则这是可能的。您可能会意识到,但许多人仍然不知道 iptables 确实可以过滤 IPv6 流量(和攻击)。ip6tables如果适合您的设置,我也会添加类似的规则。

相关内容