我正在尝试将 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
。
还可以考虑使用ufw
or 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
第二条规则意味着:放弃其他一切。