DNS安全章-拒绝服务攻击

简介:

一、什么是拒绝服务攻击

即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。

二、DNS拒绝服务攻击常见手段

1、利用DNS软件版本漏洞攻击

如在BIND 9版本(版本9.2.0以前的 9系列)如果有人向运行BIND的设备发送特定的DNS数据包请求,BIND就会自动关闭。攻击者只能使BIND关闭,而无法在服务器上执行任意命令。

2、DDOS 攻击,

攻击者利用僵尸网络中大量的被控主机,伪装成被攻击主机,在特定的时间点上,连续向多个允许递归查询的 DNS 服务器发送大量
的 DNS 查询请求,迫使其提供应答服务,经 DNS 服务器放大后的大量应答数据发送到被攻击主机,形成攻击流量,导致其无法提供正常服务甚至瘫痪。
 
三、DNS放大攻击

概述:

DNS反射放大攻击是一种通过向开放的DNS服务发送伪造源发地址的查询请求来将应答流量导向攻击目标的一种拒绝服务攻击手段(原理参见图1)。这种攻击利用DNS服务器来对被攻击者造成拒绝服务攻击。




1

解决办法:

为避免您的DNS服务器被用来进行DNS反射攻击,建议您做首先确认自己的DNS服务的类型及用途:

a)          自己架设的权威查询服务器(主要用于解析*.imoocc.com这类学校二级域名的)

b)          自己架设的递归查询服务器(主要给自己底下的用户提供递归DNS查询服务的,功能类似166.111.8.28

c)          设备或是服务自带的DNS,不是自己假设的(如路由器自带的等)

根据服务不同的功能,请参考如下操作:

a)          用于提供权威解析的DNS服务,请关闭该服务器上的递归查询功能(操作方式参见附录)

b)          用于递归查询服务的DNS服务器,请限制递归查询服务的使用范围。(操作方式参见附录)

c)          对于设备或系统自带的DNS服务,请先确认该DNS服务是否是必须,如果不是必须请关闭该功能。如果是必须提供的服务,请将该服务的服务范围进行限制(如内网或是特定的网段)。

 


 

附录:

 

LinuxBIND

1、关闭DNS递归查询服务

通过修改BIND的配置文件可以实现关闭DNS递归查询的功能,默认配置文件路径为/etc/named.conf,有两种可能的方法:

1)在配置文件的options配置中,将recursion选项设为no(默认为yes

2)在配置文件的options配置中,将recursion选项设为yes,在view配置中,将allow-recursion设为{none;}

第一种设置方法是将递归查询改为迭代查询,第二种方法可以完全避免应答,但是仅在BIND9以上版本中拥有该选项。

无论采取何种方法,修改配置后应当重新加载并清除缓存(reload & flush

2、限制对域外用户提供DNS解析服务

通过修改BIND的配置文件可以限制提供DNS解析服务的范围,默认配置文件路径为/etc/named.conf,在options选项中修改allow-query语句:

allow-query {166.111.0.0/16;59.66.0.0/16;}

则可以限制仅有166.111以及59.66网段可以访问,设置其他网段类似。

3、利用防火墙等对ANY Request进行过滤

如果是在linux系统中安装的DNS服务软件,则可以通过iptablesANY Request请求进行过滤:

iptables -A INPUT -p udp --dport 53 -m string --hex-string "|00 00 ff 00 01|" --to 255 --algo bm -m comment --comment "IN ANY?" -j DROP

 

iptables -A FORWARD -p udp --dport 53 -m string --hex-string "|00 00 ff 00 01|" --to 255 --algo bm -m comment --comment "IN ANY?" -j DROP

此方法需要对数据包进行深度过滤,对服务性能影响较大,如果能够在DNS配置中实现DNS ANY Request防护,不建议使用第三种方法。

目录
相关文章
|
7天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
29 2
|
1月前
|
网络协议 Linux
Linux DNS服务详解——DNS主从架构配置
Linux DNS服务详解——DNS主从架构配置
407 4
|
1月前
|
域名解析 缓存 网络协议
Linux DNS服务详解——DNS基础知识
Linux DNS服务详解——DNS基础知识
72 1
|
2月前
|
SQL 监控 数据库连接
数字安全网:深入解析服务容错的三大绝招“
数字安全网:深入解析服务容错的三大绝招“
22 1
|
3月前
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
IP协议, TCP协议 和DNS 服务分别是干什么的?
233 0
|
4月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
110 0
|
1月前
|
域名解析 缓存 网络协议
探索Qt 网络编程:网络地址与服务类全解析
探索Qt 网络编程:网络地址与服务类全解析
54 0
|
1月前
|
域名解析 网络协议 Linux
Linux DNS服务详解——DNS服务搭建细节
Linux DNS服务详解——DNS服务搭建细节
33 5
|
1月前
|
存储 安全 网络安全
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。以下是关于如何生成和使用 SSH 密钥对的详细步骤: 生成 SSH 密钥对
98 2
|
3月前
|
网络协议 Linux 网络安全
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
149 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多