响应策略区域(Response policy zones)
响应策略区域(RPZ)是使用递归DNS服务器控制查询者可以查询和不能查询的内容的一种方式。通过了解客户端正在查询的服务器和服务的信誉,可以确定递归服务器接收某些域名查询或在DNS响应中看到指向那些恶意服务器的信息时要采取的措施。
RPZ工作原理的总体思路是,可以为如何处理特定查询(或响应)创建策略,并选择要采取的一些可能操作(如将客户端重定向到内部安全页),然后将这些策略存储在DNS服务器上的特别权威区域中。还可以通过将这些区域从DNS服务器传输到(另外的)DNS服务器来共享这些区域。
RPZ中的记录也是由owner name,type和rdata组成。只是RPZ区域不会用于接收用户发起的请求,只在用户发起的请求时会匹配RPZ定义的规则。RPZ规则中owner name用于定义触发器,rdata用于定义动作,即满足触发器的请求会按照策略执行相应的动作。
RPZ 作用
- 劫持互联网恶意域名
- 丢弃指定域名的解析请求
- 指定域名解析到NXDOMAIN .
- 禁用恶意IP的DNS请求
- 封禁I域名对应IP解析
RPZ触发器
- Client IP Address,owner name为:以.rpz-client-ip结尾。用于匹配发起请求的客户端的IP地址,双栈均可支持。定义IPv4地址段的客户端时,如B1.B2.B3.B4/prefix,在RPZ策略规则的书写规则中应当写成prefix.B4.B3.B2.B1;定义IPv6地址段的客户端时,如B1:B2:B3:B4:B5:B6:B7:B8/prefix,在RPZ策略规则的书写格式中应当写成prefix.B8.B7.B6.B5.B4.B3.B2.B1。如同IPv6地址可以使用双冒号缩写,此处的IPv6地址可以相应的使用zz替代。如2001::6:180/128可写成128.180.6.zz.2001。
- QDNAME,owner name 为:正常域名,可带通配符。用于匹配发起请求包或应答包中请求域名字段的域名。
- Response IP Address,owner name为:以.rpz-ip结尾。用于匹配应答记录中的的IP地址,双栈均可支持。IP地址段的编写格式与Client IP Address中描述的一致。
匹配到180.101.49.0/24IP段后,www.baidu.com将会返回NXDOMAIN。
- NSDNAME,owner name 为:以.rpz-nsdname结尾。用于匹配应答记录中NS的名字,可以在回答部分,授权部分。
- NSIP,owner name 为:以.rpz-nsip结尾。用于匹配应答记录中NS名字对应的IP地址(A或AAAA的数据),可以在回答部分,附加部分。
RPZ执行动作
- NXDOMAIN,rdata为:. 。动作为回复NXDOMAIN类型的应答。当RPZ存在一个域名CNAME记录指向根域(.)的话,recursor不会向上游DNS进行查询,直接返回NXDOMAIN,即域名不存在。
- NODATA,rdata为:*. 。动作为回复NODATA类型(rcode为noerror但是answer个数为0)的应答。当RPZ存在一个域名CNAME记录指向通配符顶级域名,recursor不会向上游DNS进行查询,直接返回NODATA,即空返回。
- PASSTHRU,rdata为:rpz-passthru. 。动作为透传,即RPZ白名单,不走RPZ策略规则。ok.example.com CNAME记录指向rpz-passthru.,会正常返回查询结果,尽管example.com子域下其他域名会返回NXDOMAIN。
- DROP,radata为:rpz-drop. 。动作为丢弃,即不做应答。当RPZ存在一个域名CNAME指向rpz-drop.,recursor会直接丢弃查询请求,查询客户端无法得到正确响应。
- TCP-ACTION,rdata为:rpz-tcp-only. 。动作为将应答中的TC标志置1,强制用户发起TCP的DNS请求,用于攻击防护。当RPZ存在一个域名CNAME指向rpz-tcp-only.,recursor会引导客户的重新以TCP协议再次发起域名查询。
- LOCAL DATA,rdata为:正常域名 。动作为回复指定预先配置好的解析结果。
Bind响应策略区域配置
vim /etc/named/named.conf
RPZ日志配置
RPZ zone 配置
vim named.rfc1912.zones
RPZ 区域主配置文件
vim /var/named/rpz.test.local
代码语言:javascript复制$TTL 10M
@ IN SOA kylin.zabbix.com. dnsadmin.zabbix.com. ( 1 ;序列号 1H ;1小时后刷新 5M ;15分钟后重试 7D ;1星期后过期 1D );否定缓存TTL为1天 IN NS kylin
www.jd.com IN A 192.168.100.161
*.google.com IN A 192.168.100.161
www.souhu.com CNAME www.baidu.com.
www.3399.com CNAME .
RPZ 区域域名dig测试
www.jd.com
*.google.com
www.souhu.com
www.3399.com
查看RPZ日志
代码语言:javascript复制tail -n 10 /var/named/data/rpz.log