在企业内部一般都会有自己的DNS服务,主要为了企业方便管理,例如访问一些内部系统,控制一些网站不让访问,今天我们就说说如何打造私有的DNS服务
系统基础配置
Ubuntu14.04 内存:354M (使用vagrant 创建的虚拟机,快速打造自己开发环境 vagrant + virtualbox)
- sudo apt-get install bind9 bind9utils
上篮三步简单设置 用 dr.local.com 为测试域名
1.配置forward 编辑/etc/bind/named.conf.options
- forwarders {
- 114.114.114.114;
- 8.8.8.8;
- };
2.配置需要解析的域名 编辑/etc/bind/named.conf,最下面添加
- zone "dr.local.com" {
- type master;
- file "/etc/bind/master/dr.local.com";
- };
dr.local.com
- ;
- ; BIND data file for local loopback interface
- ;
- $TTL 604800
- @ IN SOA dr.local.com. root.dr.local.com. (
- 2 ; Serial
- 604800 ; Refresh
- 86400 ; Retry
- 2419200 ; Expire
- 604800 ) ; Negative Cache TTL
- ;
- @ IN NS dr.local.com.
- @ IN A 192.168.22.24
- @ IN AAAA ::1
-
- blog IN A 192.168.22.24
- admin IN A 192.168.22.24
- api IN A 192.168.22.24
- static IN A 192.168.22.24
3.自定义日志位置 编辑/etc/bind/named.conf,最下面添加
- logging {
- channel query_log {
- file "/data/logs/named/namequery.log" versions 3 size 20m;
- severity info;
- print-time yes;
- print-category yes;
- };
- category queries {
- query_log;
- };
- channel update_log {
- file "/data/logs/named/nameupdate.log" versions 3 size 5m;
- severity info;
- print-time yes;
- print-category yes;
- };
- category update {
- update_log;
- };
- channel general_log {
- file "/data/logs/named/namegeneral.log" versions 3 size 5m;
- severity info;
- print-time yes;
- print-category yes;
- };
- category general {
- general_log;
- };
- };
这样设置自定义目录后会出现安全问题,需要修改apparmor配置,
关于apparmor具体解释请看 Ubuntu apparmor何方神圣
- $ sudo vim /etc/apparmor.d/usr.sbin.named
- #在最下面添加
- /data/logs/named/** rw,
- /data/logs/named/ rw,
- $ sudo /etc/init.d/apparmor restart
- $ sudo /etc/init.d/bind9 restart
- nslookup baidu.com
- nslookup blog.dr.local.com
设置dns截图


浏览器访问网页解析日志


如果出现 no valid DS resolving 错误,将 named.conf.options 中修改或者加入
- dnssec-enable no;
- dnssec-validation no;
不错
回复 @ apanly: 非常不错