我发现了一个奇怪的问题,希望有人能帮我解决它。如果我使用“tcpdump -i em1 -vvv -s 0 -l -n 端口 53“命令我得到了奇怪的结果(下面是其中的一部分),不断有来自未知 IP(重复 4-5 个 IP)的数据包。服务器上运行 centos7 和 Bind9 DNS 服务器。如果我关闭命名服务或网络服务,数据包仍然会传来。我将服务器的私有 IP 从 10.10.10.100 更改为 10.10.10.xxx,问题仍然存在,IP 数据包不断传到原始 10.10.10.100 IP。我重启了服务器几次,没有结果。
我的问题是,我可以忽略这个吗?这是类似 ddos 攻击吗?基于关闭网络服务后问题仍然存在的事实,我认为这可能是错误或病毒。是这样吗?
09:13:28.941958 IP (tos 0x20, ttl 105, id 12674, offset 0, flags [DF], proto TCP (6), length 52) 107.167.18.163.32902 > 10.10.10.100.domain: Flags [S], cksum 0x9538 (correct), seq 2019438094, win 8192, options [mss 1452,nop,wscale 8,nop,nop,sackOK], length 0 09:13:28.942006 IP (tos 0x20, ttl 64, id 41456, offset 0, flags [DF], proto TCP (6), length 40) 10.10.10.100.domain > 107.167.18.163.32902: Flags [.], cksum 0x328e (correct), seq 0, ack 1, win 14600, length 0 09:13:29.128215 IP (tos 0x20, ttl 103, id 54720, offset 0, flags [DF], proto TCP (6), length 52) 107.167.18.163.32902 > 10.10.10.100.domain: Flags [S], cksum 0x35d2 (correct), seq 2106165321, win 8192, options [mss 1452,nop,wscale 8,nop,nop,sackOK], length 0
服务器位于思科路由器后面,路由器上有一条 NAT 规则(86.34.156.51 <-> 10.10.10.100)。在 BIND DNS 服务器中,我必须设置本地私有 IP,否则如果绑定配置了公有 IP,DNS 数据包将永远不会到达发出请求的主机(可能路由器认为 86.34.156.51 必须路由回主机(10.10.10.100))。与此相关的另一个问题是,DNS 数据包的 TTL 值在到达目标主机时始终为 0。
以下是使用 -A 标志的结果
“tcpdump -i em1 -A -vvv -s 0 -l -n 端口 53”
11:16:22.681589 IP (tos 0x20, ttl 77, id 55139, offset 0, flags [DF], proto TCP (6), length 52) 107.167.22.93.59026 > 10.10.10.100.domain: Flags [S], cksum 0x47a6 (correct), seq 1337080454, win 8192, options [mss 1452,nop,wscale 8,nop,nop,sackOK], length 0 E [email protected]..] d...5O.:....... .G............... 11:16:22.681638 IP (tos 0x20, ttl 64, id 28261, offset 0, flags [DF], proto TCP (6), length 40) 10.10.10.100.domain > 107.167.22.93.59026: Flags [.], cksum 0xd525 (correct), seq 0, ack 1, win 14600, length 0 E .(ne@[email protected]. dk..].5..kT na.7|P.9..%..
答案1
您已注意到数据包来自贵组织外部,通过路由器中转换86.34.156.51
<-> 的NAT 规则10.10.10.100
。我反向解析该地址,得到ns1.style2take.ro.
。显然,这台机器作为名称服务器向全世界公布。关闭此主机上的 BIND 服务不会阻止查询通过;它应该会改变您发回的内容(即,当服务未运行时出现某种重置/无法访问错误),但您没有说明tcpdump
当服务开启或关闭时您的 s 是否正在运行,因此很难进一步评论。
名称服务器接收 DNS 查询请求并不奇怪。通常,人们都在寻找开放解析器,因为它们既可用于合法目的(名称解析),也可用于非法目的(DDoS 放大)。
如果您希望这台机器成为已发布的域名服务器,那么请确保您已正确配置 BIND(仅回答其权威域中的查询,而不是对整个互联网进行递归解析),跟上您的 BIND 补丁,并且不要担心此流量。换句话说,让应用程序进行应用层过滤;正确配置的 BIND 将比您可能放在它前面的任何过滤设备更好地决定回答哪些查询以及忽略哪些查询。
如果您不打算将该机器作为已发布的名称服务器,请删除该 NAT 规则,并确保地址和名称不会出现在任何粘合记录或实时区域文件中。
至于查看有效负载内容,任何tcpdump
没有任何额外标志的现代版本都应该查看 DNS 数据包内部。以下是我的名称服务器的一些示例输出ns.teaparty.net
:
[me@lory mail]$ sudo tcpdump port 53
[...]
09:37:23.613422 IP nrdns08.fibertel.com.ar.57799 > ns.teaparty.net.domain: 62409 MX? enjura.com. (28)
[ and many, many more ]