构建Debian DNS系统

构建Debian DNS系统

版本1.0
作者:Joe Topjian <joe [at] adminspotting [dot] net>

好的,这是最后的DNS文章...一段时间,至少。

本文将向您展示如何使用Debian构建完整的DNS系统。 这包括主服务器,从服务器,DDNS和一堆DNSSEC。 我将使用BIND 9作为服务器。

主服务器

首先让我们的主服务器启动并运行。 由于BIND已经知道它有相当大的漏洞利益,所以我们将把它抛到一个chroot监狱。 我不会掩饰,因为Falko在这里写了一个很好的指南。

当你把它们全部关进监狱后,让RNDC工作。 RNDC是一个控制BIND的小命令行实用程序。 要使用它,将/etc/bind/rndc.key的内容复制到/etc/bind/named.conf 。 重新启动BIND,你很好去。 现在,您可以使用RNDC与BIND进行接口,而不是直接使用BIND。 有关RNDC命令的更多信息,请参阅此处

接下来是时候创建区域文件了。 对于这个例子,我将使用虚构的TLD hemingway。 没有理由真的 - 只是因为我可以而且我知道一个事实,它永远不会与一个真正的域名冲突。

对于组织,我已经制作了两个目录,用于存储主文件和从属的区域文件,用于分别存储主和从区域文件。

/ etc / bind / zones / master
/ etc / bind / zones / slave

不要忘记编辑/etc/bind/named.conf.options并将目录选项更改为“/ etc / bind”。

区域文件将如下所示( /etc/bind/zones/master/master.hemingway ):

$ORIGIN hemingway
$TTL 1d
@ IN SOA ns1 hostmaster (
2005103008 ; serial
43200
900
604800
10800
)
NS hemingway.
A 127.0.0.1

192.168.1.0/24(/etc/bind/zones/192.168.1.rev )的相反区域将如下所示:

$TTL 1d ;
$ORIGIN 1.168.192.IN-ADDR.ARPA.
@ IN SOA ns1.hemingway. hostmaster.hemingway. (
2005103001
2h
15m
2w
3h
)

IN NS ns1.hemingway.
IN NS ns2.hemingway.

现在使用新的区域编辑/etc/bind/named.conf.local

zone "hemingway" {
type master;
file "zones/master/master.hemingway";
};

zone "1.168.192.IN-ADDR.ARPA" {
type master;
file "zones/192.168.1.rev";
};

重新加载DNS并检查您的日志。 你不应该有任何错误,但你永远不会知道...

rndc重新加载

现在BIND知道要托管的域,现在该添加一些主机名了。 我们将使用DDNS。 要设置DDNS,可以在这里关注我的DDNS文章。

要使用DDNS实际添加主机,我将使用我的ddns.py脚本。

ddns.py add jake.hemingway A 192.168.1.11
ddns.py add bill.hemingway A 192.168.1.12
ddns.py add robert.hemingway A 192.168.1.13
ddns.py add brett.hemingway A 192.168.1.14

相应的PTR文件也被添加,但我正在跳过来节省空间。

我们现在有一个功能完善的主DNS服务器解析我们给它的任何主机名。

从服务器


现在主服务器已经设置好了,现在是时候进入从服务器了。 在另一个盒子上,像Master一样设置一个Jailed BIND安装。

从站将从主站拉出区域传输。 由于这些区域转移通过网络进行明文,我们将要保护他们。

在主/从/etc/bind/named.conf.options文件中,添加以下内容

dnssec-enable yes;

使用此处描述dnssec-keygen命令创建一个密钥。 在/etc/bind/named.conf文件中将MD5哈希添加到新的键语句:

key "TRANSFER" {
algorithm hmac-md5;
secret "jXc2Lreaw4QHHTb/MjiHAw==";
};

在主服务器上,将以下服务器语句添加到/etc/bind/named.conf中

server IP-OF-SLAVE {
keys { TRANSFER; };
};

在Minion上,做相反的事情:

server IP-OF-MASTER {
keys { TRANSFER; };
};

在主机上,将以下内容添加到/etc/bind/named.conf.local中的区块中:

allow-transfer { key TRANSFER; };

从站上的区块应如下所示:

zone hemingway {
type slave;
file "zones/slave/slave.hemingway";
masters { IP-OF-MASTER; };
allow-notify { IP-OF-MASTER; };
};

最后,确保两台服务器的时钟同步。 如果不是,区域转移将不会发生。

完成后,启动从服务器。 您现在应该在/ etc / bind / zones / slave /从区域传输中创建一个全新的文件。 如果没有,请检查您的日志 - 它们的错误非常详细。

结尾

这就是它的一切! 这是很多工作,我真的很喜欢,但这应该让你开始运行。 参考和进一步的信息,请阅读我的DDNS文章在这里 ,并参考精彩的书Pro DNS和BIND (不是营销插件 - 这真的是一本好书!)。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