快速业务通道

slackware 13.1 让BIND运行在Chroot环境

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-09

slackware 13.1系统自带的bind版本为bind-9.4.3-P4,如果是在生产环境中搭建DNS服务器,为了安全考虑,强烈建议进行软件包升级.目前在slackware 13.1上最新的稳定版本是bind-9.4.3_P5.


更新软件包列表:
root@slackware:~# slackpkg update

升级bind:
root@slackware:~# slackpkg upgrade bind

好了,等待升级安装结后,你将得到最新版本的bind. 如果你在安装slackware 13.1的时候,并没有选择安装bind,你可以使用下面命令进行安装.
root@slackware:~# slackpkg install bind

接下来才是本篇文章的核心部分:Chroot 环境
,创建用户和组:
root@slackware:~# groupadd named
root@slackware:~# useradd -g named -d /var/named -s /bin/false named

第二,配置你的chroot目录.
在此假定你使用“/chroot/named”目录.
root@slackware:~# mkdir -p /chroot/named/{dev,etc,var}

添加bind需要访问的一些设备:
root@slackware:~# mknod /chroot/named/dev/null c 1 3
root@slackware:~# mknod /chroot/named/dev/random c 1 8
root@slackware:~# mknod /chroot/named/dev/zero c 1 5
root@slackware:~# chmod a w /chroot/named/dev/*

你还需要拷贝/etc/localtime 和 /etc/named.conf 到chroot目录:
root@slackware:~# cp /etc/localtime /chroot/named/etc
root@slackware:~# cp /etc/named.conf /chroot/named/etc

然后开始配置var目录:
root@slackware:~# mkdir -p /chroot/named/var/{log,run,named}
root@slackware:~# mkdir /chroot/named/var/run/named
root@slackware:~# chown named.named /chroot/named/var/run/named
root@slackware:~# chown named.named /chroot/named/var/{named,log}

假定你已经有一个可以工作的DNS服务器,现在拷贝你的zone文件到chroot目录:
root@slackware:~# cp /var/named/caching-example/* /chroot/named/var/named

关于使用bind的日志功能:
你可以加入以下内容到你的named.conf 配置文件中(语法及意义就不再叙述,感兴趣的朋友可以参考named. conf的联机帮助文档)
logging {
channel "bind_log" {
file "/var/log/named.log" versions 5 size 100k;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default {
bind_log;
};
};


创建配置rndc.conf:
root@slackware:~# rndc-confgen -r /dev/urandom > /chroot/named/etc/rndc.conf
把rndc.conf中
key "rndc-key" {
algorithm hmac-md5;
secret "U4jzup9pqIelfs7hDyl5zw==";
};
上述部分写进/chroot/named/etc/named.conf中.
<注>:在你生成的rndc.conf中上述 secret "……" 部分会不同,别忘记去掉每行最前面的注释符号“#”.


然后在/etc目录中生成一个到/chroot/named/etc/rndc.conf符号连接:
root@slackware:~# ln -s /chroot/named/etc/rndc.conf /etc

倒数第二步,修改bind的启动脚本/etc/rc.d/rc.bind:
找到下面以黄色背景显色的部分,
bind_start() {
if [ -x /usr/sbin/named ]; then
echo "Starting BIND: /usr/sbin/named"
/usr/sbin/named
sleep 1
fi
……
}
修改为 “/usr/sbin/named -u named -t /chroot/named -c /etc/named.conf”

一步,用脚本启动bind服务:
root@slackware:~# /etc/rc.d/rc.bind start
并检查bind是不是以chroot的方式运行:
root@slackwar

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号