步骤五:为主域名服务器ns1.yourdomain.com的yourdomain.com区带的设置文件/etc/named.conf写入以下配置:
以下为引用的内容:
acl “dns-ip-list” {
172.20.15.100;
172.20.15.123;
};
key zone-xfr-key {
algorithm hmac-md5;
secret “YH8Onz5x0/twQnvYPyh1qg==”;
};
server 172.20.15.123 {
keys { zone-xfr-key; };
};
zone “yourdomain.com” {
type master;
file “mydomain.dns”;
allow-query { any; };
allow-update { none; };
allow-transfer { dns-ip-list; };
};
步骤六:为辅助域名服务器ns2.yourdomain.com的yourdomain.com区带的设置文件/etc/named.conf写入以下配置:
以下为引用的内容:
acl “dns-ip-list” {
172.20.15.100;
172.20.15.123;
};
key zone-xfr-key {
algorithm hmac-md5;
secret “YH8Onz5x0/twQnvYPyh1qg==”;
};
server 172.20.15.100 {
keys { zone-xfr-key; };
};
zone “yourdomain.com” {
type master;
file “mydomain.dns”;
allow-query { any; };
allow-update { none; };
allow-transfer { dns-ip-list; };
};
步骤七:再次重新启动主域名服务器和辅助域名服务器。
说明为确保安全性的问题,TSIG 可确认 DNS 之信息是由某特定 DNS Server 所提供。通常TSIG 应用于域名服务器间的区带传输,确保数据不会被篡改或产生 dns spoofing。
步骤八:
验证TSIG技术是否生效,步骤如下:
删除辅助域名服务器(ns2.yourdomain.com)的区带文件。
重新启动辅助域名服务器。
检查辅助域名服务器的区带文件是否自动建立。辅助域名服务器用来从主服务器中转移一整套域信息。区带文件是从主服务器转移出的,作为磁盘文件保存在辅助域名服务器中。
注意事项:如果为域名服务器配置了TSIG,那么要确保普通用户不能接触主域名服务器和辅助域名服务器的配置文件/etc/named.conf。另外也不能修改两台服务器的共享的TSIG密钥。
2、SIG0 技术简介
SIG0是一九九九年三月 由 IBM公司的D. Eastlake 提出成为标准。其是利用公开金钥机制为辖区资料进行数字签章的动作,以保证每笔传输的 source record 具有可验证性与不可否认性。实际上 SIG0 才是防止 DNS Spoofing 发生最主要的技术,SIG0 是使用公开金钥加密法,让辖区管理者为其辖区数据加上数字签章,由此证明辖区资料的可信赖性。除此之外,SIG0 保有是否选择认证机制的弹性,以及可灵活地配合自订的安全机制。
DNSSEC技术
DNS欺骗是对目前网络应用,最大的冲击在于冒名者借着提供假的网域名称与网址的对照信息,可以将不知情用户的网页联机,导引到错误的网站,原本属于用户的电子邮件也可能因而遗失,甚而进一步空开成为阻断服务的攻击。所幸,目前较新的 BIND 版本,针对这一类问题,已经有加入许多改进的方法,不过真正的解决方案,则有赖封包认证机制的建立与推动。DNSSEC就是试图解决这一类问题的全新机制, BIND9 已经完整加以设计并完成。DNSSEC引入两个全新的资源记录类型:KEY和SIG,允许客户端和域名服务器对任何DNS数据的来源进行密码验证。
DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密码签名。密码签名通过计算出一个密码hash数来提供DNS中数据的完整性,并将该hash 数封装进行保护。私/公钥对中的私钥用来封装hash数,然后可以用公钥把hash数译出来。如果这个译出的hash值匹配接收者刚刚计算出来的hash树,那么表明数据是完整的。不管译出来的hash数和计算出来的hash数是否匹配,对于密码签名这种认证方式都是绝对正确的,因为公钥仅仅用于解密合法的hash数,所以只有拥有私钥的拥有者可以加密这些信息。下面我们看看如何为名称是domain.com的域建立DESSEC配置。
步骤一:为 domain.com 域建立一对密钥。在 /var/named 目录下,使用命令: “/usr/local/sbin/dnssec-keygen -a DSA -b 768 -n ZONE domain.com” 这个命令产生一对长度768位DSA算法的私有密钥(Kdomain.com.+003+29462.private)和公共密钥(Kdomain.com.+003+29462.key)。其中29462称作密钥标签( key tag)。
步骤二:使用命令:“ /usr/local/sbin/dnssec-makekeyset -t 3600 -e now+30 Kdomain.com.+003+29462“建立一个密钥集合。该命令以3,600 seconds 的生存时间(time-to-live)建立密钥集合,有效期限三十天,并且创建一个文件:domain.com.keyset。
步骤三:使用命令“ /usr/local/sbin/dnssec-signkey domain.com.keyset Kdomain.com.+003+29462 “为密钥集合签字。然后建立一个签字文件:domain.com.signedkey。
步骤四:使用命令 “/usr/local/sbin/dnssec-signzone -o domain.com domain.db command, where domain.db ”为区带文件签字。然后建立一个签字文件: domain.db.signed。
步骤五:替换 配置文件/etc/named.conf中 domain.com的区带文件部分。清单如下:
以下为引用的内容:
zone “domain.com” IN {
type master;
file “domain.db.signed”;
allow-update { none; }; };
从上面的配置过程我们也看到DNSSEC的一些缺点:
除了配置负责,还有标记和校验DNS数据显然会产生额外的开销,从而影响网络和服务器的性能。签名的数据量很大,这就加重了域名服务器对互联网骨干以及一些非骨干连接的负担。产生和校验签名也占用了很多中央处理器的时间。有时候,不得不把单处理器的DNS服务器换成多处理器的DNSSEC服务器。签名和密钥占用的磁盘空间和RAM容量达到它们表示的数据所占容量的10倍。同时数据库和管理系统也不得不进行相应的升级和扩容。
总结:域名系统的配置和管理是一项比较复杂和繁琐的系统管理任务,它对整个网络的运行影响极大。为了保证DNS服务器的安全运行,不仅要使用可靠的服务器软件版本,而且要对DNS服务器进行安全配置,本文介绍了TISG和DNSSEC技术有助于减少 DNS Spoofing 攻击的发生,增进网络使用者对因特网使用的信任,杜绝信息系统遭受入侵与攻击的产生。
分页: [1] [2]
TAG: dns服务器 TSIG DNSSEC 安全