服务器涉嫌有递归解析服务行为如何处理?

最后更新时间:2024-05-20 10:14:39


“递归解析”是最常见的也是默认的一种解析方式。在这种解析方式中,如果客户端配置的本地域名服务器(Local DNS服务器)不能解析的话,则后面的查询过程全部由本地域名服务器代替DNS客户端进行查询,直到本地域名服务器从权威域名服务器得到了正确的解析结果,然后由本地域名服务器高速DNS客户端查询结果。

在整个递归查询过沉重,除一开始客户端向本地域名服务器发起查询请求外,其余各个环节均以本地域名服务器为中心进行迭代查询,DNS客户端一直处于等待状态,直到本地域名服务器发回最终查询结果。相当于,在整个查询环节中本地域名服务器承担了中介代理的角色。

递归解析一般由各线路的运营商提供,因此无论是网站管理房还是权威解析方都无权对递归解析进行配置改动。但是在实际网站解析过程中,递归解析的效率往往是影响整个解析进程的关键所在。

说到递归解析的机制,不得不谈及解析记录中的一个关键词:存活时间(TTL,time to live)。

TTL是指递归解析在获取权威解析回答的解析记录时,该条解析记录在递归解析中缓存的有效时间,当时间超过TTL值,此条解析视为无效,新的访问请求发送到递归解析时,递归解析将重新询问此条解析记录。

TTL值的设置存在一定的矛盾性:若管理员希望解析记录高频率刷新以保证地址修改效果能快速呈现到客户端,或希望快速刷新掉因操作失误或攻击产生的错误地址,则需将TTL设置为较小值;如果服务器的地址稳定,且管理员希望客户访问网站能获得更好的访问体验,而不是每次访问都要经历解析层层询问的等待过程,则可将TTL设为较大值。

除TTL值会影响解析记录的刷新外,递归解析的一种“偷懒”机制——互相询问机制,也在其中扮演了重要角色。

当一条解析记录失效但有新的访问请求到来时,本应询问权威解析的递归解析并不愿意按规章制度查找一遍权威地址,然后再长途跋涉去“老师家”寻求解答,反而倾向于找“身边的同学”——也就是附近的其他递归解析,直接拷贝对方的解析记录返回给访客。



由于访问机制的原因,递归解析已成为黑客们攻击解析系统最方便的入手点之一。黑客的主要目的无外乎对DNS进行劫持或污染,解析缓存投毒是其中最常用的攻击手段。根据上文提到的内容,如果TTL值设置较大,则缓存投毒将长期存在;如果TTL值设置较小,除了用户访问体验会变差,由于递归解析互相询问的机制,又会使缓存投毒在递归解析群落中反复传递,难以根除。

各地通信管理局会针对在使用的服务器不定期进行巡查,如果发现存在疑似存在递归解析服务行为,会通知到对应的服务商定期整改。排查的首要任务检查服务器DNS服务端口(53端口)是否开放,可通过tcping命令查询:

微信图片_20231102142803.png

上图代表53端口是开的,如果没有运行相关业务,建议关掉。