在企业内部一般都会有自己的DNS服务,主要为了企业方便管理,例如访问一些内部系统,控制一些网站不让访问,今天我们就说说如何打造私有的DNS服务
系统基础配置
Ubuntu14.04 内存:354M (使用vagrant 创建的虚拟机,快速打造自己开发环境 vagrant + virtualbox)
安装DNS服务
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
Mac设置DNS方法
设置dns截图
浏览器访问网页解析日志
PS:问题
如果出现 no valid DS resolving 错误,将 named.conf.options 中修改或者加入
dnssec-enable no; dnssec-validation no;