天天看点

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

这篇文章将讲解如何使用 ubuntu 16.04 服务器版系统来创建第二台 samba4 域控制器,并将其加入到已创建好的 samba ad dc 林环境中,以便为一些关键的 ad dc 服务提供负载均衡及故障切换功能,尤其是为那些重要的服务,比如 dns 服务和使用 sam 数据库的 ad dc ldap 模式。

<a target="_blank"></a>

这篇文章是 samba4 ad dc 系列的第五篇,前边几篇如下:

1、在开始把第二个 dc 服务器加入到 samba4 ad dc 域环境之前,你需要注意一些初始化设置信息,首先,确保这个新系统的主机名包含描述性名称。

假设第一个域服务器的主机名叫做 <code>adc1</code> ,你可以把第二个域服务器命名为 <code>adc2</code>,以保持域控制器名称的一致性。

执行下面的命令来修改系统主机名:

<code># hostnamectl set-hostname adc2</code>

或者你也可以手动编辑 <code>/etc/hostname</code> 文件,在新的一行输入你想设置的主机名。

<code># nano /etc/hostname</code>

这里添加主机名。

<code>adc2</code>

2、下一步,打开本地系统解析文件并添加一个条目,包含主域控制器的 ip 地址和 fqdn 名称。如下图所示:

在这篇教程中,主域控服务器的主机名为 <code>adc1.tecmint.lan</code> ,其对应的 ip 地址为 192.168.1.254 。

<code># nano /etc/hosts</code>

添加如下行:

<code>ip_of_main_dc fqdn_of_main_dc short_name_of_main_dc</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

为 samba4 ad dc 服务器设置主机名

3、下一步,打开 <code>/etc/network/interfaces</code> 配置文件并设置一个静态 ip 地址,如下图所示:

注意 <code>dns-nameservers</code> 和 <code>dns-search</code> 这两个参数的值。为了使 dns 解析正常工作,需要把这两个值设置成主 samba4 ad dc 服务器的 ip 地址和域名。

重启网卡服务以让修改的配置生效。检查 <code>/etc/resolv.conf</code> 文件,确保该网卡上配置的这两个 dns 的值已更新到这个文件。

<code># nano /etc/network/interfaces</code>

编辑并替换你自定义的 ip 设置:

<code>auto ens33</code>

<code>iface ens33 inet static</code>

<code>address 192.168.1.253</code>

<code>netmask 255.255.255.0</code>

<code>brodcast 192.168.1.1</code>

<code>gateway 192.168.1.1</code>

<code>dns-nameservers 192.168.1.254</code>

<code>dns-search tecmint.lan</code>

重启网卡服务并确认生效。

<code># systemctl restart networking.service</code>

<code># cat /etc/resolv.conf</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

配置 samba4 ad 服务器的 dns

当你通过简写名称(用于构建 fqdn 名)查询主机名时, <code>dns-search</code> 值将会自动把域名添加上。

4、为了测试 dns 解析是否正常,使用一系列 ping 命令测试,命令后分别为简写名, fqdn 名和域名,如下图所示:

在所有测试用例中,samba4 ad dc dns 服务器都应该返回主域控服务器的 ip 地址。

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

验证 samba4 ad 环境 dns 解析是否正常

5、最后你需要注意的是确保这个主机跟域控服务器时间同步。你可以通过下面的命令在系统上安装 ntp 客户端工具来实现时间同步功能:

<code># apt-get install ntpdate</code>

6、假设你想手动强制本地服务器与 samba4 ad dc 服务器时间同步,使用 <code>ntpdate</code> 命令加上主域控服务器的主机名,如下所示:

<code># ntpdate adc1</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

与 samba4 ad 服务器进行时间同步

7、为了让 ubuntu 16.04 系统加入到你的域中,你需要通过下面的命令从 ubuntu 官方软件库中安装 samba4 套件、 kerberos 客户端 和其它一些重要的软件包以便将来使用:

<code># apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

在 ubuntu 系统中安装 samba4

8、在安装的过程中,你需要提供 kerberos 域名。输入大写的域名然后按回车键完成安装过程。

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

为 samba4 配置 kerberos 认证

9、所有依赖包安装完成后,通过使用 <code>kinit</code> 命令为域管理员请求一个 kerberos 票据以验证设置是否正确。使用 <code>klist</code> 命令来列出已授权的 kerberos 票据信息。

<code># kinit domain-admin-user@your_domain.tld</code>

<code># klist</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

在 samba4 域环境中验证 kerberos

10、在把你的机器集成到 samba4 dc 环境之前,先把系统中所有运行着的 samba4 服务停止,并且重命名默认的 samba 配置文件以便从头开始。在域控制器配置的过程中, samba 将会创建一个新的配置文件。

