上周,在查看日志文件时,我发现一个网站开始每隔几秒钟向我的 DNS 服务器发送多个针对其 ns1/ns2、www 和两个子域的 A 和 AAAA 请求,而这些请求被我正确配置后被拒绝。虽然请求被退回和拒绝不会带来安全风险,但它却使我的日志文件增长得非常快,难以阅读。
我发现这个域名将我的 IP 地址作为其 NS1 和 NS2 条目,因此除了试图访问其网站的人(来自埃及)之外,当他们试图访问我推测由这个埃及网站托管的其他网站时,他们也会攻击我。现在,每秒的请求数不再是 4-6 个,而是接近 15-20 个。我尝试为这个域名创建记录并返回 127.0.0.1,TTL 为 1 年,以减少攻击,这在消除埃及主域名的日志条目方面很有效,但现在我发现其他试图访问它的域名数量也在增加。
有没有办法阻止这个主域和其他域尝试访问 DNS 服务器,而无需在我的 Linux/Plesk 机器上禁用 BIND(并且不为我的区域提供服务)?我已经给域名 Whois 的注册人和注册商滥用部门(Go Daddy,所以不会有任何回复)发了电子邮件,但还没有收到任何回复。我还在防火墙中阻止了来自埃及、中国等地的所有 IP 块,但这个域名的很多请求来自世界各地。
我在这里挠头,如果能提供任何帮助或想法我将不胜感激。
答案1
如果您告诉全世界这些域名不存在,他们会很快修复他们的错误。
答案的主要内容voretaq7
是你确实应该已经做过的事情,而且可能已经做过了。如果你的 DNS 服务器正在监听整个互联网都可以访问的 IP 地址,那么它不应该提供代理 DNS 服务。你需要阻止你的服务器扮演多个角色,并确保它只提供内容 DNS 服务。
这引出了答案的核心。您只需配置您的内容 DNS 服务器以向全世界否认这些域名的存在。那些错误配置其委派以使用您的 IP 地址的人很快就会意识到他们的错误,尤其是当最终用户开始抱怨邮件、WWW 和其他服务产生有关不存在域名的错误并替换正确的 IP 地址时。这是一个非常简单的激励措施:“修复您的委派,不要错误地将全世界指向我的服务器,您的域名将神奇地开始存在。”
实现这一目标的方法非常简单。您无需查看日志,枚举每个新域名,并设置一个覆盖该域名的区域。只需设置一个.
区域即可。然后,您的内容 DNS 服务器将拒绝随机查询的每个域名的存在,只要该域名不在您实际打算提供服务的区域之一中(并且已安排将其委托给您的服务器)即可。
记住,在执行此操作时要保持礼貌。此错误很可能是由于某人在表单中意外输入了几个数字而导致的。您不想惹恼他人。您只想激励他们改正错误。因此,不要将字段设置得过高,MINIMUM
以免SOA
否定.
答案被全世界缓存一周。让相关人员能够快速更改内容。几个小时可能是您减少重复查询的需求和他们能够快速切换到正确内容 DNS 服务器的需求之间的良好折衷。也不要设置将人们引导到令人讨厌的地方的通配符A
和AAAA
资源记录。只需返回“没有这个名字”的答案。
重要提示:不要简单地镜像公共根 DNS 数据。
你不能直接将 InterNIC 的root.zone
文件放入 BIND 设置中。该数据库源文件在区域底部边缘设有代表团。您的 DNS 服务器最终将发送部分答案以代表团结尾对于您正在查询的所有这些外来域名。这只会将其标记为“蹩脚的”(用于返回向上的委托),并且解析代理 DNS 服务器最终会经常重新查询它。它不会否认域名的存在。您希望您的服务器发送以“没有这个名字”结尾的完整答案所有这些外来域名,否认它们的存在。完整的否定答案将被解析代理缓存,它们不会经常回来重新询问。
因此,您需要一个区域文件,.
该文件的底部没有委派。幸运的是,这实际上比 InterNIC 的文件简单得多,因为最低限度您只需要三个资源记录,看起来类似于:
@ 86400 IN SOA @ hostmaster 1 2D 1H 2W 3H
@ 86400 IN NS @
@ 86400 IN A 127.53.0.1
在 djbdns 格式中,这是一行代码:
.:127.53.0.1:.
进一步阅读
- 乔纳森·德·博因·波拉德(2000,2004,2007)。应配置代理服务器监听的 IP 地址. 常见问题答案。
- 乔纳森·德·博因·波拉德(2000,2004,2007)。“内容”和“代理”DNS 服务器. 常见问题答案。
- 乔纳森·德·博因·波拉德(2003年)。通过一体化 DNS 服务器软件提供内容 DNS 服务。. 常见问题答案。