可以使用我的 IP 作为域名服务器地址来阻止站点吗?

Cha*_*had 3 domain-name-system linux firewall bind

上周,在查看我的日志文件时,我注意到一个站点开始出现,每隔几秒钟就会向我的 DNS 服务器发送多个 A 和 AAAA 请求,请求它们的 ns1/ns2、www 和两个子域到我的 DNS 服务器,这些请求被正确拒绝,因为我拥有它配置。虽然请求被退回和拒绝不会带来安全风险,但它使我的日志文件增长得非常快并使它们难以阅读。

我发现这个域将我的 IP 地址作为他们的 NS1 和 NS2 条目,所以除了人们试图访问他们的网站(来自埃及)之外,他们在尝试访问我认为由其托管的其他网站时也会攻击我这个埃及网站。现在不是每秒 4-6 个请求,而是接近 15-20 个。我已经尝试为此域创建记录并返回 127.0.0.1 的 TTL 为 1 年以缓解点击量,这有助于消除主要埃及域的日志条目,但现在我正在尝试增加其他域名也打它。

有什么方法可以阻止这个主域和其他域尝试访问 DNS 服务器而不禁用我的 Linux/Plesk 机器上的 BIND(然后不为我的区域提供服务)?我已经通过电子邮件向域名 Whois 中的注册人和注册商滥用部门(Go Daddy,所以不会去任何地方)发送电子邮件,但还没有收到任何回复。我还在我的防火墙中阻止了来自埃及、中国等的所有 IP 块,但是对这个域的很多请求来自世界各地。

在这里挠我的头,任何帮助或想法将不胜感激。

Jde*_*eBP 6

如果你告诉全世界这些域名不存在,他们会很快纠正他们的错误。

voretaq7的答案的主要内容是您确实应该已经完成​​并且可能已经完成的事情。如果您的 DNS 服务器正在侦听整个 Internet 都可以访问的 IP 地址,那么它不应该提供代理 DNS 服务。您需要阻止您的服务器戴一顶以上的帽子,并确保它只提供内容 DNS 服务。

这导致了答案的实质。您只需要配置您的内容 DNS 服务器以拒绝这些域名的存在。错误配置代表团以使用您的 IP 地址的人很快就会意识到他们的错误,尤其是当最终用户开始抱怨邮件、WWW 和其他服务产生关于不存在的域名的错误并替换正确的 IP 地址时. 这是一个非常简单的激励措施:“修复您的代表团,不要错误地将世界指向我的服务器,您的域名将神奇地开始存在。”

你如何做到这一点很简单。您无需查看日志、枚举出现的每个新域名,并设置一个区域来覆盖它。只需设置一个.区域。然后,您的内容 DNS 服务器将拒绝随机查询的每个域名的存在,其中该域名未包含在您实际打算提供服务的区域之一(并已安排委派给您的服务器) .

当你这样做时,记住要友善。这个错误很可能是由于某人不小心在表单中输入了几个数字而造成的。你不想惹恼人。您只想激励他们纠正错误。所以不要MINIMUM在你的SOA资源记录中设置如此高的字段.,因为否定答案会被世界缓存一周。使有关人员能够迅速改变情况。几个小时可能是您减少重复查询的需要和他们需要能够快速将事物切换到正确的内容 DNS 服务器之间的一个很好的折衷方案。也不要设置通配符AAAAA资源记录,将人们引导到令人讨厌的地方。只需返回“没有这样的名字”的答案。

重要说明:不要简单地镜像公共根 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
Run Code Online (Sandbox Code Playgroud)

在 djbdns 格式中,这是一个单行:

.:127.53.0.1:.
Run Code Online (Sandbox Code Playgroud)

进一步阅读


vor*_*aq7 5

这是权威域名服务器吗?如果是这样,请禁用递归(添加recursion no;到您的 BIND 配置中。
拥有权威 NS 也是递归解析器通常被认为是一件坏事。

如果您无法完全禁用递归,请尽可能地限制它(使用allow-recursion {};指令)。

有关这些指令的更多信息,请参阅此页面(或板球书)。
如果您没有授权使用您的 DNS 服务器,您还应该通知原始 ISP 的滥用联系人,向他们收取未经授权使用您的服务器和网络资源的费用 - 每次查询 0.01 美元对我来说似乎是公平的:-)