<code># systemctl stop samba-ad-dc smbd nmbd winbind</code>

<code># mv /etc/samba/smb.conf /etc/samba/smb.conf.initial</code>

11、在准备加入域前,先启动 samba-ad-dc 服务,之后使用域管理员账号运行 <code>samba-tool</code> 命令将服务器加入到域。

<code># samba-tool domain join your_domain -u "your_domain_admin"</code>

加入域过程部分截图:

<code># samba-tool domain join tecmint.lan dc -u "tecmint_user"</code>

输出示例:

<code>finding a writeable dc for domain 'tecmint.lan'</code>

<code>found dc adc1.tecmint.lan</code>

<code>password for [workgroup\tecmint_user]:</code>

<code>workgroup is tecmint</code>

<code>realm is tecmint.lan</code>

<code>checking samaccountname</code>

<code>deleted cn=adc2,cn=computers,dc=tecmint,dc=lan</code>

<code>adding cn=adc2,ou=domain controllers,dc=tecmint,dc=lan</code>

<code>adding cn=adc2,cn=servers,cn=default-first-site-name,cn=sites,cn=configuration,dc=tecmint,dc=lan</code>

<code>adding cn=ntds settings,cn=adc2,cn=servers,cn=default-first-site-name,cn=sites,cn=configuration,dc=tecmint,dc=lan</code>

<code>adding spns to cn=adc2,ou=domain controllers,dc=tecmint,dc=lan</code>

<code>setting account password for adc2$</code>

<code>enabling account</code>

<code>calling bare provision</code>

<code>looking up ipv4 addresses</code>

<code>looking up ipv6 addresses</code>

<code>no ipv6 address will be assigned</code>

<code>setting up share.ldb</code>

<code>setting up secrets.ldb</code>

<code>setting up the registry</code>

<code>setting up the privileges database</code>

<code>setting up idmap db</code>

<code>setting up sam db</code>

<code>setting up sam.ldb partitions and settings</code>

<code>setting up sam.ldb rootdse</code>

<code>pre-loading the samba 4 and ad schema</code>

<code>a kerberos configuration suitable for samba 4 has been generated at /var/lib/samba/private/krb5.conf</code>

<code>provision ok for domain dn dc=tecmint,dc=lan</code>

<code>starting replication</code>

<code>schema-dn[cn=schema,cn=configuration,dc=tecmint,dc=lan] objects[402/1550] linked_values[0/0]</code>

<code>schema-dn[cn=schema,cn=configuration,dc=tecmint,dc=lan] objects[804/1550] linked_values[0/0]</code>

<code>schema-dn[cn=schema,cn=configuration,dc=tecmint,dc=lan] objects[1206/1550] linked_values[0/0]</code>

<code>schema-dn[cn=schema,cn=configuration,dc=tecmint,dc=lan] objects[1550/1550] linked_values[0/0]</code>

<code>analyze and apply schema objects</code>

<code>partition[cn=configuration,dc=tecmint,dc=lan] objects[402/1614] linked_values[0/0]</code>

<code>partition[cn=configuration,dc=tecmint,dc=lan] objects[804/1614] linked_values[0/0]</code>

<code>partition[cn=configuration,dc=tecmint,dc=lan] objects[1206/1614] linked_values[0/0]</code>

<code>partition[cn=configuration,dc=tecmint,dc=lan] objects[1608/1614] linked_values[0/0]</code>

<code>partition[cn=configuration,dc=tecmint,dc=lan] objects[1614/1614] linked_values[28/0]</code>

<code>replicating critical objects from the base dn of the domain</code>

<code>partition[dc=tecmint,dc=lan] objects[97/97] linked_values[24/0]</code>

<code>partition[dc=tecmint,dc=lan] objects[380/283] linked_values[27/0]</code>

<code>done with always replicated nc (base, config, schema)</code>

<code>replicating dc=domaindnszones,dc=tecmint,dc=lan</code>

<code>partition[dc=domaindnszones,dc=tecmint,dc=lan] objects[45/45] linked_values[0/0]</code>

<code>replicating dc=forestdnszones,dc=tecmint,dc=lan</code>

<code>partition[dc=forestdnszones,dc=tecmint,dc=lan] objects[18/18] linked_values[0/0]</code>

<code>committing sam database</code>

<code>sending dsreplicaupdaterefs for all the replicated partitions</code>

<code>setting issynchronized and dsservicename</code>

<code>setting up secrets database</code>

<code>joined domain tecmint (sid s-1-5-21-715537322-3397311598-55032968) as a dc</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

把域加入到 samba4 ad dc

12、在已安装了 samba4 套件的 ubuntu 系统加入域之后,打开 samba 主配置文件添加如下行:

