仅当我拥有端口 53 UDP 出站规则 *和入站* 规则时,DNS 才有效

仅当我拥有端口 53 UDP 出站规则 *和入站* 规则时,DNS 才有效

我正在锁定入站和出站端口

iptables -P INPUT DROP
iptables -P OUTPUT DROP

然后我允许某些流量到某些服务器

  • 从我的网络通过 SSH 连接到服务器(入站)
  • 从服务器到另一台服务器的 8080 端口上的 HTTP 请求(出站)
iptables -A INPUT -p tcp -s <my_ip> --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -d <server_ip> --dport 8080 -j ACCEPT

我注意到上述规则和执行 HTTP 请求时存在一些问题,因此我添加了

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

对于 DNS,我随后添加了:

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

但是,nslookup不起作用:

nslookup google.com

最终起作用的是还允许端口 53 入站流量:

iptables -A INPUT -p udp --dport 53 -j ACCEPT

总的来说,这些是我的命令:

1. iptables -A INPUT -p tcp -s <my_ip> --dport 22 -j ACCEPT
2. iptables -A OUTPUT -p tcp -d <my_server> --dport 8080 -j ACCEPT
3. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
4. iptables -A INPUT -p udp --dport 53 -j ACCEPT
3. iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4. iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
5. iptables -P INPUT DROP
6. iptables -P OUTPUT DROP

我的问题是:我想尽可能地锁定服务器。我不认为我需要打开 UDP 入站。我知道 UDP 是无状态的等等。但我通常不需要打开任何入站来使 DNS 正常工作,无论是在防火墙上还是在我的 Windows 机器上。

我做错了什么吗,我需要端口 53 入站?

相关内容