坦克NS-v1.4.0开发计划

作者:

人类的嘴巴

文章概述

本文介绍了坦克NS-v1.4.0开发计划。下一个版本的坦克NS将添加防火墙功能,以限制单个IP查询次数,避免流量攻击导致系统关闭。此外,转发功能也将得到改进,提供更细粒度的控制,避免形成循环查询的错误。坦克NS可以作为前端DNS服务器或后端DNS服务器,但全局转发无法全面发挥其功能。防火墙功能将添加到坦克系列的所有应用程序上。

关键要点

1.坦克ns下一个版本将添加防火墙功能,以防止流量攻击导致系统关闭。

2.细化转发功能,为每个zone提供控制,避免循环查询错误。

3.坦克保镖可监控坦克系列软件的运行情况,并在服务意外关闭时通知用户。

具体解决方法

坦克ns下一个版本添加防火墙功能。这个防火墙提供基本查询流量统计功能。可以设定指定时间长度限制单个IP查询次数。超过限制然后执行对应策略。

第二个升级点是细化转发功能,现在的坦克ns只有一个全局转发,关了就所有zone都关闭,打开就所有zone都打开。升级后的转发功能可以单独为每个zone提供控制。

问题一描述

2023年8月17日 07:33一个客户的坦克ns服务器受到了流量攻击。攻击者估计是采用多线程攻击。 攻击时查询统计抽样: 07:33:19 这一秒 798 次访问 07:33:26 这一秒 1046 次访问 07:33 这一分钟超过 19999+ 访问 客户只做3个域名的4级域名解析,所以访问量不可能这么大,所以确定这些访问属于攻击访问。 由于Linux系统安全配置,每个进程打开的文件(socket也属于文件)数是有限制的。坦克ns每一个转发查询都会打开一个UDP socket。攻击者发起坦克ns域名查询,如果查询不到就会进行转发,这就导致socket的打开,打开量大,就会超出系统限制,最后系统会关闭坦克ns。 坦克保镖会实时监视坦克系列软件的运行情况,当坦克ns被系统关闭时,坦克保镖就会微信通知客户与我们。 这次攻击是2023年8月17日 07:33开始的。

下一个版本,我们将会提供简单的防火墙功能。避免坦克ns受到流量攻击被系统关闭。

问题二描述

当把坦克ns作为Zone的时候。当转发开启的时候,就会形成这样一个循环现象。比如: 坦克ns部署在公网ip:198.3.xx.xx这个地址上。 已经把 tankprint.online 这个域名交由 上面这个ip的坦克ns负责解析。 这个服务器建立了tankprint.online这个Zone。并且坦克ns开启了转发功能。 这个Zone配置了3个子域名:1.tankprint.online。2.tankprint.online。3.tankprint.online。

看上去一切没有问题。可以运行并正确解析。

用户向8.8.4.4 dns 服务器发起查询 1.tankprint.online,2.tankprint.online,3.tankprint.online,这3个已经配置的域名可以逻辑正确返回结果。

但根据推理就会出现问题了: 用户向 8.8.4.4 dns服务器发起查询:4.tankprint.online 这个没有配置的域名的时候。当8.8.4.4根据流程把查询发送到你的198.3.xx.xx坦克dns服务器后,坦克查询不到数据,就会重新转发到公共dns服务器,公共dns服务器又根据流程又发回你的服务器,你的服务器查询不到,又发回公共dns服务器,这样死循环。最终导致互联网风暴,如果严重,整个互联网都是这些流量,那么互联网就会瘫痪。

这只因为坦克ns开启了转发功能。所以目前使用的办法就是关闭转发。作为后端dns服务器。关闭转发没有什么问题。

前端dns服务器和后端dns服务器

目前,坦克ns可以作为前端dns服务器也可以作为后端dns服务器。

我在这里解释一下,这里的前端与后端是我自己定义的,我可能不是第一个人这样定义。

前端dns服务器定义:这样的服务器放在自己的局域网,作为dns服务器也作为代理服务器,当你在局域网内访问网站时,dns会首先查询局域网内的dns服务器,局域网内的dns服务器查询不到结果就会根据流程把查询发送到公共dns服务器上进行查询,然后等待查询结果再返回给用户。这就需要dns服务器开启转发功能。

后端dns服务器定义:这样的dns服务器一般安装在公网服务器上面,作为公共dns的一部分提供服务,由于这样的服务器只负责一部份域名的解析,对不是自己负责的域名直接返"无"查询结果。所以这类服务器是应该把转发功能关闭的,不然就会出现循环查询的错误。

全局转发无法全面发挥坦克ns的功能,我们在下一个版本将会改进转发功能。细化转发功能。

最后,防火墙功能会添加到坦克系列的所有应用程序上。