天天看點

BIND9 源碼編譯安裝

1、編譯前環境準備

<code>[root@centfils ~]</code><code># yum groupinstall "Development Tools" "Server Platform Development"</code>

2、至isc.org bind官網下載下傳bind源碼,并展開

<code>[root@centfils ~]</code><code># tar xf bind-9.9.9-P2.tar.gz</code>

<code>[root@centfils ~]</code><code># cd bind-9.9.9-P2</code>

3、建立named使用者

<code>[root@centfils bind-9.9.9-P2]</code><code># group -r -g 53 named</code>

<code>[root@centfils bind-9.9.9-P2]</code><code># useradd -u 53 -g named named -r</code>

<code>#使用53端口作為named組和named使用者的ID号</code>

4、編譯安裝

<code>[root@centfils bind-9.9.9-P2]</code><code># ./configure --prefix=/usr/local/bind9.9 --sysconfdir=/etc/named/ --disable-chroot --enable-threads</code>

<code>#指明安裝位置,配置檔案位置,關閉chroot,開啟線程</code>

<code>[root@centfils bind-9.9.9-P2]</code><code># make</code>

<code>[root@centfils bind-9.9.9-P2]</code><code># make install</code>

至此,安裝完成,但自行編譯bind源碼包會産生如下問題

(1)沒有配置檔案

(2)沒有區域解析檔案(包括13個根伺服器的解析檔案)

(3)沒有rndc的相關配置檔案

解決上述問題

<code>#1、将bind下配置檔案加入PATH中</code>

<code>[root@centfils bind9.9]</code><code># vim /etc/profile.d/named.sh</code>

<code>export</code> <code>PATH=</code><code>/usr/local/bind9</code><code>.9</code><code>/bin</code><code>:</code><code>/usr/local/bind9</code><code>.9</code><code>/sbin</code><code>:$PATH</code>

<code>[root@centfils bind9.9]</code><code># . /etc/profile.d/named.sh</code>

<code>#2、導出庫檔案搜尋路徑</code>

<code>[root@centfils bind9.9]</code><code># vim /etc/ld.so.conf.d/named.conf</code>

<code>/usr/local/bind9</code><code>.9</code><code>/lib</code>

<code>[root@centfils bind9.9]</code><code># ldconfig -v</code>

<code>#3、導出頭檔案搜尋路徑</code>

<code>[root@centfils bind9.9]</code><code># ln -sv /usr/local/bind9.9/include /usr/include/named</code>

<code>"/usr/include/named"</code> <code>-&gt; </code><code>"/usr/local/bind9.9/include"</code>

<code>#4、導出幫助文檔搜尋路徑</code>

<code>[root@centfils bind9.9]</code><code># vim /etc/man.config </code>

<code>MANPATH </code><code>/usr/local/bind9</code><code>.9</code><code>/share/man</code>

然後編輯配置檔案

<code>[root@centfils bind9.9]</code><code># cd /etc/named</code>

<code>[root@centfils named]</code><code># vim named.conf</code>

<code>options {</code>

<code>        </code><code>directory </code><code>"/var/named"</code><code>;</code>

<code>};</code>

