bind-9.9.5编译安装

bind-9.9.5编译安装

§·bind-9.9.5编译安装大概步骤

步骤一 :下载源码包bind-9.9.5

步骤二 :按需求选择模块或功能 ./configure  

# ./configure  –prefix=/usr/local/bind9  –sysconfdir=/etc/named/ –disable-ipv6

–disable-chroot –enable-threads

步骤三 make & make install

步骤四 :配置PATH的环境变量,使得bind9的命令可以生效 ;

环境变量:
•vim  /etc/profile.d/named.sh
export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin/:$PATH

步骤五 :配置头文件路径,设置库文件路径,设置man帮助文件路径;

库文件设置
•vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib
•ldconfig -v
头文件设置
•ln  -sv /usr/local/bind9/include   /usr/include/named

步骤六 :添加系统组和系统账户;

# groupadd  -r  -g  53  named
# useradd  -r  -u  53   -g  53  named

步骤 创建系统文件 named.conf   ;  mkdir   /var/named/ /var/named/named.ca ;

步骤 创建boss区域,创建区域文件 //var/named/boss.com.zone ;

步骤 :启动服务和测试

•named -u named -f -g -d 3 前端级别3方式运行  #前台方式运行
•named -u named         #后台方式运行
•killall  named        #关闭named服务
•ss  -uln          #查看端口号
•tail  /var/log/message       #查看消息

步骤十 :配置rndc管理dns服务器

rndc  reload 看报错提示

rndc  -confgen  -r /dev/urandom  >  /etc/named/rndc.conf 生成key #生成对称密钥文件

tail /etc/named/rndc.conf  >> /etc/named/named.conf #查看说明的文件,把相应的数据拷贝到对应的文件

killall  -SIGHUP  named       #重启named服务

rndc  status          #测试named的状态

小结:
以上的编译完成后,许多的DNS服务器上的文件不会自动生成,都需要自己手动的创建:
比如:主配置文件 named.conf ,named.ca等等文件;
手动的修改配置文件或新建配置文件一定要记得文件权限问题,named用户需要有读权限的。

 

§·bind-9.9.5编译详细安装步骤

※·步骤一 :下载源码包bind-9.9.5

下载源码包到 /usr/src/bind/目录中,并解压

[root@root-server bind]# pwd
/usr/src/bind
[root@root-server bind]# ll
total 7556
drwxr-xr-x. 12 10292 9901    4096 Sep 27 08:55 bind-9.9.5
-rw-r--r--.  1 root  root 7729695 Mar 11  2014 bind-9.9.5.tar.gz
[root@root-server bind]#

※·步骤二 :按需求选择模块或功能 ./configure 

进入bind-9.9.5目录,查看下 ./configure的主要选项参数

[root@root-server bind-9.9.5]#  ./configure  --help
...................................................................
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX  #工作目录的指定参数
                          [/usr/local]
 
Fine tuning of the installation directories:
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]    #配置文件主目录
 
 
Optional Features:            #配置工作特性
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
                          [default=no]
  --enable-ipv6           use IPv6 default=autodetect    #启用ipv6的支持
  --enable-getifaddrs     Enable the use of getifaddrs() [yes|no].
  --disable-isc-spnego    use SPNEGO from GSSAPI library
  --disable-chroot        disable chroot       #禁用切根的功能
  --with-python=PATH      Specify path to python interpreter  #python 应用程序工作目录
  --with-openssl=PATH     Build with OpenSSL yes|no|path.   # openssl 应用程序工作目录
  (Required for DNSSEC)
  --with-ecdsa            OpenSSL ECDSA
  --with-gost             OpenSSL GOST

 

configure 配置参数:

./configure –prefix=/usr/local/bind9 –sysconfdir=/etc/named9 –disable-ipv6 –disable-chroot –enable-threads

#--prefix=/usr/local/bind9   #bind的工作主目录设置
#--sysconfdir=/etc/named9   #bind的配置文件目录
#--disable-ipv6     #禁用ipv6的功能
#--disable-chroot     #禁用chroot功能 
#--enable-threads     #开启

 

bind对于.configure参数的说明:

--prefix=/usr/local/bind       指定bind9的安装目录,默认是/usr/local
--enable-threads            开启多线程的支持;如果你的系统有多个CPU,那么可以使用这个选项
--disable-openssl-version-check  关闭openssl的检查
--with-openssl=/usr/local/openssl 指定openssl的安装路径
--sysconfdir=/etc            设置named.conf配置文件放置的目录,默认是--prefix选项指定的目录下的/etc下
--localstatdir=/var           设置 run/named.pid 放置的目录,默认是--prefix选项指定的目录下的/var下
--with-libtool              将BIND的库文件编译为动态共享库文件,这个选项默认是未选择的。
                        如果不选这个选项,那么编译后的named命令会比较大,lib目录中的库文件都是.a后缀的
                        如果选上这个选项,那么编译后的named命令会很小,lib目录中的库文件则是.so后缀

