位置:海鸟网 > IT > linux/Unix >

Solaris10下DNS服务器安全攻略

DNS服务器是为了网络上的主机提供域名解析的服务的服务器。Solaris10虽然自带了BIND9.2.4版本,但它并不是Sun公司的产品,InternetSoftwareConsortium负责BIND软件的更新,我们应当到网站下载最新版本的BIND软件,因为新的版本的软件可以防止某些漏洞。

下面我们来介绍如何配置DNS服务器。

一、从源代码安装配置DNS服务器

(1)为了下载最新的BIND软件,我们到下载,本例子下载的是bind-9.3.2.tar.gz。

(2)将下载的软件放到系统中的某个目录下,本例中放在usr/local/src目录下。

#cdusr/local/src

#wget

#cpbind-9.3.2.tar.gz..

#cd..

#gzip-dbind-9.3.2.tar.gz

#tar-vxfbind-9.3.2.tar

#rmbind-9.3.2.tar

#cdbind-9.3.2

#./configure

#make

#makeinstall

#cd/usr/sbin

(3)生成的可执行文件位于/usr/local/sbin目录下。最重要的可执行文件为named和rndc。

#/usr/local/sbin/rndc-confgen>/etc/rndc.conf

#cat/etc/rndc.conf

输出为:

#Startofrndc.conf

key"rndc-key"...{

algorithmhmac-md5;

secret"y9xvvfQjdWv9f/Fo7wquBg==";

};

options...{

default-key"rndc-key";

default-server127.0.0.1;

default-port953;

};

#Endofrndc.conf

#Usewiththefollowinginnamed.conf,adjustingtheallowlistasneeded:

#key"rndc-key"...{

#algorithmhmac-md5;

#secret"y9xvvfQjdWv9f/Fo7wquBg==";

#};

#controls...{

#inet127.0.0.1port953

#allow...{127.0.0.1;}keys...{"rndc-key";};

#};

#Endofnamed.conf

(9)创建rndc.key文件。将rndc.conf文件中注释部分拷贝生成如下文件:

#vi/etc/rndc.key

key"rndc-key"...{

algorithmhmac-md5;

secret"y9xvvfQjdWv9f/Fo7wquBg==";

};

controls...{

inet127.0.0.1port953\

allow...{127.0.0.1;}keys...{"rndc-key";};\

};

检查rndc是否正常工作:

#/usr/local/sbin/named-g

Jan1111:56:45.075startingBIND9.2.3-g

Jan1111:56:45.076using1CPU

Jan1111:56:45.079loadingconfigurationfrom'/etc/named.conf'

......

#/usr/local/sbin/rndcstatus

(10)编辑named.conf配置文件。

#vi/etc/named.conf

第一段的内容如下:

//generatedbynamed-bootconf.pl

options...{

directory"/var/named";

/**//*

*Ifthereisafirewallbetweenyouandnameserversyouwant

*totalkto,youmightneedtouncommentthequery-source

*directivebelow.PreviousversionsofBINDalwaysasked

*portbydefault.

*/

//query-sourceaddress*port53;

};

上面的部分是在这个文件开头的options设定的,首先用directory指定了named的资源记录(RR-ResourceRecord文件目录所在位置为:“/var/named”。也就是说,它会到这个目录下面寻找DNS记录文件)。所以,我们在后面部分所指定的文件,就无须使用绝对路径了,但它们一定要放在这个目录下面。

那一段被注释文字,如果你仔细阅读一下,它大致意思是如果你要设定的DNS服务器和client之间隔着防火墙的话,要将“//query-sourceaddress*port53;”前面的注解符号“//”拿掉(当然,也必须要设定好你的火墙)。不过,这只对早期的版本有影响,而在bind8.1之后则无须担心这个设定。接下来再让我们看下一段句子:

//

//acachingonlynameserverconfig

//

zone"."IN...{

typehint;

file"named.root";

};

通过这几行语句,我们为named定义了DNS系统中的根区域“.”(rootzone)的设定,同时它是一个internet(IN)的区域类别。这里还指定了rootzone的服务器种类(type)为“hint”(也只有这个zone会使用这样的种类)。最后,用file指定这个区域记录文件为:“named.root”,也就是“/var/named/named.root”文件。在rootzone后面,你应该还会看到如下这两段:

zone"localhost"IN...{

typemaster;

file"localhost.zone";

allow-update...{none;};

};

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

typemaster;

file"named.local";

allow-update...{none;};

};

这里是定义出关于本机名称的DNS解释:第一个zone是localhost的正解zone,其服务器种类是master,记录档名称是localhost.zone(在/var/named目录下面),但这个zone不允许客户主机(或服务器)自行更新DNS的记录。而第二个zone则是本机区域的反向解析zone。

再看下面的两段,这两段是cjh.com域的正向和反向解析。

zone"cjh.com"IN...{//新加cjh.com的域

typemaster;

file"cjh.com.zone";

allow-update...{none;};

};

zone"9.168.192.in-addr.arpa"IN...{//新加域的反向解析

typemaster;

file"named.192.168.9";

allow-update...{none;};

};

最后一行是bind9.x版本的新功能,用来进行区域转移或DNS更新所用的加密处理。

include"/etc/rndc.key";

(11)创建/var/named目录。

#mkdir/var/named

#cd/var/named

(12)匿名登录到ftp站点FTP.RS.INTERNIC.NET,获取/domain目录下的named.root文件,将该文件置于/var/named目录下。