天天看点

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