将Linux BIND DNS服务器用于Active Directory域

时间:2020-01-09 10:44:03  来源:igfitidea点击:

说明

Active Directory依赖DNS才能正常运行。由于Windows DNS完全基于BIND DNS版本9,因此BIND服务器也可以托管Active Directory域。

我们将基于Linux的BIND DNS服务器用于Active Directory的环境的一个示例是具有很大的LinuxUnix安装基础的环境。在这种情况下,我们可能希望将Active Directory区域托管在我们现有的基础结构上。

另一个示例是让来自第三方供应商的DNS设备(例如Infoblox)为内部名称服务提供支持。这些设备通常基于BIND,功能非常强大,并提供基本BIND安装中没有的高级企业功能,就像我们将要做的那样。

优点

Linux BIND服务器是一种非常轻巧且快速的DNS服务器。在中型到大型环境中,不需要很多硬件即可为其供电。可以说,另一个好处是,Linux可以更加安全,因为已知漏洞更少。

缺点

我们将失去一些Active Directory功能。没有复杂的第三方程序包,与Windows DNS不同,BIND域区域可能只有一个主机。 Active Directory环境中的Windows名称服务器具有多主机功能,可为我们提供更高的可用性。

另一个缺点是,大多数Windows环境没有强大的Linux技能集。我们可能会发现资源无法正确维护和管理Linux BIND DNS服务器。

服务器配置

我们用于本实验的服务器具有以下配置。提供此信息是为了使其更容易理解。我不包括硬件规范,因为这些规范很大程度上取决于我们环境的唯一性。

主机名操作系统角色IP地址
NS01CentOS 6.5DNS名称服务器172.30.0.5公司内部
DC01Windows Server 2012 R2域控制器172.30.0.10公司内部

名称服务器将为Active Directory创建以下区域。必须在我们的第一个域控制器DC01升级为Active Directory域控制器之前创建它们。没有区域,DC01将无法注册所需的DNS记录,以使Active Directory正常运行。

DNS域区域我们测试的区域
fqdn域名公司内部
_msdcs.fqdn域名_msdcs.corp.theitroad.test
_sites。fqdn域名_sites.corp.theitroad.test
_tcp.fqdn域名_tcp.corp.theitroad.test
_udp.fqdn域名_udp.corp.theitroad.test

第一个域区域是必需的。仅当我们要将记录组织到不同的数据库中时才需要其余区域,这可能是出于管理或者性能方面的原因。如果不创建这些区域,则会在第一个区域的数据库中自动创建它们。

安装和配置BIND

  • 使用具有管理特权的帐户登录到CentOS服务器。
  • 安装BIND。
yum install bind
  • 在文本编辑器(如VI或者Nano)中打开BIND配置文件。配置文件位于此处。 / etc / named.conf
  • 查找Option指令。它应该从以下几行开始。
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     { localhost; };
        recursion yes;
  • 用DNS服务器替换侦听端口选项的IP地址。
  • 将allow-query选项的值localhost替换为允许运行查询的网络。例如172.30.0.0/24. 我们还可以输入值any以允许任何客户端提交查询。
  • 使用新值,以上各行现在应看起来与此相似。
options {
        listen-on port 53 { 172.30.0.5; };
        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     { 172.30.0.0/24; };
        recursion yes;

创建Active Directory域区域

  • 在配置文件仍然打开的情况下,添加以下行。请记住重命名区域的完全限定域名以匹配环境。
zone "corp.theitroad.test" IN {
        type master;
        file "dynamic/corp.theitroad.test";
        allow-update { 172.30.0.0/24; 192.168.1.0/24; };
};
zone "_msdcs.corp.theitroad.test" IN {
        type master;
        file "dynamic/_msdcs.corp.theitroad.test";
        allow-update { 172.30.0.0/24; 192.168.1.0/24; };
};
  • 保存配置文件,然后退出文本编辑器。
  • 导航到动态数据库的默认区域数据库位置。我们正在这里创建数据库,以使我们的Active Directory客户端计算机能够自动注册其DNS记录。
cd /var/named/dynamic
  • 基于空模板创建两个新的数据库文件。
cp ../named.empty corp.theitroad.test
cp ../named.empty _msdcs.corp.theitroad.test
  • 在文本编辑器中打开corp.theitroad.test数据库文件。它看起来应该像下面的示例。
$TTL 3H
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

对于corp.theitroad.test域,我们需要对其进行修改,使其看起来像这样。

$TTL 3H
@       IN SOA  ns01.corp.theitroad.test. admin.corp.theitroad.test. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns01.corp.theitroad.test.
ns01               IN     A     172.30.0.5
  • 保存更改并退出文本编辑器。
  • 打开_msdcs.corp.theitroad.test的数据库,并将其修改为如下所示。
$TTL 3H
@       IN SOA  ns01.corp.theitroad.test. admin.corp.theitroad.test. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns01.corp.theitroad.test.
  • 保存更改并退出文本编辑器。
  • 启动BIND守护程序。
service bind start
  • 将BIND配置为在启动时自动启动。
chkconfig bind on

配置DNS服务器自行查询

  • 在文本编辑器(如VI或者Nano)中打开resolv.conf配置。
vi /etc/resolv.conf
  • 对其进行修改,使其看起来如下所示,替换突出显示的文本以匹配环境。
search corp.theitroad.test
search _msdcs.corp.theitroad.test
nameserver 127.0.0.1
  • 保存更改并退出文本编辑器。

将Windows Server升级为域控制器

你们都准备好了。剩下的一切就是让我们将Windows服务器指向用于DNS的linux BIND服务器,然后将其升级到Active Directory域控制器。所需的DNS记录将自动注册,除了多主复制外,我们还将具有功能齐全的Active Directory域。