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.www58058.com/49504

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

相關推薦

  • Linux之bash shell腳本編程入門篇(一)

    什么是bash shell腳本編程? 答:Linux里面有多種shell,而CentOS和redhat的默認shell是bash shell。至于shell腳本,這個跟windows操作系統里面的批處理文件有點像(.bat的文件)。不知道大家還是否記得Linux的哲學思想嗎?其中有那么兩點點:由眾多目的的單一應用程序組成:一個程序只做一件事,且做好;組合目的…

    Linux干貨 2016-08-15
  • HA Cluster—Keepalived

    HA Cluster 集群類型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP 系統可用性的公式:A=MTBF/(MTBF+MTTR) 系統故障: 硬件故障:設計缺陷、wear out、自然災害 軟件故障:設計缺陷 提升系統高用性的解決方案之降低MTTR: 解決方案:冗余(redundant) acti…

    Linux干貨 2017-10-30
  • ACL權限實例詳解

    CentOS7當中,無論是操作系統安裝時還是之后手工創建的文件系統(xfs、ext4)均會開啟ACL功能。 CentOS6及之前的版本,僅操作系統安裝時創建的文件系統才會默認開啟ACL,手工創建的文件系統,需要手工開啟ACL 功能。 Acl如何設置 創建分區 mount -o acl /dev/sda7  取消的方式,重新掛載時不指定即可 tune…

    2017-07-29
  • 初識Linux—-小練習

    1、怎樣更改命令提示符的顏色?     步驟一:通過 echo $PS1 命令顯示當前提示符格式;     步驟二:通過cat /etc/DIR_COLORS 命令,查詢需要顏色的編號;     步驟三:打開.bashrc文件,命令為nano  .bashrc,進入后添加,如圖: &nbs…

    2017-02-18
  • 過濾語句和復制,權限的一些事例

    1.復制/etc/skel 目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 ~]# cp -r /etc/skel/ /home/tuser1/ ~]# chmod go= /home/tuser1/ 2.編輯/etc/group文件,添加組hadoop ~]# echo "hadoop:…

    Linux干貨 2016-10-14
欧美性久久久久