<code># nano /etc/samba/smb.conf</code>

添加以下内容到 <code>smb.conf</code> 配置文件中。

<code>dns forwarder = 192.168.1.1</code>

<code>idmap_ldb:use rfc2307 = yes</code>

<code>template shell = /bin/bash</code>

<code>winbind use default domain = true</code>

<code>winbind offline logon = false</code>

<code>winbind nss info = rfc2307</code>

<code>winbind enum users = yes</code>

<code>winbind enum groups = yes</code>

使用你自己的 dns 转发器 ip 地址替换掉上面 <code>dns forwarder</code> 地址。 samba 将会把域权威区之外的所有 dns 解析查询转发到这个 ip 地址。

13、最后,重启 samba 服务以使修改的配置生效,然后执行如下命令来检查活动目录复制功能是否正常。

<code># systemctl restart samba-ad-dc</code>

<code># samba-tool drs showrepl</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

配置 samba4 dns

14、另外,还需要重命名原来的 <code>/etc</code>下的 kerberos 配置文件,并使用在加入域的过程中 samba 生成的新配置文件 krb5.conf 替换它。

samba 生成的新配置文件在 <code>/var/lib/samba/private</code> 目录下。使用 linux 的符号链接将该文件链接到<code>/etc</code> 目录。

<code># mv /etc/krb6.conf /etc/krb5.conf.initial</code>

<code># ln -s /var/lib/samba/private/krb5.conf /etc/</code>

<code># cat /etc/krb5.conf</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

配置 kerberos

15、同样,使用 samba 的 <code>krb5.conf</code> 配置文件验证 kerberos 认证是否正常。通过以下命令来请求一个管理员账号的票据并且列出已缓存的票据信息。

<code># kinit administrator</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

使用 samba 验证 kerberos 认证是否正常

16、你首先要做的一个测试就是验证 samba4 dc dns 解析服务是否正常。要验证域 dns 解析情况,使用<code>host</code> 命令,加上一些重要的 ad dns 记录,进行域名查询,如下图所示:

每一次查询,dns 服务器都应该返回两个 ip 地址。

<code># host your_domain.tld</code>

<code># host -t srv _kerberos._udp.your_domain.tld # udp kerberos srv record</code>

<code># host -t srv _ldap._tcp.your_domain.tld # tcp ldap srv record</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

verify samba4 dc dns

*验证 samba4 dc dns *

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

通过 windows rsat 工具来验证 dns 记录

18、下一个验证是检查域 ldap 复制同步是否正常。使用 <code>samba-tool</code> 工具,在第二个域控制器上创建一个账号,然后检查该账号是否自动同步到第一个 samba4 ad dc 服务器上。

在 adc2 上:

<code># samba-tool user add test_user</code>

在 adc1 上:

<code># samba-tool user list | grep test_user</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

在 samba4 ad 服务器上创建账号

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

在 samba4 ad 服务器上验证同步功能

19、你也可以从 microsoft ad dc 控制台创建一个账号,然后验证该账号是否都出现在两个域控服务器上。

默认情况下,这个账号都应该在两个 samba 域控制器上自动创建完成。在 <code>adc1</code> 服务器上使用 <code>wbinfo</code> 命令查询该账号名。

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

从 microsoft ad uc 创建账号

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

在 samba4 ad 服务器上验证账号同步功能

20、实际上,打开 windows 机器上的 ad dc 控制台,展开到域控制器,你应该看到两个已注册的 dc 服务器。

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

验证 samba4 域控制器

21、要在整个系统启用 samba4 ad dc 的服务,首先你得禁用原来的不需要的 samba 服务,然后执行如下命令仅启用 samba-ad-dc 服务:

<code># systemctl disable smbd nmbd winbind</code>

<code># systemctl enable samba-ad-dc</code>

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

启用 samba4 ad dc 服务

22、如果你从 microsoft 客户端远程管理 samba4 域控制器,或者有其它 linux 或 windows 客户机集成到当前域中,请确保在它们的网卡 dns 服务器地址设置中提及 <code>adc2</code> 服务器的 ip 地址,以实现某种程序上的冗余。

下图显示 windows 和 debian/ubuntu 客户机的网卡配置要求。

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

配置 windows 客户端来管理 samba4 dc

Samba 系列(五):将另一台 Ubuntu DC 服务器加入到 Samba DC 实现双域控主机模式

配置 linux 客户端来管理 samba4 dc

如果第一台 dc 服务器 192.168.1.254 网络不通,则调整配置文件中 dns 服务器 ip 地址的顺序,以免先查询这台不可用的 dns 服务器。

原文发布时间为:2017-03-31

本文来自云栖社区合作伙伴“linux中国”

继续阅读