请教dns!有关于密码的问题!

时间:2022-06-01 19:19:11

小弟一直以来都在寻找关于DNS配置,无奈很多资料都是过时的,特别关于KEY和RNDC的部分。这次用的文档是本站一篇:“BIND9的配置”。只做到这一部分就出错了:

在bind9.1.1中,碰到的主要问题就是ndc不能使用.ndc可以在本地控制bind的stop,start,reload等.

在9.1.0以上中,取消了ndc,代之以rndc,顾名思义,rndc是支持远程控制的ndc,这必须使用密码跟bind通讯.

rndc一直不能工作,调了1天多,终于搞定,英文不好害死人呀.下面以红帽子7.0为例介绍一下过程.

具体的编译以及安装过程这里就不写了,请参考bind8的文档.

密码放在/etc/rndc.conf里面.方法如下:

dnssec-keygen 产生一段密码.使用如下命令:

dns-keygen -a hmac-md5 -b 192 -n HOST rndc

生成2个文件 Krndc.xxxx.key 和Krndc.xxxx.private

将Kmykey.xxxx.private里面的1个key串复制下来.做成如下1个小节

key “mykey”{

algorithm "hmac-md5";

secret "I+JTxIv4gmczZmTIrQCjOAqkIK1SeWHY";

};

分别放进etc/rndc.conf和/etc/named.conf文件的最后.

在rndc.conf中如此调用:

server localhost{

key “mykey”;

};

在named.conf中如此调用:

controls {

inet 127.0.0.1 allow {localhost;} keys {“mykey”;};

};

然后重启 named进程,

执行rndc reload 试验.

rndc: reload command successful!

named.conf和rndc.conf在下帖帖出!

named.conf和rndc.conf

rndc.conf的内容如下:

/*

* Copyright (C) 2000, 2001 Internet Software Consortium.

*

* Permission to use, copy, modify, and distribute this software for any

* purpose with or without fee is hereby granted, provided that the above

* copyright notice and this permission notice appear in all copies.

*

* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM

* DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL

* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL

* INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,

* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING

* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,

* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION

* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

*/

/* $Id: rndc.conf,v 1.6.4.1 2001/01/09 22:32:57 bwelling Exp $ */

/*

* Sample rndc configuration file.

*/

options {

default-server localhost;

default-key "key";

};

server localhost {

key "mykey";

};

key "mykey" {

algorithm "hmac-md5";

secret "I+JTxIv4gmczZmTIrQCjOAqkIK1SeWHY";

};

named.conf的内容如下:

// generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

controls {

inet 127.0.0.1 allow { localhost; } keys { "mykey"; };

};

zone "." IN {

type hint;

file "named.ca";

};

zone "localhost" IN {

type master;

file "localhost.zone";

allow-update { none; };

};

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

allow-update { none; };

};

include "/etc/rndc.key";

key "mykey" {

algorithm "hmac-md5";

secret "I+JTxIv4gmczZmTIrQCjOAqkIK1SeWHY";

};

问题!

在生成KEY的过程中,我发现本机上生成的KEY与文中不同(在用命令时看到),但找不到这生成的两个文件在哪里,搜也搜得死机,还请告诉我:是用本机生成的,还是用文中的就行了呢?要是用本机生成的,应在哪里找到?

我的目的是仅仅是能正常使用rndc!

如题

Re: 没有高手来说说?「空」

Re: 请教dns!有关于密码的问题!

BIND 9的配置一文所使用的方法应该是没错的,问题可能出在你的应用环境和文中环境不一致,所以建议你最好能够描述一下你做配置的具体环境。

riser 兄你好!

riser 兄你好!我是在RH7.2上做DNS的,其他的就没什么不同了,如果说其他的,我还真说不上来,不过那个问题:

在生成KEY的过程中,我发现本机上生成的KEY与文中不同(在用命令时看到),但找不到这生成的两个文件在哪里,搜也搜得死机,还请告诉我:是用本机生成的,还是用文中的就行了呢?要是用本机生成的,应在哪里找到?

请顺道回答一个好吗?谢谢!

riser老兄请看!

应该在当前目录,例如/root

虽然我找到此文件,但是我已经按照论坛上的方法以及redhat的doc的方法实验了n+10之巨。去没有一次成功,前一段时间是出现认证错误,现在我用RH7.3,却是connect refused.于是我便自己下载了BIND9.2.1,自己编译安装,再试,仍旧不行,为什么,为什么?

但是我发现了一个奇怪的现象,我用

#named -u named 启动named,域名服务开始,然后再用rndc reload,没有任何提示便过去了,当我kill掉named,再用rndc reload,再次出现connect refuse.

既然能够用named -u named启动域名服务,那rndc有何用,如何保证其安全。我感觉好像我用rndc reload是没有使用配置文件的权限,但是我是root。

why?请riser老兄和其他各位高手赐教。

Re: riser老兄请看!

回应:

--------------------------------------------------------------------------------

但是我发现了一个奇怪的现象,我用

#named -u named 启动named,域名服务开始,然后再用rndc reload,没有任何提示便过去了,当我kill掉named,再用rndc reload,再次出现connect refuse.

既然能够用named -u named启动域名服务,那rndc有何用,如何保证其安全。我感觉好像我用rndc reload是没有使用配置文件的权限,但是我是root。

--------------------------------------------------------------------------------

1、rndc只能实现reload、stop、dumpdb、status等功能。这一点你简单地输入rndc命令就会得到提示。

2、既然你已经把named给kill了,还谈什么rndc reload?当然是connection refused。rndc只是个方便对named进行操作的工具,就像ndc一样,只不过加了个安全性认证,并能实现远程操作。

我按照前面的帖子中的方法一次就成功了,劝你还是再认真检查一下。

顺道回复燕十三兄,注意红色部分:

*/

options {

default-server localhost;

default-key "key";

};

server localhost {

key "mykey";

};

key "mykey" {

algorithm "hmac-md5";

secret "I+JTxIv4gmczZmTIrQCjOAqkIK1SeWHY";

};

既然下面定义了mykey,上面为什么还是key?

Re: riser 兄你好!

如果你用的是RH 7.2,那它的默认配置的确有些问题,主要是其默认安装的配置文件对key的定义前后不一致,这一点你仔细检查一下配置文件就知道了。所以,一般只要修改使之一致,就可以正常地使用rndc。

可是我已经修改到一致了,只是好像看到一个rndc.key的文件,其中有些东西,是否该用它?

可是我已经修改到一致了,只是好像看到一个rndc.key的文件,其中有些东西,是否该用它?

对于兄弟的细心,小弟实在是佩服,不过这一点文中没有提到,所以·····

小弟实在汉颜,因为在WIN下,马上下线去试,谢谢!

问题已经解决,是小弟不细心,麻烦各位了!

问题已经解决,是小弟不细心,麻烦各位了!

可是,可是可是!

可是各位绝对想不到,本来已经可以用了,但关机再开机,又出现了连接被拒绝的情况,像上次一样,我可是什么也没做啊,只是重启了一下机器 ,怎么办?

Re: 可是,可是可是!

ps -A | grep named

看一看named起来了没有,如果没有,用

/etc/rc.d/init.d/named start

启动它再试,

如果起来以后还是这样,那就再仔细仔细地检查配置文件,包括/etc/named.conf、/etc/rndc.conf。

另,其实如果是仅仅让rndc能使用的话,你只要把你的原先默认的/etc/named.conf、/etc/rndc.conf中使用的key的名字全部改为rndckey,再检查一下/etc/目录下是否有/etc/rndckey文件就可以工作了,很简单,安全不需要你自己生成key。