Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10410822
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:33:43

[root@redhatlinux9 root]# rpm -qa|grep bind
[root@redhatlinux9 RPMS]# rpm -qa|grep name   #检查安装情况
注意配置named.conf文件时每行以分号结束,括号与字母之间有空格!!配置zone文件时,主机名后有小数点!!
 
配置文件
[root@redhatlinux9 RPMS]# cat /etc/named.conf
// generated by named-bootconf.pl
 
options {
        directory "/var/named"    #服务器配置文件(正反解文件)的目录。
        // query-source address * port 53
}
 
//
controls {
        inet 127.0.0.1 allow { localhost } keys { rndckey }
}             #定义RNDC命令使用的控制通道。
 
zone "." IN {
        type hint
        file "named.ca"
}            ##根域
 
zone "localhost" IN {
        type master
        file "localhost.zone"
        allow-update { none }
}             #定义localhost正向解析区声明。
 
zone "0.0.127.in-addr.arpa" IN {
        type master
        file "named.local"
        allow-update { none }
}             #定义localhost反向解析区声明。
 
include "/etc/rndc.key"
#   以上是BING默认配置文件,是一个唯高速缓存服务器的配置,如只需唯高速缓存服务器,无需修改。
 
注意定义的directory "/var/named",那么localhost的正解文件,即localhost.zone,它的放置位置就是/var/named/localhost.zone
/var/named/named.ca上记录的是internet上的根DNS服务器
 
手动查找根域:
echo “nameserver 218.30.19.40” > /etc/resolv.conf   #设置internet上的DNS
dig –t NS .    #查找根域  如果显示的根域A记录太少,可以把本机的DNS设置为查到的根DNS服务器的IP地址,这样通过根DNS服务器来查根域,会查找的更多!
dig –t NS . >/var/named/named.ca  #将查询到的结果重定向到named.ca
 
[root@redhatlinux9 RPMS]# cat /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
最后两行其实应该是:localhost.   IN  NS   localhost.
                    Localhost.   IN  A    127.0.0.1    #不过localhost.可用@代替
TTL :用于定义向外查询的数据可以记录在DNScache中多长时间。
@   : 这个就是zone定义的,因此,它就代表localhost这个域名
SOA :开始设置内容的意思,后面接两个项,localhost. 代表一个完整的主机名+域名,可用@代替,实际为localhost. (注意后面的点)再后面为管理员E-MAIL
localhost.   IN  NS   localhost. :前面的域是由后面的这个主机所管理的,即管理localhost这个域的name serverlocalhost这台主机。即是一个授权的过程。
Serial :当slaveserial小于master时,才更新数据
Refresh slave多久进行主动更新  3小时
Retry :主动更新连接不到master,再过多久再次尝试连接  15分钟
Expire : 如果一直连接不上,多久后不再连接 1星期
Minimum : 与TTL有些类似  一天
 
[root@redhatlinux9 RPMS]# cat /var/named/named.local
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 Serial
                                      3H       Refresh
                                      15M     Retry
                                      1W       Expire
                                      1D )    Minimum
              IN      NS      localhost.
 
1       IN      PTR     localhost.
前面部分与正解的差不多,后面PTR是反解符号。由于这个文件的zone127.0.0。
 
若用源码安装,可能服务启动会出现错误,需要RNDC控制服务器。
rndc-confgen   #产生rndc控制文件
rndc-confgen > /etc/rndc.conf  #定向到rndc.conf这个文件
cat /etc/rndc.conf  #里面提示把末尾的配置文件写入到named.conf
tail +13 /etc/rndc.conf >> /etc/named.conf 把从13行开始的配置信息追加到named.conf
  还要去掉“#”这个符号,以至让配置生效,追加不会覆盖原配置文件。
 
举例:
[root@redhatlinux9 root]# vi /etc/named.conf
zone  "brus.net" IN {
        type master       #指定为MASTER类型
        file  "brus.net.zone"  文件名可随便取,好记就行
}
 
zone  "1.168.192.in-addr.arpa" IN { #如果需要反向解析,可以在这里描述。
        type master
        file  "1.168.192.in-addr.arpa.zone"
}
 
[root@redhatlinux9 root]# vi /var/named/brus.net.zone
$TTL    86400
@                      1D IN SOA        @ root ( 邮件的完整写法为root.brus.net.
                                        42              serial (d. adams)
                                        3H              refresh
                                        15M             retry
                                        1W              expiry
                                        1D )            minimum
 
                        1D IN NS        @
                        1D IN A         192.168.1.1
                        1D IN MX 10     mail.brus.net. 
webroot                 1D IN A         192.168.1.10
wwww                    1D IN CNAME     webroot
mail                    1D IN A         192.168.20
@就代表由zone定义的域 brus.net.
 
[root@redhatlinux9 named]# cat 1.168.192.in-addr.arpa.zone
$TTL    86400
@       IN      SOA     brus.net. root.brus.net.  (
                                      42        Serial
                                      3H        Refresh
                                      15M      Retry
                                      1W        Expire
                                      1D )      Minimum
        IN      NS      brus.net.
10      IN      PTR     webroot.brus.net.
20      IN      PTR     mail.brus.net. (这里不可简写)
这里的@代表的是1.168.192.in-addr.arpa.  也是由zone定义的,所以邮件不能简写了
 
 
测试:
[root@redhatlinux9 root]# host [-a] [FQDN]   # -a显示所有信息
[root@redhatlinux9 root]# host –l [domain]  #将域的所有host都显示出来
[root@redhatlinux9 root]# dig [-t type] [FQDN]  #此命令功能更强大
[root@redhatlinux9 root]# whois abc.com  #查询abc.com信息,如被谁注册了
 
安全:主服务器默认由root启动服务,不太安全,可以设置为以普通用户named来启动
服务会在/var/run 下向pid写文件,而普通用户无写的权限
首先在named.conf里添加pid-file选项
Options {
      Pif-file “var/run/named/named.pid” #设置named用户能写的特定文件
}
useradd -s /bin/false -d /dev/null named  #创建不可登录无home目录的用户named
mkdir /var/run/named  #创建options里设定的文件夹
chown named.named /var/run/named   #更改此文件的属主
chmod 700 /var/run/named   #确定可写权限
named –u named  #表示以named用户启动named进程(killall -9 named杀死进程)
echo “/usr/local/bin/named -u named” >> /etc/rc.local  (由which named可得路径)
 
 
 
 

阅读(1483) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~