架设CHROOT环境下的安全DNS

系统平台: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";

          };
};

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值