解析外部主机需要哪些 UDP 端口?

解析外部主机需要哪些 UDP 端口?

今天我要求我的主机提供商封锁除 53 端口之外的所有 UDP 端口。由于每天都有 UDP 攻击,这是目前阻止我的线路泛滥的唯一选择。

现在,由于阻止已经到位,我无法再获取任何东西。

[root@s1 wupload]# wget http://www.google.com
--2011-08-15 11:56:28--  http://www.google.com/
Resolving www.google.com... failed: Temporary failure in name resolution.
wget: unable to resolve host address `www.google.com'

服务器本身没有任何变化。仅在路由器级别。端口 53 仍处于打开状态,我看到通过 iptables 传入的命中。

我运行的是 CentOS64 5.6。

为了使 wget 和 cURL 正常工作,还需要打开哪些端口?

答案1

要解析主机,您需要 UDP 53传出(我假设您位于状态防火墙后面)。要使用默认端口选项的 wget 和 curl,您需要 TCP 80传出。您不需要为此特定目的使用任何传入端口。

要检查是否可以解析主机,可以使用 dig 命令。如果您希望使用以下命令解析 www.google.com开放DNS,你需要输入以下命令:

挖掘@208.67.222.222 www.google.com

你应该得到以下答案:

; <<>> DiG 9.7.3 <<>> @208.67.222.222
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55450
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       516333  IN      NS      d.root-servers.net.
.                       516333  IN      NS      l.root-servers.net.
.                       516333  IN      NS      h.root-servers.net.
.                       516333  IN      NS      k.root-servers.net.
.                       516333  IN      NS      g.root-servers.net.
.                       516333  IN      NS      i.root-servers.net.
.                       516333  IN      NS      f.root-servers.net.
.                       516333  IN      NS      c.root-servers.net.
.                       516333  IN      NS      j.root-servers.net.
.                       516333  IN      NS      a.root-servers.net.
.                       516333  IN      NS      m.root-servers.net.
.                       516333  IN      NS      b.root-servers.net.
.                       516333  IN      NS      e.root-servers.net.

;; Query time: 36 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Mon Aug 15 19:17:11 2011
;; MSG SIZE  rcvd: 228

挖掘答案可能因主机而异,但您不应该得到任何空的“答案部分”。

如果您可以使用 dig 解析 OpenDNS,但无法使用 wget 或 curl 解析,则意味着您的系统未配置可访问的 DNS 服务器。如果是这种情况,请考虑编辑 /etc/resolv.conf

答案2

它们阻止了绑定到除 53 之外的所有 UDP 端口的入站流量 - 这对于您所在位置的面向互联网的 DNS 服务器来说非常好,但对于客户端解析来说却不是那么好。

DNS 客户端发送流量到端口 53,具有较高的源端口;DNS 服务器的响应具有 53 的源端口和客户端使用的较高端口的目标端口。

因此,您的 ISP 过滤器会让您的 DNS 解析陷入困境。如果他们开放您的 DNS 客户端可能使用的整个高范围,则可能会允许大量洪泛通过;同样,将源端口限制为 53 并不能保证阻止精心策划的洪泛。

最好的解决方案可能是让所有客户端解析都由特定的上游 DNS 解析器完成,并让您的提供商将这些系统从 UDP 过滤器中免除。

相关内容