打造私有的DNS 服务


在企业内部一般都会有自己的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截图

600


浏览器访问网页解析日志

600


PS:问题

如果出现 no valid DS resolving 错误,将 named.conf.options 中修改或者加入

dnssec-enable no; 
dnssec-validation no;


bind dns apparmor
编程浪子走四方:CodeRonin