歡迎您光臨本站 註冊首頁

slackware 13.1 讓BIND運行在Chroot環境

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

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@slackware:~# ls -l /proc/`pidof named`/root


lrwxrwxrwx 1 named named 0 2010-09-24 13:52 /proc/2948/root -> /chroot/named/
可以斷定bind已經以chroot環境運行了.

本文出自 「漸入佳境」 博客,請務必保留此出處http://jianjian.blog.51cto.com/35031/397294


[火星人 ] slackware 13.1 讓BIND運行在Chroot環境已經有267次圍觀

http://coctec.com/docs/linux/show-post-49460.html