※·步骤三 make & make install

./configure 没有问题,make make install后即可

※·步骤四 :配置PATH的环境变量

# –prefix=/usr/local/bind9  #bind的工作主目录设置

# –sysconfdir=/etc/named9  #bind的配置文件目录

 

[root@root-server bind9]# pwd    #进入编译安装bind的工作目录中
/usr/local/bind9
[root@root-server bind9]# ls
bin   #bind的用户应用程序存放路径
include   #bind的头文件存放路径
lib   #bind的库文件存放路径
sbin   #bind的管理员应用程序存放路径
share  
var

需要让系统PATH环境变量添加 bin  与  sbin添加到PATH中:

[root@root-server bind9]# cat  /etc/profile.d/named.sh   #在该目录下编辑文件文件内容如下
export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin/:$PATH  #申明环境变量
 
[root@root-server bind9]# source   /etc/profile.d/named.sh   #立即生效PATH
 
[root@root-server bind9]# echo $PATH #查看PATH的环境变量
/usr/local/bind9/bin:/usr/local/bind9/sbin/:/usr/lib64/qt-3.3/bin:/usr/local/bind9/bin:/usr/local/bind9/sbin/:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/http2/bin:/root/bin

 

※·步骤五 :配置头文件路径,设置库文件路径,设置man文件路径

系统头文件默认加载的文件为:vim /etc/ld.so.conf.d/目录。只需要在该目录下写一个文件文件内容如下:

 

vim /etc/ld.so.conf.d/named.conf

/usr/local/bind9/lib

]#ldconfig  #重新加载所有的动态库文件

 

系统库文件默认路径为:/usr/include/

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

 

安装bindman帮助文件

vim /etc/man_db.conf

MANDATORY_MANPATH   /usr/local/bind9/share/man

※·步骤六 :添加系统组和系统账户

添加的账户是用来启动named服务进程的。

# groupadd-r -g 53 named
# useradd-r -u 53 -g 53 named
[root@root-server ld.so.conf.d]# getent passwd | grep named
named:x:53:53::/home/named:/bin/bash
[root@root-server ld.so.conf.d]# getent group | grep named
named:x:53:
[root@root-server ld.so.conf.d]#

※·步骤 创建系统文件 

touch   /etc/named/named.conf  #创建主配置文件。

mkdir /var/named #创建区域文件存放目录。

touch /var/named/named.ca #存放根服务器地址

配置named.conf文件内容:

  1 options {
  2         directory "/var/named/";
  3         };
  4  zone "." IN {
  5         type hint;
  6         file "named.ca";
  7         };

#一定注意文件的权限,named用户对文件具有独权限。

※·步骤 创建boss.com区域

主配置文件中配置的区域名称

 19  zone "boss.com" IN {
 20          type master;
 21          file "boss.com.zone";
 22   };

区域文件内容

[root@root-server ld.so.conf.d]# cat /var/named/boss.com.zone 
$TTL 3600
@ IN SOA ns1.boss.com.  admin.boss.com.  (  1  1D  1M  7D 1D   )
 
IN NS ns1
ns1 IN A 10.1.16.10
www IN A 10.1.16.10
ftp IN CNAME www
bbs IN CNAME www
pop3 IN CNAME www
 
[root@root-server ld.so.conf.d]#

※·步骤 :启动服务和测试

named -u named -f -g -d 3  #前端级别3方式运行

#named服务在前提执行,通过ctrl + c 来关闭named程序

named -u named  #后台运行

[root@root-server ld.so.conf.d]# named -u named
[root@root-server ld.so.conf.d]# ps aux | grep named
named     34128  0.1  1.4 185956 14564 ?        Ssl  15:16   0:00 named -u named
root      34134  0.0  0.0 112644   952 pts/1    S+   15:16   0:00 grep --color=auto named
[root@root-server ld.so.conf.d]#

killall  named

#named在后台运行时, killall  named 结束进程

ss -uln

