如何配置 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

您的输出链存在问题,因为您允许数据​​包通过 53 端口发送至 DNS。但由于您没有为已建立的连接指定规则,因此响应被丢弃。

添加:

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

您的输入链也是如此。

相关内容