如何配置 IPTables 以在入站方向接受来自单个 IP 的 http,并在出站方向允许 DNS 并阻止?

如何配置 IPTables 以在入站方向接受来自单个 IP 的 http,并在出站方向允许 DNS 并阻止?

我正在尝试将 IPTables 配置为仅接受来自 10.0.0.1 的 http 连接并拒绝其他所有连接。当我从 10.0.0.1 建立 http 连接时,它被阻止。我面临另一个问题。我试图在传出方向上允许 DNS 并阻止其他所有内容。问题是当我使用 OUTPUT DROP 时,所有内容都会被丢弃

这是我所做的

iptables -A INPUT -p tcp -s 10.0.0.1 --dport 80 -j ACCEPT
iptables -A INPUT DROP
iptables -A OUTPUT -p udp -d 8.8.8.8 --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d 8.8.8.8 --dport 53 -j ACCEPT
iptables -P OUTPUT DROP

答案1

您似乎也阻止了输出(删除最后两行)。源端口不会是 80。您应该已经配置了--dport 80

还可以考虑使用ufwor gufw( 的图形前端ufw)。因为这些可以为您做到这一点,并且更容易使用。

答案2

iptables规则,顺序就很重要。如果 10.0.0.1 是客户连接到 HTTP 服务器,你需要的是--dport(目标端口),而不是来源港口。所以:

iptables -A INPUT -p tcp -s 10.0.0.1 --dport 80 -j ACCEPT
iptables -P INPUT DROP

第二条规则意味着:放弃其他一切。

相关内容