在企业内部一般都会有自己的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;
不错
回复 @ apanly: 非常不错