Bind下的一些防御措施
起因
前几天微软的DNS服务器暴露出说已经潜藏了17年的高安全漏洞,当进行一些字符的解析的时候,会出现内存溢出,而这样的溢出会被利用可以进行权限的提升和域名的修改。
这里内部以前有windows的dns服务器用来进行IPv6的解析,但是经过我的检查,这些DNS服务器已经不再使用了。
也就不需要担心。
前几天做了一个利用rpc over http来进行虚拟机快照的小程序,也顺便做了一个dev的域名,用来将以后的与开发相关的都转移过去。
做好域名后,在进行message检查的时候发现有大量的query到某几个域名,虽然在bind的name.conf里面已经做了rate limit的限制,但是好像不顶用啊。
实施
想着用防火墙来搞,但是好像iptables我都是用的ip地址,不知道能不能用。 嘿,原来iptables本身就带这个功能,学艺不精,只学了个皮毛。
更详细的信息参看这里:
是这么操作的,一群随机的ip地址,我查了下,有来自阿里云的,有来自美国的,有来自什么阿尔巴尼亚的还有海地的都查询几个域名,疯狂的查询。 假设他们查询的域名是:woaichifan.org. 那么woaichifan是9位,org是3位。在iptables中这么添加:
对查询woaichifan.org的域名的访问直接抛弃
iptables -A INPUT -i ens160 -p udp –dport 53 -m string –hex-string “ 09 woaichifan 03 org” –algo bm -j DROP
对来自恶意的地址直接丢弃
iptables -A INPUT -s xx.xx.xx.x -j DROP
检查
发现启用后,再进行query这些域名,只会超时了。 而且对query日志进行检查,发现清爽很多了。
后记
有很多的知识,是相通的,但是要不往前走一步,就不知道它的边界在哪里,往前走,只会越走越宽广。不管是学习也好,还是做事也好,都要试着往更进一步想想。