大家好,
上个月,当我的 EC2 实例(ubuntu precise 服务器)积累了大量流量时,我很惊讶,它应该仍然在免费套餐下......今天,在检查我当前的账单时,我注意到我已经有大量流量,虽然还处于月中,我担心月底的账单会是多少钱......
我安装了 Bandwidthd,几分钟后,我注意到有大量 UDP 流量到“108.162.233.15”。这显然是一个 cloudflare IP,而我没有使用 cloudflare(据我所知)。
所以我运行“iftop”来查看正在使用的端口,并且我看到 UDP 流量从端口 80 到我的端口 53...为什么 Web 服务器会查询 dns?
因此我停止了服务器上的绑定,并在前台调试模式下运行它,并看到以下查询不断重复:
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: UDP request
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: request is not signed
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: recursion available
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: query
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: query (cache) 'isc.org/ANY/IN' approved
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: send
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: sendto
17-Nov-2012 12:30:58.216 client 108.162.233.15#80: senddone
17-Nov-2012 12:30:58.217 client 108.162.233.15#80: next
17-Nov-2012 12:30:58.217 client 108.162.233.15#80: endrequest
17-Nov-2012 12:30:58.217 client @0x7fbee05126e0: udprecv
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: UDP request
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: request is not signed
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: recursion available
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: query
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: query (cache) 'isc.org/ANY/IN' approved
17-Nov-2012 12:30:58.343 client 108.162.233.15#80: send
17-Nov-2012 12:30:58.344 client 108.162.233.15#80: sendto
17-Nov-2012 12:30:58.344 client 108.162.233.15#80: senddone
17-Nov-2012 12:30:58.344 client 108.162.233.15#80: next
17-Nov-2012 12:30:58.344 client 108.162.233.15#80: endrequest
我的问题是...这是正常的吗?我应该担心吗?或者这与我的数据费用完全无关,我应该等待查看来自 broadbandd 的更多数据吗?
先感谢您。
答案1
在我看来,您的服务器正在被用于 DNS 放大攻击。
我不知道 Amazon EC2 的定价模型,但如果这些流量不计算在内,我会感到惊讶。
它的工作原理如下:
有人使用伪造的 IP 108.162.233.15 向您的服务器发送 DNS 查询。
您的服务器将此查询回答给真正的受害者 - 108.162.233.15。
查询很小,但答案很大(检查dig -t ANY isc.org
)。
真正的问题是,你的服务器为什么要回答这些查询?
你是故意运行一个公共递归 DNS 供所有人使用吗?
如果没有,您需要禁用递归或将其限制为受信任/已知的客户端(recursion no;
和allow-query-cache {none;};
)。