四、配置安全的DDNS
1、创建密钥(主服务器上操作)
[root@desktop54 ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST linuxidc
Klinuxidc.+157+46472
『dnssec-keygen:用来生成更新密钥。-a HMAC-MD5:采用HMAC-MD5加密算法。-b 128:生成的密钥长度为128位。-n HOST linuxidc:密钥主机linuxidc。』
[root@desktop54 ~]# ls Klinuxidc*
Klinuxidc.+157+46472.key Klinuxidc.+157+46472.private (公钥和私钥)
[root@desktop54 ~]# cat Klinuxidc.+157+46472.key Klinuxidc.+157+46472.private
linuxidc. IN KEY 512 3 157 YgSc3M4mBNCkTkA328kdxA== (公钥)
Private-key-format: v1.3 (私钥)
Algorithm: 157 (HMAC_MD5)
Key: YgSc3M4mBNCkTkA328kdxA==
Bits: AAA=
Created: 20120312205523
Publish: 20120312205523
Activate: 20120312205523
2、将密钥加到DNS主配置文件
**查看模板:
[root@desktop54 ~]# cat /etc/rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "Vrjz2o7eevbbmtp/6CeT6Q==";
};
**定义密钥
[root@desktop54 ~]# vim /etc/named.conf (添加下面的密钥)
key "linuxidc"
{
algorithm hmac-md5; (密钥的算法:hmac-md5)
secret "YgSc3M4mBNCkTkA328kdxA=="; (密钥)
};
**添加密钥
将linuxidc.com的allow-update { 192.168.0.85; } 中的IP换为“key linuxidc”;
将0.168.192.in-addr.arpa中的allow-update { 192.168.0.85; }中的IP换为"key linuxidc";
将allow-transfer { 192.168.0.85; }中的IP换为“key linuxidc”;允许远程登录修改。
之前是使用IP更新区域文件,但是IP可以伪造的,不是很安全。所以设定为只让拥有密钥的用户才可以更新。
[root@desktop54 ~]# service named restart
重启服务~
3、将密钥加到DHCP主配置文件
[root@desktop54 ~]# vim /etc/dhcp/dhcpd.conf
key "linuxidc"
{
algorithm hmac-md5;
secret "YgSc3M4mBNCkTkA328kdxA==";
} (注意这里结尾没有分号;,和named配置不一样)
zone linuxidc.com. (注意这里有个点.)
{ primary 127.0.0.1;
key linuxidc;
} (注意这里结尾没有分号;,和named配置不一样)
zone 0.168.192.in-addr.arpa. (注意这里有个点.)
{
primary 127.0.0.1;
key linuxidc;
} (注意这里结尾没有分号;,和named配置不一样)
[root@desktop54 ~]# service dhcpd restart
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
[root@desktop54 ~]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
4、测试DDNS
**先查看192.168.0.85的主机名
[root@desktop85 ~]# hostname
desktop85.example.com
**在85主机上新建一个名为“dhclient.conf”的dhcp客户端配置文件
[root@desktop85 ~]# vim /etc/dhcp/dhclient.conf
send fqdn.fqdn "dhcp85.linuxidc.com";
send fqdn.encoded on;
send fqdn.server-update on;
[root@desktop85 ~]# service network restart
**测试
[root@desktop54 ~]# dig dhcp85.linuxidc.com
;; ANSWER SECTION:
dhcp85.linuxidc.com. 300 IN A 192.168.0.111 (111就是获取到的IP地址啦)
这样当获得的动态ip也能互相查到了。就不用手工录入解析。
[root@desktop54 ~]# cat /var/lib/dhcpd/dhcpd.leases
lease 192.168.0.111 {
starts 1 2012/03/12 22:42:26;
ends 1 2012/03/12 22:52:26;
cltt 1 2012/03/12 22:42:26;
binding state active;
next binding state free;
hardware ethernet 52:54:00:16:73:bb;
set ddns-fwd-name = "dhcp85.linuxidc.com"; (就是这儿了)
set ddns-txt = "0036a33e6d9f5120ed2dbf20dbd50d636b";
set ddns-rev-name = "111.0.168.192.in-addr.arpa."; (对应的IP地址)
}
[root@desktop54 ~]# nslookup dhcp85.linuxidc.com (dig一下效果也是一样呢)
Server: 192.168.0.54 (通过54主机解析)
Address: 192.168.0.54#53 (53端口)
Name: dhcp85.linuxidc.com
Address: 192.168.0.111
这样DDNS的功能就呈现出来了~~
参考nsupdate文档: