免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1092 | 回复: 1
打印 上一主题 下一主题

freebsd 架设DNS服务器具 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-24 15:58 |只看该作者 |倒序浏览
freebsd 架设DNS服务器具










FREEBSD 5.2出来几个月了,一直想系统全面的学习一下它的新功能,但最近工作实在太忙,没有办法全面的学习。今天下午快下班时忙里偷闲,花了一个小时从新安装了一遍DNS SERVER ( BIND 9 ),怕自己以后忘记了,俗话说好记性不如烂笔头嘛,就记在自己的BLOG里面了…

准备工作:当然要安装FREEBSD,最好更新ports,如果不知道怎么更新,请参考我以前写和FREEBSD 升级优化大全,^_^

安装BIND9:

cd /usr/ports/dns/bind9    进入bind 9的目录

make install

运行安装程序,等硬盘响一阵时间后,系统就安装好了,方便吧,*^_^*。在安装完成后,BIND9会提醒你:"如果你使用FREEBSD 4.X。请浏览 http://people.freebsd.org/~dougb/randomness.html 得到更多的信息,如果是FREEBSD 5.X则不需要执行这一步,如果你想要BIND 9运行在chroot环境,必须把/dev/random设备chroot",它还提醒我们要运行" rndc-confgen -a "来生成一个正确的配置文件--随机密钥。系统是以/usr/local为根目录的,所以BIND9的命令文件都放到/usr/local/sbin目录里面和/usr/local/bin目录里面。系统在安装完成BIND 9后,会自动建立uid为53的" bind "用户和gid为53的" bind "群组,以供BIND服务用…

我喜欢FREEBSD的PORTS的强大功能,什么东西,只要make install就行啦,呵呵… LINUX还要满世界找RPM包或者源程序,我不喜欢…

PS:我个人认为,只要不是对效率要求十分高的环境下,我尽量不采用源代码编译,节约时间。如果我需要看它详细的编译命令,我可以通过读Makefile来获取信息!

安装好的BIND9,是不能直接运行的,还要让系统根据我们的需要配置一下…

配置BIND9:

BIND比较重要的配置文件有:named.conf,named.root,rndc.conf,还有/etc/named目录。因为默认的安装把named.conf,localhost.rev等内容安装在此目录下了(如果我记错了,麻烦大家更正一下),而rndc.conf则被放在了/usr/local/etc目录里面,名字叫rndc.conf.sample

mv /etc/named/named.conf /usr/local/etc/    如果我记错了,麻烦大家更正
  1. cd /usr/local/etc    进入BIND 9的配置目录

  2. vi named.conf    打开并编译named.conf,BIND 9 的配置文件


  3. options {
  4.         directory "/etc/namedb";    // 工作目录
  5.         pid-file "/var/run/named/pid";    // 放pid文件到工作目录
  6. };
复制代码
......

请大家注意,这文件里面很多垃圾,自己要小心判断,不要编辑错误了,要不然你是无法正常运行BIND 9的。最后面那一段有/* 和 */注释的部份和前面内容意思相同,你可以根据需要使用:
  1. zone "onlinecq.com" {    //这是域名
  2.         type slave;
  3.         file "s/onlinecq.com.bak";
  4.         masters {
  5.                 192.168.0.19;
  6.         };
  7. };

  8. zone "0.168.192.in-addr.arpa" {
  9.         type slave;
  10.         file "s/0.168.192.in-addr.arpa.bak";
  11.         masters {
  12.                 192.168.0.19;    //这是本机的IP
  13.         };
  14. };
复制代码
再使用 :wq 存盘退出,请注意刚才的配置"s/onlinecq.com.bak",我们并没有s目录,于是现在就建立并给权限吧…
  1. mkdir /etc/namedb/s

  2. chown bind:bind /etc/namedb/s

  3. chmod 750 /etc/namedb/s
复制代码
好了,然后我们再配置localhost.rev文件,一开始,该目录下面是不存在此文件的,但我们可以运行make-localhost,让系统自动生成该文件…

chmod 755 make-localhost    改变make-localhost脚本权限

./make-localhost

运行后/etc/named目录里面会自动产生 localhost.rev文件和localhost-v6.rev文件,localhost.rev文件是给IPv4使用的,而localhost-v6.rev文件是给IPv6使用的,暂时用不到…

这是我的localhost.rev文件的内容:
  1. $TTL    3600

  2. @       IN      SOA     freebsd.onlinecq.com. root.freebsd.onlinecq.com.  (
  3.                                 20040217        ; Serial
  4.                                 3600    ; Refresh
  5.                                 900     ; Retry
  6.                                 3600000 ; Expire
  7.                                 3600 )  ; Minimum
  8.         IN      NS      freebsd.onlinecq.com.
  9. 1       IN      PTR     localhost.onlinecq.com.