[root@root-server ld.so.conf.d]# ss -uln
State       Recv-Q Send-Q            Local Address:Port                           Peer Address:Port              
UNCONN      0      0                             *:47755                                     *:*                  
UNCONN      0      0                             *:59063                                     *:*                  
UNCONN      0      0                             *:5353                                      *:*                  
UNCONN      0      0                 192.168.122.1:53                                        *:*                  
UNCONN      0      0                  10.1.249.124:53                                        *:*                  
UNCONN      0      0                   122.122.0.1:53                                        *:*                  
UNCONN      0      0                    10.1.16.10:53                                        *:*                  
UNCONN      0      0                     127.0.0.1:53                                        *:*                  
UNCONN      0      0                 192.168.122.1:53                                        *:*                  
UNCONN      0      0                      *%virbr0:67                                        *:*                  
UNCONN      0      0                             *:68                                        *:*                  
UNCONN      0      0                            :::17332                                    :::*                  
[root@root-server ld.so.conf.d]#

 

※·步骤十 :配置rndc管理dns服务器

编译安装bind默认情况下 rndc程序不能管理dns服务器,会报以下的错误:

[root@root-server named9]# rndc status
rndc: neither /etc/named9/rndc.conf nor /etc/named9/rndc.key was found
[root@root-server named9]#

需要使用以下命令生成key才可以是rndcdns服务器通过对称密钥加密通信:

 

rndc-confgen  -r  /dev/urandom  >  /etc/named/rndc.conf 生成key (生成的文件保存为 rndc.conf

#   -r  /dev/urandom : 随机数不够,从设备中取随机数

[root@root-server named9]# rndc-confgen -r /dev/urandom > /etc/named9/rndc.conf
[root@root-server named9]# ll
total 12
-rw-r-----. 1 named named 2389 Sep 27 08:58 bind.keys
-rw-r-----. 1 named named  511 Sep 27 10:18 named.conf
-rw-r--r--. 1 root  root   479 Sep 27 15:21 rndc.conf
[root@root-server named9]# cat  rndc.conf 
# Start of rndc.conf ##放在rndc.conf文件中的开始
key "rndc-key" {
algorithm hmac-md5;
secret "tbAdp4Kp1L8YDo+aGY4Ajw==";
};
 
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf ##放在rndc.conf文件中的结束
 
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" { ##放在named.conf文件中的开始
#  algorithm hmac-md5;
#  secret "tbAdp4Kp1L8YDo+aGY4Ajw==";
# };
# 
# controls {
#  inet 127.0.0.1 port 953
#   allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf ##放在named.conf文件中的结束
[root@root-server named9]#

 

tail /etc/named/rndc.conf >> /etc/named/named.conf

把刚刚生成的rndc.conf信息追加到 named.conf文件中

[root@root-server named9]# tail rndc.conf >> named.conf

killall -SIGHUP named

重新加载named的配置文件

 

rndc status

[root@root-server named9]# rndc status
version: 9.9.5 <id:f9b8a50e>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 101
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
[root@root-server named9]#

 

 

原创文章,作者:linux_root,如若转载,请注明出处:http://www.178linux.com/49504

(0)
linux_rootlinux_root
上一篇 2016-10-09
下一篇 2016-10-09

相关推荐

  • rpm管理包

    rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。接下来聊一聊如何安装、卸载、查询、检验rpm类的软件。 安装:…

    2017-08-19
  • 文本处理三剑客之grep及正则表达式

    文本处理三剑客之grep及正则表达式   文本处理工具:   Linux上处理文本三剑客:     Grep:文本过滤器工具(模式:pattern)工具;     Sed: stream editor,流编辑器;文本编辑工具;   &nbs…

    Linux干货 2016-08-12
  • N28 第三周【1】:grep和文本处理工具的使用

    grep一些练习 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who |cut -d” ” -f1 |sort -u root 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# last |cut -d” ” -f1|head -1 |…

    Linux干货 2017-12-19
  • shell脚本编程初步

    shell脚本编程初步    随着课程学习的深入,我们已经学习了一些常用的命令,会去解决了一部分简单的问题,但是这不能满足复杂的工作,它可以帮助我执行自动化的常用命令、执行系统管理和故障排除、创建简单的应用程序、处理文本或文件。所以我们开始了shell脚本的编程,帮助我们更好的去完成工作。简单地说,shell编程相当于帮我们之前…

    Linux干货 2016-08-15
  • N26 第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(network bridge) 网桥工作于物理层与数据链路层,在终端设备较多的局域网中可以用网桥设备将局域网分离为不同的冲突域(collision domain),减少网络冲突,提升网络传输效率 集线器(network hub) 集线器具有多个I/O端口,一个端口的输入信号…

    2017-02-25
  • ansible配置详解

    概述     ansible是一款无需在被管理主机上安装客户端,基于SSH对多台目标主机进行同时操作的轻量级的管理软件,借助各个内部的功能模块,实现了批量系统配置、批量程序部署、批量运行命令等功能。本篇就介绍一些关于ansible的基础配置相关的内容,具体包括:     1、an…

    Linux干货 2016-11-05