如何在CentOS 6上安装BIND DNS服务器

前言

本文将向您介绍如何设置和配置BIND DNS服务器。 如果您正在寻找关于如何使用DigitalOcean的集成DNS服务的指南,你可能要检讨“如何设置与DigitalOcean主机名”文章。

在我们开始之前,建议您至少有两个云服务器来运行您的Nameservers。 建议使用两个Nameservers,以确保主服务器和辅助服务器在发生故障时是冗余的。 你也可以考虑使用两个不同的POP。 例如,我们使用了旧金山1和纽约1.为了本指南的目的,将假设您正在配置主Nameservers和辅助Nameservers。

值得注意的是,如果您管理大量域,这可能不是最可行的解决方案,因为您需要在主域名服务器和从属域名服务器上手动添加域。 据说,运行您自己的域名服务器是一个伟大的方式,以更直接控制您的托管基础​​设施,并声明完全控制您的DNS记录。

与任何新的服务器一样,确保您的系统是最新的非常重要。 您可以通过检查使用yum如下更新验证这一点:

yum update -y

(注:在DigitalOcean中,我们将我们的云服务器称为“Droplet”。我们将在本教程中使用这两个术语)

初始BIND安装

首先,我们需要使用yum安装BIND和BIND实用程序包。

yum install bind bind-utils -y

接下来,我们将打开BIND(命名)配置文件并进行几个修改。

nano -w /etc/named.conf

您的“选项”部分应显示如下,用您的第二滴的IP代替2.2.2.2。

options {
	    #listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory	"/var/named";
        dump-file	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
		allow-query { any; };
        allow-transfer     { localhost; 2.2.2.2; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

上面, 听上加以注释,监听所有可用的接口。 应该关闭递归,以防止您的服务器在“反射”DDoS攻击中被滥用。 允许传输指令白名单传送到您的辅助Droplet的IP。 此外,我们已经改变了允许查询指令“任何”,以允许用户托管区域适当的访问。

接下来,我们要为我们的第一个域添加一个新区域,您应该在现有区域下面的named.conf中添加以下内容。

        zone "mydomain.com" IN {
                type master;
                file "mydomain.com.zone";
                allow-update { none; };
        };

在保存named.conf和上面的更改后,我们准备创建我们的第一个区域文件。

配置BIND区域

首先,我们需要使用您在上面配置中指定的名称打开区域文件。 (例如:mydomain.com.zone)

nano -w /var/named/mydomain.com.zone

我们将添加以下内容到我们新创建的文件。 您应该用您自己的信息替换适用的信息,其中1.1.1.1是您的第一滴的IP,2.2.2.2是您的第二滴的IP,3.3.3.3是您希望指向域本身的IP,例如一个运行web服务器的Droplet。 您可以使用相同的格式添加其他条目。

$TTL 86400
@   IN  SOA     ns1.mydomain.com. root.mydomain.com. (
        2013042201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
; Specify our two nameservers
		IN	NS		ns1.mydomain.com.
		IN	NS		ns2.mydomain.com.
; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
ns1		IN	A		1.1.1.1
ns2		IN	A		2.2.2.2

; Define hostname -> IP pairs which you wish to resolve
@		IN	A		3.3.3.3
www		IN	A		3.3.3.3

我们现在可以第一次开始命名。 而名为生成rndc.key文件,只发生在第一次执行这可能需要几分钟的时间。

service named restart

一旦命名已成功启动,我们将确保通过运行以下命令启用它作为启动服务:

chkconfig named on

到目前为止,我们应该有一个完全可操作的主Nameservers。 您可以通过运行以下命令验证BIND是否正常工作,用第一滴的IP替换1.1.1.1。

dig @1.1.1.1 mydomain.com

如果您收到包含答案和权限部分的响应,则说明您的Nameservers已正确配置。

从属Nameservers配置

配置我们的主要Nameservers后,我们现在将在我们的第二个云服务器上设置一个从属Nameservers。

与往常一样,请确保您的系统是最新的通过与Yum检查更新如下:

yum update -y

我们可以通过在第二个Droplet上安装BIND(和相关的实用程序),以与第一个Droplet相同的方式开始:

yum install bind bind-utils -y

我们将通过打开named.conf中,使我们以前犯了同样的变化,ommitting“ 允许转让 ”行继续。 此指令是不必要的,因为我们将只从主Nameservers传输记录。

nano -w /etc/named.conf
options {
		#listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory	"/var/named";
        dump-file	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
		allow-query { any; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

我们将添加我们在第一个Droplet上配置的区域,这次将“type”指令更改为slave,而不是master。 您应该用您的第一滴的IP地址替换“1.1.1.1”。

zone "mydomain.com" IN {
	type slave;
	masters { 1.1.1.1; };
	file "mydomain.com.zone";
};

配置我们的从区域后,我们将开始命名。 而再次开始生成我们的rndc.key文件,这可能需要几分钟。

service named start

与第一个云服务器一样,我们要确保named被设置为在启动时运行以下:

chkconfig named on

你的slaveNameservers现在应该运行了。 你可以验证它再次使用 ,用你的第二个Droplet的IP取代2.2.2.2全面运作。

dig @2.2.2.2 mydomain.com

在对主区域文件进行任何更改后,您将需要指示BIND重新加载。 记住,还必须增加“serial”指令,以确保主机和从机之间的同步。

要重新加载区域文件,我们需要在主Nameservers上运行以下命令,然后是从属:

rndc reload

BIND在chroot环境中

通常建议安装额外的软件包“ 的bind-chroot环境 ”,这将下降BIND的权限进入chroot环境。

幸运的是,CentOS包使这非常简单。 值得一提的唯一的方面是,BIND活动路径将改变他们的chroot的等价物,例如在/ var /命名成为在/ var /命名/ chroot环境的/ var /命名在CentOS 6,你不会需要移动的任何文件作为包自动创建到非chrooted目录的硬符号链接。

如果您想为所提供的附加安全性启用此功能,可以执行以下操作:

yum install bind-chroot -y
service named restart
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