复制代码
OK,到此为止,/etc/named目录里面的操作完成…

再进入/usr/local/etc目录

cd /usr/local/etc

你会发现一个rndc.conf.sample的文件,这是一个rndc的样本文件,不用管它,我们自己生成一个即可:

/usr/local/sbin/rndc-confgen >; rndc.conf

然后你会发现,当前目录有一个rndc.conf的密钥文件了,呵呵,如果你想看一下内容,也可以使用:

vi rndc.conf

查看一下,我的文件内容是这样子的:
  1. # Start of rndc.conf
  2. key "rndc-key" {
  3.         algorithm hmac-md5;
  4.         secret "9lLye919/f2DTE+cObb1kg==";
  5. };

  6. options {
  7.         default-key "rndc-key";
  8.         default-server 127.0.0.1;
  9.         default-port 953;
  10. };
  11. # End of rndc.conf

  12. # Use with the following in named.conf, adjusting the allow list as needed:
  13. # key "rndc-key" {
  14. #       algorithm hmac-md5;
  15. #       secret "9lLye919/f2DTE+cObb1kg==";
  16. # };
  17. #
  18. # controls {
  19. #       inet 127.0.0.1 port 953
  20. #               allow { 127.0.0.1; } keys { "rndc-key"; };
  21. # };
  22. # End of named.conf
复制代码
注意,请把后面以:

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


开始的这一部份,加到/usr/local/etc/named.conf后面并去掉#才可以,否则后面的rndc status将显示超时退出...

嗯,到此为止,好象BIND 9就可以顺利运行了,请按下面的步骤测试吧!

/usr/local/sbin/named -g bind -c /usr/local/etc/named.conf &

& 的作用是在后台运行

-c的作用是以指定的配置文件运行

-g的作用是以一个用户组名初使化,屏幕上面也会显示很多调试信息出来,我的如下:
  1. freebsd# /usr/local/sbin/named -gc /usr/local/etc/named.conf &
  2. [1] 730
  3. Feb 17 20:20:36.892 starting BIND 9.2.3 -gc /usr/local/etc/named.conf
  4. Feb 17 20:20:36.892 using 1 CPU
  5. Feb 17 20:20:36.894 loading configuration from '/usr/local/etc/named.conf'
  6. Feb 17 20:20:36.894 listening on IPv4 interface fxp0, 192.168.0.19#53
  7. Feb 17 20:20:36.895 listening on IPv4 interface lo0, 127.0.0.1#53
  8. freebsd# Feb 17 20:20:36.896 command channel listening on 127.0.0.1#953
  9. Feb 17 20:20:36.896 ignoring config file logging statement due to -g option
  10. Feb 17 20:20:36.898 zone 0.0.127.IN-ADDR.ARPA/IN: loaded serial 20040217
  11. Feb 17 20:20:36.899 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA/IN: loaded serial 20040217
  12. Feb 17 20:20:36.899 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT/IN: loaded serial 20040217
  13. Feb 17 20:20:36.899 running
复制代码
当你有看到running字样时,说明已经配置正确了,如果要控制BIND 9的运行,更方便的使用rndc命令来进行,比如检测它的状态可以使用下面的命令:

/usr/local/sbin/rndc status

当显示如下信息时,可能会显示如下信息…
  1. number of zones: 5
  2. debug level: 0  
  3. xfers running: 0  
  4. xfers deferred: 0  
  5. soa queries in progress: 0  
  6. query logging is OFF  
  7. server is up and running  
复制代码
如果没有显示上面的信息,请检查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。

还有另外一种测试方法是:

nslook,dig,netstat 等命令,都可以观察是否安装BIND成功,具体方法,建议大家找找其他资料吧,THX!

下面我们再把BIND 9加入系统服务里面,让它每次开机时运行…

vi /etc/rc.conf

请在它后面加上下面几行
  1. named_enable="YES"

  2. named_program="/usr/local/sbin/named" # path to named, if you want a different one.
  3. named_flags="-c /usr/local/etc/named.conf"   # Flags for named
复制代码
存盘退出!

因为FREEBSD 5.2系统里面自带了BIND 8的,为了不引起冲突,我们必须加参数,用BIND 9的配置文件引导才可以的。

好了,请重新启动一下你的FREEBSD 即可测试是否完全安装成功了。

  

结束语  
至此为止,一般可以实际运作的BIND 9就建立起来了,您可以reboot一下,让最新的设置及软件生效。  
如果在安装过程中出现错误,您可以先检查完错误,再接着安装下去。或者你可以选择你感兴趣的某些部份安装!  
当然因为时间仓促,涉及到的知识太广,加上本人能力有限,其中错误在所难免,恳请各位读者提出来,大家共同提高,共同进步!  

论坛徽章:
0
2 [报告]
发表于 2012-01-04 14:20 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP