项目内容:
配置基于TSIG事务签名的主从DNS服务器,确保主从服务器通信安全
项目目的:
利用机密技术为主从服务器的通信传输信息进行加密,保护DNS服务器的安全,确保传输信息不被窃取和监听
步骤:
首先在开始设置,必须为主域名服务器(master DNS)和从域名服务器( slave DNS) 进行时间同步,否则会造成区域文件传输的失败。可以使用ntp或者rdate工具进行服务器时间同步。
1、 产生密钥
[root@Dns_master etc]# dnssec-keygen -a hmac-md5 -b 128 -n HOST mykey
Kmykey.+157+49984
[root@Dns_master etc]# ll Kmykey*
-rw------- 1 root root 49 09-06 09:03 Kmykey.+157+49984.key
-rw------- 1 root root 81 09-06 09:03 Kmykey.+157+49984.private
[root@Dns_master etc]#
[root@Dns_master etc]# cat Kmykey.+157+49984.key
mykey. IN KEY 512 3 157 hkqivLCxj46qDPJ+x/vv1A==
[root@Dns_master etc]# cat Kmykey.+157+49984.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: hkqivLCxj46qDPJ+x/vv1A==
[root@Dns_master etc]#
注:以上Kmykey.+157+49984.key是公钥,Kmykey.+157+49984.private是私钥
2、 修改配置文件
Master端:
修改域声明文件
[root@Dns_master etc]# pwd
/var/named/chroot/etc
#倾斜的代码是修改过的
[root@Dns_master etc]# vi named.rfc1912.zones
[root@Dns_master etc]# tail -11 named.rfc1912.zones
key mykey{
algorithm hmac-md5;
secret "hkqivLCxj46qDPJ+x/vv1A==";
};
zone "Skylinux.com" IN {
type master;
file "Skylinux.com.zone";
notify yes;
allow-transfer{key mykey;};
};
[root@Dns_master etc]#
Slave端配置:
[root@Dns_slave etc]# pwd
/var/named/chroot/etc
[root@Dns_slave etc]# vi named.rfc1912.zones
key mykey{
algorithm hmac-md5;
secret "hkqivLCxj46qDPJ+x/vv1A==";
};
zone "Skylinux.com" IN {
type slave;
file "slaves/Skylinux.com.zone";
masters {192.168.1.100 key mykey;};
};
[root@Dns_slave etc]#
测试:
在客户端删除原有的区域文件
[root@Dns_slave /]# cd /var/named/chroot/var/named/
[root@Dns_slave named]# ls
data localhost.zone named.ca named.local slaves
localdomain.zone named.broadcast named.ip6.local named.zero
[root@Dns_slave named]# cd slaves/
[root@Dns_slave slaves]# ls
Skylinux.com.zone
[root@Dns_slave slaves]# rm -rf Skylinux.com.zone
[root@Dns_slave slaves]#
[root@Dns_slave slaves]# service named restart
停止 named: [确定]
启动 named: [确定]
[root@Dns_slave slaves]# ls
Skylinux.com.zone
[root@Dns_slave slaves]#
注:要保证主从服务器的系统时间相差在两分钟以内
搭建DNS视图服务器,让来自不同ip地址的客户端,解析到指定的主机
我们下面的实验是模拟双线接入网络,我们可以实现,来自联通地址段的客户端,解析到联通的服务器,来自移动地址段的客户端,解析到移动的服务器。
(双线接入网络:
真正的双线接入是不需要使用两个IP地址的。
全网路由或者双线接入是一项网络接入的链路层技术。是指服务器所在的数据中心机房同时拥有网通与电信等多种网络出口,在机房的上层路由器上设置了全网路由技术,使服务器每次向外部网络连接时可以自动被分配到最快速的链路上。从而实现了电信与网通用户都可以同时高速访问。
但此项技术仅能解决数据输出时的互联互通问题,从您的电脑终端向服务器发起的连接通常是无法自动选择链路方式的,这受制于您的网络提供商,因此您上传数据时的速度仍然会受到网络互联问题的影响。但是通常我们制作网站仅需要非常少量的上传,而绝大多数情况是将网页内容提供给浏览者下载。
除了全网路由(双线接入)外,CDN技术也可以实现各网络快速访问。但CDN技术除了会遇到上传慢,更麻烦的是内容缓存与同步周期限制,使您的内容不能够及时发布,用户浏览到的永远是相对滞后的信息。 因此,双线接入也就成了目前网站解决互联互通问题的最佳解决方案。)
Master端:
IP1:192.168.1.100/24
IP2:192.168.0.100/24
Slave端:
IP:192.168.1.103/24
# yum install bind bind-chroot caching-nameserver -y
创建密钥
创建tel视图的密钥
[root@Dns_master etc]#dnssec-keygen -a hmac-md5 -b 128 -n HOST tel
创建cnc视图的密钥
[root@Dns_master etc]#dnssec-keygen -a hmac-md5 -b 128 -n HOST cnc
[root@Dns_master etc]# vi named.caching-nameserver.conf
[root@Dns_master etc]# cat named.caching-nameserver.conf
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
//view localhost_resolver {
// match-clients { any; };
// match-destinations { any; };
// recursion yes;
// include "/etc/named.rfc1912.zones";
//};
key "tel" {
algorithm hmac-md5;
secret " AO/jVw8Moo1USyH6dnyoFw==";
};
key "cnc" {
algorithm hmac-md5;
secret " GMhJe7tTV14A1LUyIHtErg==";
};
acl cnc {192.168.1.0/24;};
acl tel {192.168.0.0/24;};
view cnc {
match-clients { key "cnc";cnc; };
zone "Skylinux.com" {
type master;
also-notify { 192.168.1.103;};
file "cnc.Skylinux.com.zone";
allow-transfer {key cnc;};
};
};
view tel {
match-clients { key "tel";tel; };
zone "Skylinux.com" {
type master;
also-notify { 192.168.1.103; };
file "tel.Skylinux.com.zone";
allow-transfer {key cnc;};
};
};
====================
[root@Dns_master etc]# pwd
/var/named/chroot/etc
[root@Dns_master etc]# cd ../var/named/
[root@Dns_master named]# vi tel.Skylinux.com.zone
[root@Dns_master named]# cat tel.Skylinux.com.zone
$TTL 86400
@ IN SOA @ root (
201101010 ; serial (d. adams)
5 ; refresh
5 ; retry
1W ; expiry
1D ) ; minimum
IN NS dns.Skylinux.com.
IN A 192.168.1.103
www IN A 192.168.0.100
www2 IN A 192.168.0.103
www3 IN A 192.168.0.103
www4 IN A 192.168.0.103
[root@Dns_master named]#
[root@Dns_master named]# vi cnc.Skylinux.com.zone
[root@Dns_master named]# cat cnc.Skylinux.com.zone
$TTL 86400
@ IN SOA @ root (
201101010 ; serial (d. adams)
5 ; refresh
5 ; retry
1W ; expiry
1D ) ; minimum
IN NS dns.Skylinux.com.
IN A 192.168.1.103
www IN A 192.168.1.100
ftp IN A 192.168.1.102
[root@Dns_master named]#
修改域文件的权限
[root@Dns_master named]# chown :named *Skylinux*