[Debian Sarge]安装Bind9主/从DNS系统

[Debian Sarge]安装Bind9主/从DNS系统

版本:1.0 - 2008年8月23日

欢迎

在这方面我们将安装2个bind dns服务器,一个作为主服务器,另一个作为从服务器。为了安全起见,我们将在自己的监狱中chroot bind9。
为域使用两个服务器是常用的设置,为了托管自己的域,您需要至少拥有2个域服务器。如果一个人打破,另一个可以继续为您的域服务。
我们的设置将使用Debian Sarge 3.1(stable)作为其基础。一个简单的清洁和up2date安装将足够,因为我们将安装所需的软件包与此howto。
在这个howto我将使用虚构域“linux.lan”。Nameservers将使用192.168.254.1和192.168.254.2作为ip。

在我们开始之前的最后一句话:我读了Joe的howto(也在这个网站上)和一些更多的东西,但是没有一个工作没有一些调整。因此,我做了我自己的howto。它应该立即工作:)

安装软件

首先,您将需要一个干净的Debian Sarge安装。确保它的up2date!
apt-get update; apt-get upgrade
我们还需要一些Debian构建工具,因为我们必须下载源码包:
apt-get install devscripts
接下来我们将安装绑定所需的软件。为了使用加密来在主机和从机之间传输区域文件,我们需要一个更新版本的Bind9(version> = 9.3),然后在Sarge存储库中找到。我们将使用测试分支的来源。所以,请确保您的 /etc/apt/sources.list中有这样的行:
deb-src http://---your.debian.mirror---/debian testing main contrib non-free

测试中的Bind9取决于测试中的lsb-base。让我们抓住它:
(语法解释:-y告诉apt对所有问题都表示yes,build-dep从sarge存储库安装-testing_packageX所需的所有软件包,而-b可以直接构建源代码)。
cd ~/a/dir/for/lsb-base/
apt-get -y build-dep lsb-base
apt-get source lsb-base -b
dpkg-i lsb-base*.deb
下一个是Bind9:
cd ~/a/dir/for/bind9
apt-get -y build-dep bind9
apt-get source bind9 -b
dpkg -i *.deb
现在我们所有的软件都已经安装好了,可以配置好了。

配置主

首先我们需要停止bind9:
/etc/init.d/bind9 stop
为了chroot绑定,我们需要在 / etc / default / bind9中设置一个选项:
从:
OPTIONS="-u bind"
至:
OPTIONS="-u bind -t /var/lib/named"
它现在将以'/ var / lib / named'作为用户'bind'chroot运行。
接下来,我们编辑/etc/bind/named.conf.options中的转发器行,以匹配ISP的dns:
forwarders { 194.109.6.66; };
chroot jail需要这些步骤:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
mv /etc/bind /var/lib/named/etc
ln -s /var/lib/named/etc/bind /etc/bind
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/*
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
绑定现在有自己的目录与.pid文件和​​配置文件的空间。为了保持清晰,我们将一个符号链接回到/ etc /。

现在编辑/etc/init.d/sysklogd以允许记录绑定活动:
从:

SYSLOGD=""
至:
SYSLOGD="-a /var/lib/named/dev/log"
最后一步是将这个新安装的DNS服务器(localhost)的ip添加到 /etc/resolv.conf中以使用它:
echo "search linux.lan" > /etc/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/resolv.conf
现在重新启动sysklogd和bind9:
/etc/init.d/sysklogd restart
/etc/init.d/bind9 start
并测试!
ping www.google.com
如果您收到回复,则您的DNS主服务器正在工作并可以使用。我们现在将使用我们的新主服务器填写和使用linux.lan域。

设置linux.lan域

主DNS服务器目前只是将请求转发到ISP的服务器。因此,我们现在将安装和配置我们自己的域,并让我们的新服务器处理关于该域的所有请求。
让我们从创建我们将存储区域文件的目录开始。此文件包含有关域的所有信息。
mkdir /etc/bind/zones/
接下来我们将创建zone文件,/ etc/bind/zones/master_linux.lan
$TTL 3D
@ IN SOA ns1.linux.lan. hostmaster.linux.lan. ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 4W ; expire, seconds 1D ) ; minimum, seconds ; TXT "Linux.LAN, serving YOUR domain :)" NS ns1 ; Inet Address of name server NS ns2 MX 10 mail ; Primary Mail Exchanger localhost A 127.0.0.1 ns1 A 192.168.254.1 ns2 A 192.168.254.2 www CNAME ns1
在这里,我们创建了一个简单的区域文件,其中有两个Nameservers和一个www别名的ns1。以防万一我们在ns1上运行apache);

现在编辑/etc/bind/named.conf.local并添加:

zone "linux.lan" {
        type master;
        file "/etc/bind/zones/master_linux.lan";
};
就是这样,我们现在可以重新启动bind并检查它是否可行:
/etc/init.d/bind9 restart
ping ns1.linux.lan
在这个阶段你应该有一个工作和可用的DNS服务器:)
如果说它找不到域名,也许dhclient已经改变了你的Nameservers条目...所以杀了它。

安装Minion

基本上,从机使用与我们在第一部分中构建的相同的基本系统(就在我们添加了区域文件之前)。我们将为主人和Minion添加一些小的变化,使他们一起工作。区域文件将通过网络传输加密。
除非另有说明,这些命令仅供Minion使用。

创建区域dir:
mkdir /etc/bind/zones

对于主机和从机都编辑 /etc/bind/named.conf.options并添加:

dnssec-enable yes;

现在我们需要一个安全的钥匙这将生成一个.private和.key文件。 .private文件中的'key ='行代表散列键。
dnssec-keygen -a hmac-md5 -b 128 -n host linux.lan

将其添加到主/从机上的 /etc/bind/named.conf中:
key "TRANSFER" {
        algorithm hmac-md5;
        secret "---HASHKEY---";
};

在主机上,我们将slave ip添加到 /etc/bind/named.conf中
server 192.168.254.2 {
        keys {
        TRANSFER;
    };
};

在slave上,我们将master ip添加到 /etc/bind/named.conf中
server 192.168.254.1 {
        keys {
        TRANSFER;
    };
};

添加到 /etc/bind/named.conf.local中
zone "linux.lan" {
        type slave;
        file "/etc/bind/zones/slave_linux.lan";
        masters { 192.168.254.1; };
        allow-notify { 192.168.254.1; };
};
BOTH主机需要的最后一件事是将它添加到 /etc/bind/named.conf中
include "/etc/bind/rndc.key";

为了拥有一个成功的区域传输,两个系统都需要有一个同步的时钟,所以:
apt-get -y install ntpdate
在两台机器上重新启动绑定,并注意到从机上的新区域文件:)
如果你想知道为什么_updates_到你的主人的区域文件似乎失败,检查区域文件中的到期等设置。
祝您运行新的DNS主/从配置!
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