DNS 安全详解
前言
在配置DNS主从服务器同步的时候,bind服务默认是允许任何人进行同步的,但是这样容易造成安全隐患。bind服务支持通过限制IP和key认证两种方式来对同步进行限制。
常见参数解析
- allow-query { any; }; #允许所有用户使用dns解析
- forwarders { 172.25.254.250; }; #如果在本地高速缓存dns中找不到解析则访问172.25.254.250进行解析(转发的意思)
- allow-query-cache { any;} ;#允许用户查询服务器缓存。如果没有配置,则继承allow-recursion设置,若allow-recursion也没配置,则继承allow-query设置,若allow-query也没设置,则使用默认值default(localnets; localhost;)。
- allow-transfer { 192.168.8.100; }; ##设定哪台主机允许和本地服务器进行域传输
- also-notify:主动通知从域名服务器进行更新,不需要在等规定的时间后才通知从域名服务器进行更新
- allow-recursion 设定哪台主机可以进行递归查询。如果没有设定,缺省是允许所有主机进行递归查询
IP限制
在options 里加入这个
allow-query { localhost; 127.0.0.1; 10.0.0.0/8; 100.0.0.0/8; 172.0.0.0/8; 192.0.0.0/8; };
key认证
获取key的方法:
dnssec-keygen -a hmac-md5 -n HOST -b 512 dns
- 在zone文件里定义key
key tengfeikey { //编辑key
algorithm hmac-md5; //指定key的算法
secret "fsApVPn3QtzSYVCiRxjA5eK/0MgG9LLZPQ8nAVa2COEfkcAeu1U3Nz8YWZikM+bmkcrxsB09bFhe8UNp4smvAw=="; //key的密文串
};
- 调用方法:
zone "tengfei.com" IN {
type master; //主服务器
file "tengfei.com.zone"; //域数据库文件
allow-transfer { key tengfeikey;};
};