我的 ubuntu 14.04 LTS 服务器在端口 53 上接收来自不同 IP 地址的大量传入流量。我没有托管任何 DNS 服务。因此我决定阻止端口 53:
iptables -A INPUT -p tcp --destination-port 53 -j DROP
iptables -A OUTPUT -p tcp --dport 53 -j DROP
之后我保存了新规则:
invoke-rc.d iptables-persistent save
最终结果如下:
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 172.17.0.3 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 172.17.0.7 tcp dpt:8080
但是,当我使用 nethogs 监控流量时,我仍然会看到端口 53 上的流量。知道为什么规则没有生效吗?
请注意:我已经安装了docker 1.9.1。
Nethogs 输出:
并且这个名单还在不断增加。
答案1
DNS 主要为端口 53 上的 UDP。
但是为什么你也在 OUTPUT 链中阻止它?你不想从这台机器解析任何域名吗?
答案2
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
通常,DNS流量是UDP,并回退到TCP。您还需要将UDP丢弃到端口53。
iptables -I INPUT -p udp --destination-port 53 -j DROP
答案3
nethogs 输出显示您的 IP 正在与其他 IP(主要属于 akam.net)上的端口 53 进行讨论。如果您正在运行解析 DNS 客户端,则这是正常现象。该列表不断增长,因为您的 iptables 过滤器不正确,并且还在 OUTPUT 链上阻止了 dpt:53,从而阻止了您自己的解析器。