如何关闭开放的DNS解析器?

译文
安全 黑客攻防
开放的DNS解析器并不过滤任何入站请求,可以接受来自任何源IP地址的查询。因此,开放的解析器可能很容易成为攻击者下手的目标。本教程将主要介绍如何配置一台DNS服务器,以便它不再是开放的DNS解析器,只应答有效的客户。

开放的DNS解析器并不过滤任何入站请求,可以接受来自任何源IP地址的查询。因此,开放的解析器可能很容易成为攻击者下手的目标。比如说,攻击者可以对开放的DNS服务器发动拒绝服务(DoS)攻击;或者更严重的是,发动分布式拒绝服务(DDoS)攻击。这些攻击还可能结合IP欺诈手法,即所有应答数据包都将被引导到受害者被欺诈的IP地址。在另一种名为DNS放大攻击的攻击场景下,开放的DNS服务器可能积极参与攻击。

[[112511]]

据openresolverproject.org网站声称,除非确有必要,否则不建议运行开放的解析器。大多数公司只允许客户访问其DNS服务器。本教程将主要介绍如何配置一台DNS服务器,以便它不再是开放的DNS解析器,只应答有效的客户。

调整防火墙

由于DNS在UDP端口53上运行,系统管理员们可能试图允许端口53仅用于客户机IP地址访问,阻止互联网的其他机器访问该端口。虽然这一招很管用,但还是会有一些问题。由于根服务器与DNS服务器之间的通信也使用端口53,我们不得不确保:在防火墙中还允许根服务器的IP地址可以使用UDP端口53。

下面提供了一个示例性的防火墙脚本。如果是生产环境下的服务器,就要确保规则符合你的需求,而且还要遵守贵公司的安全政策。

# vim firewall-script 
## 现有的规则被清除,以便由一组新的规则开始 ## iptables -F
iptables -A INPUT -s A.A.A.A/X -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s B.B.B.B/Y -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s C.C.C.C/Z -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP
## 让规则具有持久性 ## service iptables save
让脚本成为可执行脚本,并运行它。
# chmod +x firewall-script
# ./firewall-script

阻止递归查询

DNS查询可以主要分为两类:递归查询和迭代查询。如果是递归查询,服务器使用应答或错误信息回应客户机。如果服务器缓存中没有该应答,服务器就与根服务器进行联系,以获得授权域名服务器。服务器不断查询,直到它获得应答,或者直到查询超时。另一方面,如果是迭代查询,服务器只是将客户机转到能够处理的另一台服务器,因而导致在该服务器上面的处理工作量比较少。

我们可以控制允许递归查询的IP地址。我们只要改动配置文件/etc/named.conf,并添加/修改下列参数。

# vim /etc/named.conf

## 我们定义访问控制列表(ACL),以指定一个或多个源地址
##
acl customer-a{ A.A.A.A/X; };
acl customer-b { B.B.B.B/Y; C.C.C.C/Z; };

## 我们根据选项指令调用ACL ##
options {
        directory "/var/named";
        allow-recursion { customer-a; customer-b; }
;
};

针对开放的解析器调整防火墙

如果你非得运行开放的解析器,那么我们建议你合理调整防火墙,以便服务器无法被不法分子钻空子。Smurfmonitor规则库(https://github.com/smurfmonitor/dns-iptables-rules)提供了一组功能强大的iptables规则,这些规则可以用在开放的解析器中,比如阻止对参与DNS放大攻击的域提出查询请求。该规则库定期更新,我们强烈建议DNS服务器管理员们使用它。

总而言之,针对开放的DNS解析器的攻击很常见,对没有采用合理安全措施的DNS服务器而言更是如此。本教程演示了如何禁用开放的DNS服务器。我们还看到了iptables如何可以用来为开放的DNS服务器增添另一层安全机制。

原文地址:http://xmodulo.com/2014/04/close-open-dns-resolver.html

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2022-06-21 09:38:52

UnboundDNSLinux

2022-10-20 11:00:52

SQL解析器

2021-01-15 11:27:08

黑客攻击DNS

2009-03-19 09:26:05

RSS解析器MagpieRSS

2015-09-15 14:02:57

DNS解析

2022-02-14 13:58:32

操作系统JSON格式鸿蒙

2021-03-16 10:39:29

SpringBoot参数解析器

2020-12-02 10:13:45

JacksonJDK解析器

2010-02-22 13:38:50

Python解析器

2010-02-22 16:51:03

Python 解析器

2009-01-03 14:39:00

ibmdwSpirit

2010-03-05 10:14:53

Ubuntu ruby

2021-10-03 15:02:50

HTTPNodejs

2011-04-01 16:16:27

JavaScript

2021-03-18 10:56:59

SpringMVC参数解析器

2023-12-30 13:33:36

Python解析器JSON

2009-11-13 10:12:03

2010-01-07 16:37:04

JSON解析器

2009-12-14 18:59:27

Ruby解析器

2010-01-07 17:24:31

JSON 解析器
点赞
收藏

51CTO技术栈公众号