阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何关闭一个开放的DNS解析器

121次阅读
没有评论

共计 2068 个字符,预计需要花费 6 分钟才能阅读完成。

我们在之前的教程中创建的 DNS 服务器是一个开放 DNS 解析器。开放解析器不会过滤任何来源请求,并会接受来自所有 IP 的查询。

如何关闭一个开放的 DNS 解析器

————————————– 分割线 ————————————–

推荐阅读:

使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm

BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm

域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm

Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm

CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm

————————————– 分割线 ————————————–

不幸的是,开放解析器很容易成为一个攻击目标。比如,攻击者可以对开放 DNS 服务器发起一个拒绝服务攻击 (DoS) 或者更糟的分布式拒绝服务攻击(DDoS)。这些也可与 IP 欺骗结合,将应答包指向受害者被欺骗的 IP 地址。在另外的场合下称作 DNS 放大攻击,开放的 DNS 服务器很容易就会成为攻击的对象。

根据 openresolverproject.org,除非有必要,运行一个开放解析器是不明智的。大多数公司要让它们的 DNS 服务器仅对他们的客户开放。本篇教程会只要集中于如何配置一个 DNS 服务器来使它停止开放解析且仅对有效的客户响应。

调整防火墙

由于 DNS 运行在 UDP 的 53 端口上,系统管理可能试图仅允许来自 53 端口的客户端 IP 地址,并阻止剩余的因特网端口。虽然这可以工作,但是也会有一些问题。既然根服务器与 DNS 服务器的通信也用 53 端口,我们不得不在防火墙内也确保 UDP 53 端口被允许。

一个防火墙示例如下所示。对于生产服务器,确保你的规则匹配你的要求并遵守与公司安全制度。

  1. # vim firewall-script

  1. ## existing rules are flushed to start with a new set of rules ##
  2. iptables F
  3. iptables A INPUT s A.A.A.A/X p udp dport 53j ACCEPT
  4. iptables A INPUT s B.B.B.B/Y p udp dport 53j ACCEPT
  5. iptables A INPUT s C.C.C.C/Z p udp dport 53j ACCEPT
  6. iptables A INPUT p udp dport 53j DROP
  7. ## making the rules persistent ##
  8. service iptables save

让脚本可执行并运行它。

  1. # chmod +x firewall-script
  2. # ./firewall-script

阻止递归查询

DNS 查询主要可以分为递归查询和迭代查询。对于递归查询, 服务器会响应客户端应答或者错误信息。如果应答不在服务器的缓存中,服务器会与根服务器通信并获得授权域名服务器。服务器会不停查询知道获得结果,或者请求超时。对于迭代查询,另一个方面讲,服务器会将客户端指向另外一个可能可以处理的服务器上,那么就会减少服务器自身的处理。

我们可以控制运行递归查询的 IP 地址。我们修改位于 /etc/named.conf 的配置文件并增加 / 修改下面的参数。

  1. # vim /etc/named.conf

  1. ## we define ACLs to specify the source address/es ##
  2. acl customera{ A.A.A.A/X;};
  3. acl customerb { B.B.B.B/Y; C.C.C.C/Z;};
  4. ## we call the ACLs under options directive ##
  5. options {
  6. directory “/var/named”;
  7. allowrecursion { customera; customerb;};
  8. };

调整用于开放解析器的防火墙

如果你必须运行一个开放解析器,建议你适当调节一下你的服务器,这样就不会被利用了。smurfmonitor 仓库提供了强大的一组可以用于开放解析器的 iptables 规则,比如阻止来自 DNS 放大攻击的域名解析请求。这个仓库会定期地更新,强烈建议 DNS 服务器管理员使用它。

总的来说,对于开放 DNS 解析器的攻击是很常见的,特别是对于没有适当安全防护的 DNS 服务器而言。这个教程延时了如何禁止一个开放 DNS 服务器。我们同样看到了如何使用 iptables 在一个开放 DNS 服务器上加上一层安全防护。

希望这对你有用。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2068字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中