Linux下源代码安装配置bind和dns安全配置及压力测试

==========Bind源代码安装配置============

# yum grouplist 查看开发环境

# yum groupinstall "Development Tools"  "Server Platfrm Development" 安装开发环境

下载bind包:bind-9.10.1-P1.tar.gz

#tar xzf  bind-9.10.1-P1.tar.gz 解压

# groupadd -g 53 named

# useradd  -u 53  -g named named -r 创建为系统组和系统用户

# ./configure   --prefix=/usr/local/bind9   --sysconfdir=/etc/named/  --disable-ipv6  -disable-chroot  --enable-threads  编译配置参数. 指定安装路径,配置文件路径,禁用ipv6,禁用chroot,启用3线程                                                                                                                                                                      

#make

#make install

配置环境变量:

1. 修改path环境变量

编辑 /etc/profile.d/named.sh

export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH

#./etc/profile.d/named.sh 执行生效

#echo $path  查看环境变量

#named-checkconf 查看配置文件命令可使用

2. 输出二进制文件路径

编辑 /etc/ld.so.conf.d/conf/named.conf 

#/usr/local/bind9/lib 导出库文件

#ls lib 查看库文件

#lddconfig  -v 使库文件生效,-v显示过程

3.导出头文件路径

#ln  -sv /usr/local/bind9/include  /usr/include/named

#ls /usr/include/named  查看链接的文件

ls    share/

编辑添加/etc/man.config 让named可以在man中查找

MANPATH /usr/local/bind9/share/man

4.编写配置文件:

#cd  /etc/named  进入named目录

#vi  named.conf  添加named.conf 配置文件

options {

         directory "/var/named";

};

zone "." IN {

         type hint;

         file "named.ca";

};

zone "localhost" IN {

         type master;

         file "localhost.zone";

         allow-update { none; };

};

zone "0.0.0.127.in-addr-arpa" IN {

         type master;

         file "named.local";

         allow-update { none ; } ;

};

#named-checkconf 检查配置文件

添加上面3个zone文件。

1.)#dig -t  NS . @8.8.8.8 > /var/named/named.ca  查看根域的NS记录并导入到named.ca

2.)#vim  /var/named/localhost.zone

$ttl  1d

@  IN  SOA  localhost.        admin.localhost. (

                                     001

                                     1h

                                     5m

                                     7d

                                     1d)

         IN     NS    localhost.

localhost. IN    A       127.0.0.1

3.)#cp localhost.zone  named.local

$ttl  1d

@  IN  SOA  localhost.        admin.localhost. (

                                     001

                                     1h

                                     5m

                                     7d

                                     1d)

         IN     NS    localhost.

1       IN     PTR  localhost.

修改相关文件的文件和用户权限

#chomd  640 /var/named/*

#chown :named *

#chmod 640 /etc/named/named.conf

#chown :name /etc/named/named.conf

5.启动bind:

#named -u named -f -g -d 3  运行级别为3,-g,把标准结果输出到前台。

#named -u named  在后台运行

#killall  named 关闭..

runing... 就表示启动成功!

 

6.添加一个域来做解析测试:

1.编辑主配置文件加一个linusec.cn区域

#vi /etc/named/named.conf

zone "linuxsec.cn" IN {

         type master;

         file "linuxsec.cn.zone";

         allow-update { none; };

};

2.添加区域解析库文件

#vi /var/named/linuxsec.cn.zone

$ttl 86400

$linuxsec.cn.

@    IN     SOA           ns.linuxsec.cn. admin.linxsec.cn. (

                            001

                            2h

                            5m

                            1w

                            1d)

         IN     NS    ns

ns    IN     A       192.168.118.128

www  IN     A       192.168.118.128

3.修改文件及用户权限

#chmod 640 linuxsec.cn.zone

#chown :named linuxsec.cn.zone

#named  -u named 启动服务

4.rndc的生成

rndc confgen   -r  /dev/urandom > /etc/named/rndc.conf生成随机数生产秘钥文件,并重定向到rndc.conf

然后在rndc.conf文件中,把下面部分的秘钥复制到/etc/named//named.conf

 rndc-key

:.,$-1s@^#@@g  *去配置文件#脚本*

#killall -STGHUP  named 重新加载配置文件

#rndc status 查看状态

#rndc reload  重读配置文件

 

=========bind压力测试工具-queryperf=======

1.安装queryperf

路径在bind9.10.1-P1/contrib/scripts/queryperf

#./configure && make 直接安装

#cp queryperf /usr/local/bind9/bin

2.编辑测试文件

#vi  linuxsec.cn

www.linuxsec.cn A

linuxsec.cn MX .......  加入N条之后去测试

wc -l file 可以查看文档行数

#querypref -d  linuxsec.cn -s 8.8.8.8

即可看到测试结果.........

 

#top命令 查看压力测试情况.

#vmstat 查看io状态

#iostat  1 查看io的读写数据

#rndc querylog 开启查询日志  日志的读写会占用系统的IO,非常消耗系统资源...

#tail /var/log/messages 查看日志

 

==========BIND中基础的安全配置=========

acl:把一个或者多个主机归并为一个集合,并通过一个统一的名称调用

 

acl acl_name {
         ip;

         ip;

         net/长度格式;

}

bind中四个内置的acl:

none:没有一个主机

localhost:本机

any:所有主机

localnet/127.0.0.1:本地的ip同掩码运算后得到的网络地址

 注意:先定义,再使用,因此,期一般定义在配置文件的options前面

 

访问控制的指令:

allow-query {  127.0.0.1; };运行查询的主机,白名单

allow-trabsfer { 127.0.0.1; }; 允许区域传送的主机,白名单 定义的访问控制列表在区域文件

allow-recursion

allow-recursion{ mynet;}; 允许递归的主机

allow-update { none; }; 允许更新

rndc  reload重新加载

 


发表评论

登录 后发表评论.