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

简介:

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

不幸的是,开放解析器很容易成为一个攻击目标。比如,攻击者可以对开放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.  
  4. iptables -A INPUT -s A.A.A.A/X -p udp --dport 53 -j ACCEPT
  5. iptables -A INPUT -s B.B.B.B/Y -p udp --dport 53 -j ACCEPT
  6. iptables -A INPUT -s C.C.C.C/Z -p udp --dport 53 -j ACCEPT
  7.  
  8. iptables -A INPUT -p udp --dport 53 -j DROP
  9.  
  10. ## making the rules persistent ##
  11. 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 customer-a{ A.A.A.A/X; };
  3. acl customer-b { B.B.B.B/Y; C.C.C.C/Z; };
  4.  
  5. ## we call the ACLs under options directive ##
  6. options {
  7. directory "/var/named";
  8. allow-recursion { customer-a; customer-b; };
  9. };

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

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

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

希望这对你有用。

原文发布时间为:2014-05-05

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
监控 算法 数据可视化
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
346 31
|
架构师 Serverless 云计算
重磅推荐|《Serverless 技术解析与落地》开放下载!
本书由阿里云 Serverless 团队精心打磨,汇集众多一线 Serverless 技术专家经验,从技能角度出发为读者详细拓展 Serverless 知识体系、洞悉当下 Serverless 领域热点知识,掌握 Serverless 架构在各领域的应用、实战案例。从技术理论到方法指导,帮助你打开思路、降低学习成本、精进技术、实现从入门到上手 Serverless 的丝滑进阶。
|
大数据 人工智能 分布式计算
开放下载!《阿里巴巴大数据及AI实战》深度解析典型场景大数据实践
深度剖析淘宝、高德、友盟+、1688、优酷、阿里妈妈、阿里影业大数据实战场景,2020不容错过的企业大数据实战手册。
67331 0
开放下载!《阿里巴巴大数据及AI实战》深度解析典型场景大数据实践
|
Android开发 开发者 iOS开发
“一个APP竟然可以适配这么多设备?!”《优酷响应式布局技术全解析》开放下载
本书分享优酷应用技术团队使用响应式布局来实现“一个APP适配不同设备”的技术思考和实践。
27910 0
“一个APP竟然可以适配这么多设备?!”《优酷响应式布局技术全解析》开放下载
|
算法 芯片 智能硬件
【直播预告】平头哥芯片开放社区(OCC)合作伙伴计划即1520计划全解析
内容亮点:1、平头哥AIoT应用开发策略;2、平头哥芯片开放社区(OCC)合作伙伴计划(1520计划);3、智能0距离,开发板欢乐送活动招募
723 0
【直播预告】平头哥芯片开放社区(OCC)合作伙伴计划即1520计划全解析
|
人工智能 搜索推荐 大数据
开放下载!《阿里巴巴大数据及AI实战》深度解析典型场景大数据实践 | 开发者必读(130期)
深度剖析淘宝、高德、友盟+、1688、优酷、阿里妈妈、阿里影业大数据实战场景,2020不容错过的企业大数据实战手册。
3634 0
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
728 29
|
8月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
221 4
|
8月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS
  • 下一篇
    开通oss服务