网站搜索

使用 Rsync 设置跨两个 Samba4 AD DC 的 SysVol 复制 - 第 6 部分


本主题将介绍借助一些强大的 Linux 工具(例如 Rsync 文件同步实用程序、Cron 调度守护程序和 SSH)在两个 Samba4 Active Directory 域控制器之间执行的 SysVol 复制协议。

要求:

  1. 将 Ubuntu 16.04 作为附加域控制器加入 Samba4 AD DC – 第 5 部分

步骤一:跨DC精确时间同步

1. 在开始跨两个域控制器复制 sysvol 目录的内容之前,您需要为这些计算机提供准确的时间。

如果两个方向的延迟都超过 5 分钟,并且它们的时钟未正确同步,您应该开始遇到 AD 帐户和域复制的各种问题。

要克服两个或多个域控制器之间的时间漂移问题,您需要通过执行以下命令在计算机上安装和配置 NTP 服务器。

apt-get install ntp

2.安装NTP守护程序后,打开主配置文件,注释默认池(在每个池行前面添加#)并添加一个新池将指向安装了 NTP 服务器的主 Samba4 AD DC FQDN,如以下示例所示。

nano /etc/ntp.conf

将以下行添加到 ntp.conf 文件中。

pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

pool adc1.tecmint.lan

Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com

3. 暂时不要关闭文件,移动到文件底部并添加以下行,以便其他客户端能够查询并与此 NTP 服务器同步时间,并发出签名NTP 请求,以防主 DC 离线:

restrict source notrap nomodify noquery mssntp
ntpsigndsocket /var/lib/samba/ntp_signd/

4. 最后,保存并关闭配置文件并重新启动 NTP 守护程序以应用更改。等待几秒钟或几分钟的时间进行同步并发出 ntpq 命令,以打印同步的 adc1 对等点的当前摘要状态。

systemctl restart ntp
ntpq -p

步骤 2:通过 Rsync 使用第一个 DC 进行 SysVol 复制

默认情况下,Samba4 AD DC 不通过 DFS-R 执行 SysVol 复制(分布式文件系统复制)或FRS文件复制服务)。

这意味着仅当第一个域控制器在线时组策略对象才可用。如果第一个 DC 不可用,组策略设置和登录脚本将不再适用于注册到域中的 Windows 计算机。

为了克服这一障碍并实现基本形式的 SysVol 复制,我们将安排 Linux rsync 命令与基于密钥的 SSH 身份验证的 SSH 加密隧道相结合,以便安全地从第一个域控制器传输 GPO 对象到第二个域控制器。

此方法可确保域控制器之间的GPO对象一致性,但有一个巨大的缺点。它仅在一个方向上起作用,因为在同步 GPO 目录时,rsync 会将所有更改从源 DC 传输到目标 DC。

源上不再存在的对象也将从目标中删除。为了限制和避免任何冲突,所有 GPO 编辑都应仅在第一个 DC 上进行。

5. 要启动 SysVol 复制过程,首先在第一个 Samba AD DC 上生成 SSH 密钥,然后通过发出以下命令将该密钥传输到第二个 DC。

请勿为此密钥使用密码,以便安排的传输能够在没有用户干扰的情况下运行。

ssh-keygen -t RSA  
ssh-copy-id root@adc2  
ssh adc2 
exit 

6. 在确保第一个 DC 的 root 用户可以自动登录第二个 DC 后,运行以下 Rsync 命令带有 --dry-run 参数以模拟 SysVol 复制。相应地替换adc2

rsync --dry-run -XAavz --chmod=775 --delete-after  --progress --stats  /var/lib/samba/sysvol/ root@adc2:/var/lib/samba/sysvol/

7. 如果模拟过程按预期工作,请再次运行 rsync 命令(不带 --dry-run 选项),以便在域控制器上实际复制 GPO 对象。

rsync -XAavz --chmod=775 --delete-after  --progress --stats  /var/lib/samba/sysvol/ root@adc2:/var/lib/samba/sysvol/

8. SysVol 复制过程完成后,登录到目标域控制器并通过运行以下命令列出 GPO 对象目录之一的内容。

第一个 DC 中的相同 GPO 对象也应该复制到此处。

ls -alh /var/lib/samba/sysvol/your_domain/Policiers/

9. 要自动执行组策略复制过程(通过网络传输 sysvol 目录),请通过发出以下命令来安排 root 作业每 5 分钟运行一次之前使用的 rsync 命令命令。

crontab -e 

添加 rsync 命令以每 5 分钟运行一次,并将命令的输出(包括错误)定向到日志文件 /var/log/sysvol-replication.log 。以防万一出现问题预计您应该查阅此文件以解决问题。

*/5 * * * * rsync -XAavz --chmod=775 --delete-after  --progress --stats  /var/lib/samba/sysvol/ root@adc2:/var/lib/samba/sysvol/ > /var/log/sysvol-replication.log 2>&1

10.假设将来会出现一些与SysVol ACL权限相关的问题,您可以运行以下命令来检测并修复这些错误。

samba-tool ntacl sysvolcheck
samba-tool ntacl sysvolreset

11. 如果第一个具有 FSMO 角色作为“PDC Emulator”的 Samba4 AD DC 不可用,您可以通过选择“更改域控制器”选项并手动选择目标计算机,强制安装在 Microsoft Windows 系统上的组策略管理控制台仅连接到第二个域控制器,如下图所示。

组策略管理控制台连接到第二个DC时,您应该避免对您的域组策略进行任何修改。当第一个DC再次可用时,rsync 命令将销毁在第二个域控制器上所做的所有更改。