跳过查询到DNSmasq中的自我地址

使用它的日志debuggingDNSmasq服务器,我发现很多:

dnsmasq: query[ANY] . from RANDOM-IP dnsmasq: query[ANY] . from RANDOM-IP dnsmasq: query[ANY] . from RANDOM-IP dnsmasq: query[ANY] . from RANDOM-IP 

所有合法的查询似乎更具体,如:

 dnsmasq: query[A] specificdomain.com from KNOWN-IP 

编辑:这不是作为一个公共的DNS服务

我们要创build一个白名单的DNSfilter,它应该回答一个指定的域列表。 典型的放大攻击只会影响我们的服务器,没有其他人。 我们只是想要一个更清洁的日志能够更好地运作。

预期的操作是:

  • 客户端使用此DNS进行互联网连接。
  • 客户端请求域parsing
  • 如果域名在白名单中,我们解决,否则我们不回复。

我们怎样才能做到这一点? 只处理与我们的白名单匹配的请求,丢弃其他任何东西。

. ANY . ANY是一个众所周知的查询,它请求与DNS的根节点(AKA。)关联的高速caching中的所有loggingtypes。 在大量的这确实是一个恶意行为的指标。 不幸的是,这些查询几乎肯定是UDP,源IP是受害者的欺骗源地址。

这个问题需要通过确定为什么恶意实体能够针对您的服务器发出这些请求来解决,而不是通过阻止查询本身来解决。 攻击者可以很容易地利用任何数量的已知请求来返回大的结果集,其中一些根本不使用loggingtypesANY。

在大多数情况下,这表示您正在运行一个开放的parsing器 。 您的首要任务应该是确认这一点并closures安全漏洞。 如果您不是开放的parsing程序,则networking上有受感染的设备。 由于您需要一次跟踪一次返回到原​​始设备的MAC地址,因此更难跟踪。

正如Andrew所指出的那样,尽pipe公共IP中的DNS服务存在很多安全问题,但解决scheme是以下iptables规则:

 iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|0000ff|" --algo bm -j DROP 

这具体地丢弃了那个查询。