<code>zone </code><code>"."</code> <code>IN {</code>

<code>        </code><code>type</code> <code>hint;</code>

<code>        </code><code>file</code> <code>"named.ca"</code><code>;</code>

<code>zone </code><code>"localhost"</code> <code>IN {</code>

<code>        </code><code>type</code> <code>master;</code>

<code>        </code><code>file</code> <code>"locaihost.zone"</code><code>;</code>

<code>        </code><code>allow-update { none; };</code>

<code>zone </code><code>"0.0.127.in-addr.arpa"</code> <code>IN {</code>

<code>        </code><code>file</code> <code>"named.local"</code><code>;</code>

<code>[root@centfils named]</code><code># mkdir /var/named</code>

<code>[root@centfils named]</code><code># named-checkconf</code>

<code>#然後建立各區域的配置檔案</code>

<code>[root@centfils named]</code><code># cd /var/named</code>

<code>#在聯網的情況下直接将查詢根的結果導入根區域配置檔案</code>

<code>[root@centfils named]</code><code># dig -t NS . &gt; /var/named/named.ca</code>

<code>#配置正向解析區域</code>

<code>[root@centfils named]</code><code># vim localhost.zone</code>

<code>$TTL 86400</code>

<code>@       IN      SOA     localhost.      admin.localhost. (</code>

<code>                        </code><code>2016091301</code>

<code>                        </code><code>1H</code>

<code>                        </code><code>5M</code>

<code>                        </code><code>7D</code>

<code>                        </code><code>1D )</code>

<code>        </code><code>IN      NS      localhost.</code>

<code>localhost.      IN      A       127.0.0.1</code>

<code>#配置反向解析區域</code>

<code>[root@centfils named]</code><code># vim named.local</code>

<code>1       IN      PTR     localhost.</code>

接下來,更改配置檔案的屬組和權限

<code>[root@centfils named]</code><code># chown :named localhost.zone named.local named.ca </code>

<code>[root@centfils named]</code><code># chmod 640 localhost.zone named.local named.ca </code>

<code>[root@centfils named]</code><code># chmod 640 /etc/named/named.conf </code>

<code>[root@centfils named]</code><code># chown :named /etc/named/named.conf</code>

之後,生成rndc配置檔案

<code>[root@centfils ~]</code><code># rndc-confgen -r /dev/urandom &gt; /etc/named/rndc.conf</code>

<code>#使用随機數生成rndc.conf檔案</code>

<code>[root@centfils ~]</code><code># rndc-confgen -r /dev/urandom</code>

<code># Start of rndc.conf</code>

<code>key </code><code>"rndc-key"</code> <code>{</code>

<code>    </code><code>algorithm hmac-md5;</code>

<code>    </code><code>secret </code><code>"3FMQn6XQIuzAXNhl+19EvA=="</code><code>;</code>

<code>    </code><code>default-key </code><code>"rndc-key"</code><code>;</code>

<code>    </code><code>default-server 127.0.0.1;</code>

<code>    </code><code>default-port 953;</code>

<code># End of rndc.conf</code>

<code>#----------------将本段内容複制到named.conf檔案中--------------------------------------</code>

<code># Use with the following in named.conf, adjusting the allow list as needed:</code>

<code># key "rndc-key" {</code>

<code>#  algorithm hmac-md5;</code>

<code>#  secret "3FMQn6XQIuzAXNhl+19EvA==";</code>

<code># };</code>

<code># </code>

<code># controls {</code>

<code>#  inet 127.0.0.1 port 953</code>

<code>#      allow { 127.0.0.1; } keys { "rndc-key"; };</code>

<code># End of named.conf</code>

<code>#----------------------------------結束------------------------------------------------</code>

将文中辨別的内容複制到named.conf中,并取消注釋

到此,準備工作結束,

<code>[root@centfils named]</code><code># named -u named -f -g -d 3</code>

<code>#-u 為指定named使用者執行</code>

<code>#-f 為運作在前台</code>

<code>#-g 把标準錯誤顯示出來</code>

<code>#-d 指明調試等級</code>

<code>[root@centfils ~]</code><code># ss -tunl | grep 53</code>

<code>udp    UNCONN     0      0          192.168.0.196:53                    *:*     </code>

<code>udp    UNCONN     0      0              127.0.0.1:53                    *:*     </code>

<code>tcp    LISTEN     0      10         192.168.0.196:53                    *:*     </code>

<code>tcp    LISTEN     0      10             127.0.0.1:53                    *:*  </code>

<code>#現在53端口已經處于監聽狀态了</code>

本文轉自 元嬰期 51CTO部落格,原文連結:http://blog.51cto.com/jiayimeng/1852411