DNS配置及其高级应用
时间:2010-01-05 来源:ekookc
1.使用bind来安装DNS
# yum install bind 服务器软件包
# yum install bind-chroot 安全考虑 用来将bind与OS分离出来 虚拟的根
# yum install caching-nameserver 模板
2.了解bind的目录结构
# grep -v ^# /etc/sysconfig/named
ROOTDIR=/var/named/chroot
[root@n0d chroot]# ls *
dev:
null random zero
etc:
localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key
var:
named run tmp
[root@n0d chroot]#
3.以google.com为例设置正解和反解域
首先修改主配置文件
[root@n0d ~]# grep any /etc/named.caching-nameserver.conf
listen-on port 53 { any; };
allow-query { any; };
match-clients { any; };
match-destinations { any; };
建立正反解查询
[root@n0d ~]# tail -8 /etc/named.rfc1912.zones
zone "ekookc.com" IN {
type master;
file "ekookc.zone.db";
};
zone "1.168.192.in-addr-arpa" IN {
type master;
file "ekookc.arpa.db";
};
复制模板并修改成自己需要的配置文件
[root@n0d named]# cd /var/named/chroot/var/named/
[root@n0d named]# cp localdomain.zone ekookczone.db
[root@n0d named]# cp named.local ekookc.arpa.db
[root@n0d named]# cat ekookc.zone.db
$TTL 86400 |
$TTL 86400 |
修改区域文件的拥有者
[root@n0d named]# chown root.named google.com.*
查看配置文件有没有语法错误
[root@n0d named]# cd /var/named/chroot/etc/
[root@n0d named]# named-checkconf /etc/named.caching-nameserver.conf ------检查主配置文件,没有提示就是正确的
[root@n0d etc]# named-checkzone ekookc.zone.db ------检查区域配置文件
zone ekookc/IN: loaded serial 42
OK
PS:需要特别注意的是,/etc/resolv.conf文件中的内容会影响你实验的结果,第一个nameserver一定要写你正在实验的机器上的ip地址,要不会出现解析错误
明天写dns的高级应用,该睡觉了..
4.搭建DNS主从服务器
修改主机配置文件
[root@n0d named]# tail -n 12 /var/named/chroot/etc/named.rfc1912.zones
zone "google.com" IN {
type master;
file "google.com.zone.db";
allow-transfer {192.168.1.32;};
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "google.com.arpa.db";
allow-transfer {192.168.1.32;};
};
[root@n0d named]#
在主机的zone文件中加入从机做NS
添加一条记录并做解析
正解:
dns IN NS dns.google.com.
IN A 192.168.1.32
反解:
32 IN NS dns.google.com.
IN PTR dns.google.com.
如不修改则只能向从机传递zone文件 从机不会随主机更新正解反解文件而更新
修改从机配置文件 无需建立zone文件
[root@stu32 named]# tail -n 12 /var/named/chroot/etc/named.rfc1912.zones
zone "google.com" IN {
type slave;
file "slaves/google.com.zone.db";
masters {192.168.1.31;};
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/google.com.arpa.db";
masters {192.168.1.31;};
};
[root@stu32 named]#
测试
重新启动主从服务器,zone文件会自动复制过去
再向主服务器中添加新的正反记录并修改版本号,重新启动主后,从即可更新记录
5.TSIG 事务签名的方式
搭建好主从服务器后,其实还有个问题需要我们考虑,就是安全问题,从上面的配置过程可以看出,在主从服务器的传输过程中,并没有做什么验证之类的工作,如果有黑客发现了主DNS服务器,那么他也可以做个从服务器,把主服务器上的数据拷贝到他的机器上,这是一个很大的安全隐患,那么怎样解决呢,TSIG事物签名可以增加DNS服务器的安全系数.
以下是配置过程
[root@n0d chroot]# dnssec-keygen -a hmac-md5 -b 128 -n HOST abc
[root@n0d chroot]# cat Kabc.+157+30879.key
abc. IN KEY 512 3 157 I9clluxw//lIiSLuEQ7ApA==
设置主服务器
[root@n0d chroot]# vim /var/named/chroot/etc/named.rfc1912.zones
在最上面添加如下信息
key abckey{
algorithm hmac-md5;
secret "I9clluxw//lIiSLuEQ7ApA==";
}
在最下面
zome "google.com" {
type master;
file "google.com.zone";
allow-transfer { key abckey };
}
设置从服务器
key abckey{
algorithm hmac-md5;
secret "I9clluxw//lIiSLuEQ7ApA==";
}
在最下面
zone "google.com" {
type slave;
file "google.com.zone";
masters {192.168.1.254 key abckey};
}
6.DNS子域授权
1 google.com 192.168.1.254 :创建一个DNS域为:google.com
2 sales.google.com 192.168.1.188 :创建一个DNS域为:sales.google.com
3 授权在looking.com域中的配置文件添加子域的信息
sales IN NS dns.sales.google.com.
dns.sales IN A 192.168.1.188
4 测试
在子域中添加
sales.google.com. IN NS dns.sales.google.com.
dns.sales.google.com. IN A 192.168.1.188
www.sales.google.com. IN A 192.168.1.190
ftp.sales.google.com. IN A 192.168.1.238
当客户的DNS指向主域,然后
host www.sales.google.com
host ftp.sales.google.com
7.视图功能:一般用于双线连接
[root@n0d etc]# pwd
/var/named/chroot/etc
[root@n0d etc]# vim named.rfc1912.zones
//acl cnc_acl { 192.168.1.2; 192.168.1.4; }; :acl定义的IP段,目前被注释掉
//acl tel_acl { 192.168.1.188;192.168.1.10; }; :acl定义的IP段,目前被注释掉
include "/etc/cnc.txt"; :指向含有IP的文件(文件内容在下面,此处的/为/var/named/chroot)
include "/etc/tel.txt"; :指向含有IP的文件
view cnc { :定义联通段ip所走的路由
match-clients { cnc_acl; };
match-destinations { any; };
recursion yes;
//include "/etc/named.rfc1912.zones";
zone "google.com" IN {
type master;
file "google.com.zone.cnc"; :根据需要自定义正向域文件内容,可以COPY模板
};
};
view tel { :定义电信段IP所走的路由
match-clients { tel_acl; }; :指向含有IP的文件(文件内容在下面,此处的/为/var/named/chroot)
match-destinations { any; };
recursion yes;
// include "/etc/named.rfc1912.zones";
zone "google.com" IN {
type master;
file "google.com.zone.tel"; :根据需要自定义正向域文件内容,可以COPY模板
};
};