系统平台:RedHat Linux 9
软件版本:Bind 9.26
考虑到的系统兼容性及运行速度,所以安装采用源码包,去ISC(BIND官方)下载最新的稳定版本(即次本号为偶数)。
安装步骤:(无特殊需求,所有操作都为root权限)
一、 主DNS服务器配置 ( Master Bind)
(1)BIND 安装
wget ftp://ftp.isc.org/isc/bind9/9.2.6/bind-9.2.6.tar.gz
tar zxvf bind-9.2.6.targz
cd bind-9.2.6
./configure --prefix /usr/local/named //指定安装目录为/usr/local/named
make && make install
(2 ) 建立执行用户(用于指定named daemon运行的用户权限,它不需要有任何登录shell)
groupadd named
useradd –g named –d /chroot/named –s /sbin/nologin named
(3)CHROOT环境建立
1.虚拟根目录系统:
/chroot
+---- dev
+---- etc
+---- named
+---- var
| +---- run
+---- logs
mkdir –p /chroot/dev/
mkdir –p /chroot/etc/
mkdir –p /chroot/logs/
mkdir –p /chroot/var/run
mkdir –p /chroot/var/named/zone
2.创建虚拟设备:
mknod /chroot/dev/null c 1 3
mknod /chroot/dev/zero c 1 5
mknod /chroot/dev/random c 1 8
3.复制时钟文件
cp –a /etc/localtime /chroot/etc/
(4)创建BIND配置文件
1. named.conf
BIND 配置文件主要是named.conf文件,默认指向/etc/named.conf文件。也可以用named –c 参数指向另一位置。此处,由于配置chroot的需要,将named.conf文件放至/chroot/etc/,在/etc/named.conf作其软链接,并用named –c /etc/named.conf指向。
cd /chroot/etc/
vi named.conf
options {
directory "/var/named";
version "????";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
Allow-transfer {10.1.35.2;};
};
logging {
channel "bind_log" {
file "/logs/bind.log" versions 3 size 25m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel "query_log" {
file "/logs/query.log" versions 3 size 25m;
severity info;
print-time yes;
};
category lame-servers { null; };
category queries { "query_log"; };
category default{ "bind_log"; };
};
view "internal" {
match-clients { 10.0.0.0/8; 127.0.0.1; };
zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "zone/127.0.0";
};
zone "test.edu.cn" {
type master;
file "zone/test.edu.cn1";
};
zone "0.0.10.in-addr.arpa" {
type master;
file "zone/10.0.0";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "test.edu.cn" {
type master;
file "zone/test.edu.cn";
};
zone "1.99.202.in-addr.arpa" {
type master;
file "zone/202.99.1.0";
};
};
ln –s /chroot/etc/named.conf /etc/ //链接到/etc/named.conf
2. root.hints (root域名服务器A记录列表)
#dig > /chroot/var/named/root.hints
或
#wget ftp://ftp.internic.org/domain/named.root
#mv named.root root.hints
3. 127.0.0 (本地反向解析列表)
vi /chroot/var/named/zone/127.0.0
$TTL 3D
@ IN SOA test.edu.cn. root.test.edu.cn. (
200612286 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns.test.edu.cn.
NS ns2.test.edu.cn.
1 PTR localhost.
4. 10.0.0 (内网反向解析列表)
vi /chroot/var/named/zone/10.0.0
$TTL 3D
@ IN SOA test.edu.cn. root.test.edu.cn. (
199609206 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns.test.edu.cn.
NS ns2.test.edu.cn.
1 PTR gw.test.edu.cn.
2 PTR test.edu.cn.
2 PTR funn.test.edu.cn.
200 PTR jsj.test.edu.cn.
201 PTR jm.test.edu.cn.
202 PTR gs.test.edu.cn.
203 PTR wy.test.edu.cn.
204 PTR sl.test.edu.cn.
205 PTR ty.test.edu.cn.
250 PTR nx.test.edu.cn.
251 PTR jy.test.edu.cn.
252 PTR zw.test.edu.cn.
253 PTR tmjz.test.edu.cn.
254 PTR jxdz.test.edu.cn.
205 PTR smkx.test.edu.cn.
250 PTR shkx.test.edu.cn.
251 PTR hx.test.edu.cn.
252 PTR spgz.test.edu.cn.
253 PTR tmjz.test.edu.cn.
254 PTR yyyl.test.edu.cn.
253 PTR dwkx.test.edu.cn.
254 PTR wlzx.test.edu.cn.
5. test.edu.cn1 (内网正向解析列表)
vi /chroot/var/named/zone/test.edu.cn1
$TTL 3D
@ IN SOA test.edu.cn. root.test.edu.cn. (
200612286 ; serial, todays date + todays serial
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
NS ns.test.edu.cn.
NS ns2.test.edu.cn.
MX 10 mail.test.edu.cn.
localhost A 127.0.0.1
gw A 10.0.0.1
test.edu.cn. A 10.1.1.3
ns2 A 10.0.0.192
mail A 10.0.0.33
www CNAME test.edu.cn.
jsj A 10.0.0.200
MX 10 mail.test.edu.cn ; 计算机系
jm A 10.0.0.201
MX 10 mail.test.edu.cn ; 经贸系
gs A 10.0.0.202
MX 10 mail.test.edu.cn ; 工商系
wy A 10.0.0.203
MX 10 mail.test.edu.cn ; 外语系
sl A 10.0.0.204
MX 10 mail.test.edu.cn ; 数理系
ty A 10.0.0.205
MX 10 mail.test.edu.cn ; 体育系
nx A 10.0.0.250
MX 10 mail.test.edu.cn ; 农学系
jy A 10.0.0.251
MX 10 mail.test.edu.cn ; 教育系
zw A 10.0.0.252
MX 10 mail.test.edu.cn ; 中文系
tmjz A 10.0.0.253
MX 10 mail.test.edu.cn ; 土木建筑系
jxdz A 10.0.0.254
MX 10 mail.test.edu.cn ; 机械电子系
smkx A 10.0.0.253
MX 10 mail.test.edu.cn ; 生命科学系
shkx A 10.0.0.254
MX 10 mail.test.edu.cn ; 社会科学系
hx A 10.0.0.254
MX 10 mail.test.edu.cn ; 化学系
spgz A 10.0.0.254
MX 10 mail.test.edu.cn ; 食品工程系
yyyl A 10.0.0.254
MX 10 mail.test.edu.cn ; 园艺园林系
dwkx A 10.0.0.254
MX 10 mail.test.edu.cn ; 动物科学系
wlzx A 10.0.0.254
MX 10 mail.test.edu.cn ; 网络中心
6. test.edu.cn (外网正向解析列表)
vi /chroot/var/named/zone/test.edu.cn
$TTL 3D
@ IN SOA test.edu.cn. root.test.edu.cn. (
200612286 ; serial, todays date + todays serial
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
NS ns.test.edu.cn.
NS ns2.test.edu.cn.
MX 10 mail.test.edu.cn.
localhost A 127.0.0.1
gw A 10.0.0.1
test.edu.cn. A 192.168.1.6
mail A 10.0.0.33
ns2 A 10.1.1.22
www CNAME test.edu.cn.
jsj A 10.0.0.200
MX 10 mail.test.edu.cn ; 计算机系
jm A 10.0.0.201
MX 10 mail.test.edu.cn ; 经贸系
gs A 10.0.0.202
MX 10 mail.test.edu.cn ; 工商系
wy A 10.0.0.203
MX 10 mail.test.edu.cn ; 外语系
sl A 10.0.0.204
MX 10 mail.test.edu.cn ; 数理系
ty A 10.0.0.205
MX 10 mail.test.edu.cn ; 体育系
nx A 10.0.0.250
MX 10 mail.test.edu.cn ; 农学系
jy A 10.0.0.251
MX 10 mail.test.edu.cn ; 教育系
zw A 10.0.0.252
MX 10 mail.test.edu.cn ; 中文系
tmjz A 10.0.0.253
MX 10 mail.test.edu.cn ; 土木建筑系
jxdz A 10.0.0.254
MX 10 mail.test.edu.cn ; 机械电子系
smkx A 10.0.0.253
MX 10 mail.test.edu.cn ; 生命科学系
shkx A 10.0.0.254
MX 10 mail.test.edu.cn ; 社会科学系
hx A 10.0.0.254
MX 10 mail.test.edu.cn ; 化学系
spgz A 10.0.0.254
MX 10 mail.test.edu.cn ; 食品工程系
yyyl A 10.0.0.254
MX 10 mail.test.edu.cn ; 园艺园林系
dwkx A 10.0.0.254
MX 10 mail.test.edu.cn ; 动物科学系
wlzx A 10.0.0.254
MX 10 mail.test.edu.cn ; 网络中心
7. 202.99.10 (外网反向解析列表)
vi /chroot/var/named/zone/202.99.10
$TTL 3D
@ IN SOA test.edu.cn. root.test.edu.cn. (
199609206 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns.test.edu.cn.
NS ns2.test.edu.cn.
1 PTR gw.test.edu.cn.
2 PTR test.edu.cn.
2 PTR funn.test.edu.cn.
200 PTR jsj.test.edu.cn.
201 PTR jm.test.edu.cn.
202 PTR gs.test.edu.cn.
203 PTR wy.test.edu.cn.
204 PTR sl.test.edu.cn.
205 PTR ty.test.edu.cn.
250 PTR nx.test.edu.cn.
251 PTR jy.test.edu.cn.
(5)启动named测试
# named -u named -gc /chroot/etc/named.conf
注:
1>此处如果named出错,都会有提示,因为-g参数将stderr重定向到了terminal.
2>一般问题是对named.conf中指定的/chroot/var/run/目录的访问被禁止,根据第(7)节的权限设置一下即可。
3> 如果在开始就没有配置chroot,则此处不能使用-u参数,因为named.conf指定的是相对于chroot的/var/run/目录,它的权限是我们对bind jail设定的,与系统无关。但没有chroot的named.conf指定的named用户对系统的/var/run是没有权限的,我们也不能奢望去改变系统的/var/run/目录权限,那可能会引起安全问题。解决方法是指定一个我们可以权限控制而不会影响系统正常运行的目录。
开启另一个shell:
# dig @127.0.0.1 test.edu.cn
; <<>> DiG 9.3.3rc2 <<>> @127.0.0.1 test.edu.cn
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61964
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;test.edu.cn. IN A
;; ANSWER SECTION:
test.edu.cn. 259200 IN A 10.1.1.3
;; AUTHORITY SECTION:
test.edu.cn. 259200 IN NS ns2.test.edu.cn.
test.edu.cn. 259200 IN NS ns.test.edu.cn.
;; ADDITIONAL SECTION:
ns2.test.edu.cn. 259200 IN A 10.0.0.192
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 27 20:59:18 2007
;; MSG SIZE rcvd: 112
(6)配置RNDC管理
1.建立rndc配置文件
BIND默认指向/etc/rndc.conf,由于chroot技术需要,建立在/chroot/etc/rndc.conf,再建立软链接至/etc/下。
/usr/local/named/sbin/rndc-confgen > /chroot/etc/rndc.conf
vi rndc.conf
将 # 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"; };
# };
段去掉#号,加至named.conf中。
named.conf文件:
options {
directory "/var/named";
version "????";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
};
logging {
channel "bind_log" {
file "/logs/bind.log" versions 3 size 25m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel "query_log" {
file "/logs/query.log" versions 3 size 25m;
severity info;
print-time yes;
};
category lame-servers { null; };
category queries { "query_log"; };
category default{ "bind_log"; };
};
key "rndc-key" {
algorithm hmac-md5;
secret "ZE+kG903uisrvr+xdFFAmg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
view "internal" {
match-clients { 10.0.0.0/8; 127.0.0.1; 192.168.1.0/24; };
zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "zone/127.0.0";
notify no;
};
zone "test.edu.cn" {
type master;
file "zone/test.edu.cn1";
notify no;
};
zone "0.0.10.in-addr.arpa" {
type master;
file "zone/10.0.0";
notify no;
};
};
view "external" {
match-clients { any; };
recursion no;
zone "test.edu.cn" {
type master;
file "zone/test.edu.cn";
notify no;
};
zone "1.99.202.in-addr.arpa" {
type master;
file "zone/202.99.1.0";
notify no;
};
};
#ln –s /chroot/etc/rndc.conf /etc/ //为rndc.conf文件创建在/etc/下的软链接
重启named daemon,加载新的配置文件:
#named -gc /chroot/etc/named.conf
测试rndc操作:
#rndc status
rndc status
number of zones: 5
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
#rndc reload
server reload successful
(7)设定访问权限
cd /chroot/
chown –R root.named etc
chmod –R 750 etc
chown root.root var
chmod 711 var
chown root.named var/run
chmod 775 var/run
chown root.named logs
chmod 775 logs
(8) 配置开机启动脚本
vi /etc/rc.d/init.d/named
#!/bin/sh
# named BIND
#
# chkconfig: 345 40 50
#
# description:named is the software bind's deamon.
#
case "$1" in
start)
/usr/local/named/sbin/named -u named -c /etc/named.conf -t /chroot/
echo -n "Bind started"
echo .
;;
stop)
/usr/local/named/sbin/rndc stop
echo -n "Bind stoped"
echo .
;;
reload)
/usr/local/named/sbin/rndc reload
echo -n "Bind reloaded"
echo .
;;
status)
/usr/local/named/sbin/rndc status
echo .
;;
*)
echo "/etc/rc.d/init.d/named {start|stop|reload|status}"
echo .
exit 1
esac
exit 0
chmod 755 /etc/rc.d/init.d/named
chkconfig –add named
二、辅助DNS服务器配置(Slave Bind)
安装过程与主DNS服务器配置大致相同,只需修改named.conf文件为:
options {
directory "/var/named";
version "????";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
};
logging {
channel "bind_log" {
file "/logs/bind.log" versions 3 size 25m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
channel "query_log" {
file "/logs/query.log" versions 3 size 25m;
severity info;
print-time yes;
};
category lame-servers { null; };
category queries { "query_log"; };
category default{ "bind_log"; };
};
view "internal" {
match-clients { 10.0.0.0/8; 127.0.0.1; 192.168.1.0/24; };
zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "zone/127.0.0";
};
zone "test.edu.cn" {
type slave;
masters { 192.168.100.23; };
file "zone/test.edu.cn1";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "test.edu.cn" {
type slave;
masters { 192.168.100.23; };
file "zone/test.edu.cn";
};
zone "1.99.202.in-addr.arpa" {
type slave;
masters { 192.168.100.23; };
file "zone/202.99.1.0";
};
};
架设CHROOT环境下的安全DNS
最新推荐文章于 2023-03-03 11:57:24 发布