Solaris 10下DNS服务器安全攻略

来源: 作者:佚名 2008-02-19 出处:pcdog.com

  • solaris 10
  • access
  • dns服务器
  • linux
  • 操作系统
  • 下一页1234

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

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

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

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

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

      #cd usr/local/src

      # wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz

      # cp bind-9.3.2.tar.gz ..

      # cd ..

      # gzip -d bind-9.3.2.tar.gz

      # tar -vxf bind-9.3.2.tar

      # rm bind-9.3.2.tar

      # cd bind-9.3.2

      # ./configure

      # make

      # make install

      # cd /usr/sbin

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

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

      # cat /etc/rndc.conf

      输出为:

      # Start of rndc.conf

      key "rndc-key" ...{

      algorithm hmac-md5;

      secret "y9xvvfQjdWv9f/Fo7wquBg==";

      };

      options ...{

      default-key "rndc-key";

      default-server 127.0.0.1;

      default-port 953;

      };

                  # End of rndc.conf

      # Use with the following in named.conf, adjusting the allow list as needed:

      # key "rndc-key" ...{

      # algorithm hmac-md5;

      # secret "y9xvvfQjdWv9f/Fo7wquBg==";

      # };

      # controls ...{

      # inet 127.0.0.1 port 953

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

      # };

      # End of named.conf

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

      # vi /etc/rndc.key

      key "rndc-key" ...{

      algorithm hmac-md5;

      secret "y9xvvfQjdWv9f/Fo7wquBg==";

      };

                   controls ...{

      inet 127.0.0.1 port 953\

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

      };

      检查rndc是否正常工作:

      #/usr/local/sbin/named -g

      Jan 11 11:56:45.075 starting BIND 9.2.3 -g

      Jan 11 11:56:45.076 using 1 CPU

      Jan 11 11:56:45.079 loading configuration from '/etc/named.conf'

      ......

      #/usr/local/sbin/rndc status

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

      # vi /etc/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

      * port by default.

      */

      // query-source address * port 53;

      };

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

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

      //

      // a caching only nameserver config

      //

      zone "." IN ...{

      type hint;

      file "named.root";

      };

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

      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; };

      };

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

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

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

      type master;

      file "cjh.com.zone";

      allow-update ...{ none; };

      };

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

      type master;

      file "named.192.168.9";

      allow-update ...{ none; };

      };

      最后一行是bind 9.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目录下。

      (13)创建localhost.zone文件。

      # vi /var/named/localhost.zone

      $TTL 86400

      $ORIGIN localhost.

      @ 1D IN SOA @ root (

      42 ; serial (d. adams)

                    3H ; refresh

      15M ; retry

      1W ; expiry

      1D ) ; minimum

      1D IN NS @

      1D IN A 127.0.0.1

      (14)创建named.local文件。

      # vi named.local

      $TTL 86400

      @ IN SOA localhost. root.localhost. (

      2005022700 ; Serial

      28800 ; Refresh

      14400 ; Retry

      3600000 ; Expire

      86400 ) ; Minimum

      IN NS localhost.

      1 IN PTR localhost.

                      [root@Linux etc]# mkdir /var/named

      //进入/var/named

      [root@Linux etc]# cd /var/named

      //建立localhost.zone文件

      [root@Linux named]#vi localhost.zone

      $TTL 86400

      $ORIGIN localhost.

      @ 1D IN SOA @ root (

      42 ; serial (d. adams)

      3H ; refresh

      15M ; retry

      1W ; expiry

      1D ) ; minimum

      1D IN NS @

      1D IN A 127.0.0.1

      //建立named.local文件

      [root@Linux named]#vi named.local

                       $TTL 86400

      @ IN SOA localhost. root.localhost. (

      1997022700 ; Serial

      28800 ; Refresh

      14400 ; Retry

      3600000 61.177.252 ; Expire

      86400 ) ; Minimum

      IN NS localhost.

      1 IN PTR localhost.

      

      (15)创建cjh.com.zone文件。

      # vi cjh.zone

      $TTL 1D

      @ IN SOA cjh.com. root.cjh.com. (

      

      1053891162

      3H

      15M

      1W

      1D )

                  IN NS cjh.com.

      IN MX 5 cjh.com.

      www IN A 192.168.9.9

      

      (16)创建named.192.168.9文件。

      # vi named.192.168.9

      $TTL 86400

      @ IN SOA cjh.com. root.cjh.com.(

      20031001;

      7200;

      3600;

      43200;

      86400);

      @ IN NS cjh.com.

      9 IN PTR dns.cjh.com.

                     (17)在Solaris 10操作系统中启动DNS服务。

      #svcadm enable /network/dns/server

      查看:

      # svcs -l /network/dns/server

      fmri svc:/network/dns/server:default

      name Internet domain name server (DNS)

      enabled true

      state online

      next_state none

      restarter svc:/system/svc/restarter:default

      contract_id 25

      dependency require_all/none svc:/system/filesystem/minimal (online)

      dependency require_all/none file://localhost/etc/named.conf (online)

      dependency require_any/error svc:/network/loopback (online)

      dependency optional_all/error svc:/network/physical (online)

                   (18)测试DNS反向解析是否成功。

      # host 192.168.9.9

      9.9.168.192.in-addr.arpa domain name pointer dns.cjh.com.

      (19)测试DNS解析是否成功。

      # nslookup

      > www.cjh.com

      Server: 192.168.9.9

      Address: 192.168.9.9#53

      Name: www.cjh.com

      Address: 192.168.9.9

      >

      出现上面的提示,说明DNS服务已经启动成功。

      应用说明:

      Solaris 10 基本上就已经安装好 Bind 9 DNS Server,所以,跟本就不存在安装的问题。但为什么还要写这编文章呢?在某程度上跟和 Solaris 10 的新功能 Service Management Facility (SMF)有关,而且,这编文章也有助于对 SMF的深入了解。

           Solaris 10 以前版本的DNS服务器启动和停止方法是:

      启动 DNS Server 命令:

      /etc/init.d/named start

      停止 DNS Server命令:

      /etc/init.d/named

      Solaris 10版本的DNS服务器启动和停止方法是:

      启动 DNS Server 命令:

      svcadm enable dns/server 或 svcadm enable dns/server:default

      停止 DNS Server命令:

      stop svcadm disable dns/server 或 svcadm disable dns/server:default


    更多内容请看PCdog.com--路由安全配置代理服务器技术FTP服务器专题
    下一页1234
    上一篇:为Solaris服务器配置开源安全工具(上)
    下一篇:Solaris工作站常用下载工具推荐(上)