Samba 系列(六):使用 Rsync 命令同步两个 Samba4 AD DC 之间的 SysVol 目录

需求:

1、在 Ubuntu 系统上使用 Samba4 来创建活动目录架构

2、在 Linux 命令行下管理 Samba4 AD 架构

3、使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构

4、在 Windows 下管理 Samba4 AD 域管制器 DNS 和组策略

5、将另一台 Ubuntu DC 服务器加入到 Samba4 AD DC 实现双域控主机模式

第一步:配置 DC 服务器时间同步

1、在两个域控制器之间复制 sysvol 目录的内容之前,你得保证这两个服务器时间设置准确且一致。

如果这两个服务器的时间延迟大于 5 分钟,并且时钟也不同步,你将会遇到 AD 账号和域复制的各种问题。

为了解决多个域控制器之间时间漂移的问题,你需要在服务器上执行如下命令来安装和配置 NTP 服务


  1. # apt-get install ntp

2、在 NTP 服务安装完成之后,打开主配置文件,把默认的 pool 值注释(在每行 pool 参数前添加 # ),并且添加新的 pool 值,指向已安装了 NTP 服务端的主 Samba4 AD DC FQDN,如下所示。


  1. # nano /etc/ntp.conf

把下面几行添加到 ntp.conf 配置文件。


  1. pool 0.ubuntu.pool.ntp.org iburst
  2. #pool 1.ubuntu.pool.ntp.org iburst
  3. #pool 2.ubuntu.pool.ntp.org iburst
  4. #pool 3.ubuntu.pool.ntp.org iburst
  5. pool adc1.tecmint.lan
  6. # Use Ubuntu's ntp server as a fallback.
  7. pool ntp.ubuntu.com

Samba4 配置 NTP 服务

3、先不要关闭该文件,在文件末尾添加如下内容,这是为了让其它客户端能够查询并与这个 NTP 服务器同步时间,并发出 NTP 签署请求,以防主 DC 离线:


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

4、最后,关闭并保存该配置文件,然后重启 NTP 服务以应用更改。等待几分钟后时间同步完成,执行 ntpq命令打印出 adc1 时间同步情况。


  1. # systemctl restart ntp
  2. # ntpq -p

与 Samba4 AD 同步 NTP 时间

第二步:通过 Rsync 命令来复制第一个 DC 服务器上的 SysVol 目录

默认情况下,Samba4 AD DC 不会通过 DFS-R(分布式文件系统复制Distributed File System Replication)或者FRS(文件复制服务File Replication Service)来复制 SysVol 目录。

这意味着只有在第一个域控制器联机时,组策略对象Group Policy objects才可用。否则组策略设置和登录脚本不会应用到已加入域的 Windosws 机器上。

为了克服这个障碍,以及基本实现 SysVol 目录复制的目的,我们通过执行一个基于 SSH 的身份认证并使用 SSH 加密通道的Linux 同步命令来从第一个域控制器安全地传输 GPO 对象到第二个域控制器。

这种方式能够确保 GPO 对象在域控制器之间的一致性,但是也有一个很大的缺点。它只能进行单向同步,因为在同步 GPO 目录的时候, rsync 命令会从源 DC 服务器传输所有的更改到目标 DC 服务器,

源 DC 服务器上不存在的组策略对象也会从目标 DC 服务器上删除,为了限制并避免任何冲突,所有的 GPO 编辑操作只能在第一个 DC 服务器上执行。

5、要进行 SysVol 复制,先到第一个 AD DC 服务器上生成 SSH 密钥,然后使用下面的命令把该密钥传输到第二个 DC 服务器。

在生成密钥的过程中不要设置密码,以便在无用户干预的情况下进行传输。


  1. # ssh-keygen -t RSA
  2. # ssh-copy-id root@adc2
  3. # ssh adc2
  4. # exit

在 Samba4 DC 服务器上生成 SSH 密钥

6、 当你确认 root 用户可以从第一个 DC 服务器以免密码方式登录到第二个 DC 服务器时,执行下面的 rsync命令,加上 --dry-run 参数来模拟 SysVol 复制过程。注意把对应的参数值替换成你自己的数据。


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

7、如果模拟复制过程正常,那么再次执行去掉 --dry-run 参数的 rsync 命令,来真实的在域控制器之间复制 GPO 对象。


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

Samba4 AD DC SysVol 复制

8、在 SysVol 复制完成之后,登录到目标域控制器,然后执行下面的命令来列出其中一个 GPO 对象目录的内容。

从第一个 DC 服务器上执行这个命令时,列出的 GPO 对象也要相同。


  1. # ls -alh /var/lib/samba/sysvol/your_domain/Policiers/

验证 Samba4 DC SysVol 复制结果是否正常

9、为了自动完成组策略复制的过程(通过网络传输 sysvol 目录),你可以使用 root 账号设置一个任务来执行同步命令,如下所示,设置为每隔 5 分钟执行一次该命令。


  1. # crontab -e

添加一条每隔 5 分钟运行的同步命令,并把执行结果以及错误信息输出到日志文件 /var/log/sysvol-replication.log 。如果执行命令异常,你可以查看该文件来定位问题。


  1. */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 权限有问题,你可以通过下面的命令来检测和修复这些异常。


  1. # samba-tool ntacl sysvolcheck
  2. # samba-tool ntacl sysvolreset

修复 SysVol ACL 权限问题

11、如果第一个 Samba4 AD DC 的 FSMO 角色,即“PDC 模拟器”不可用,你可以强制 Microsoft Windows系统上的组策略管理控制台只连接到第二个域控制器,通过选择更改域控制器选项和手动选择目标机器,如下图所示。

更改 Samba4 域控制器

选择 Samba4 域控制器

当你从组策略管理控制台连接到第二个 DC 服务器时,你应该避免对组策略做任何更改。否则,当第一个 DC 服务器恢复正常后, rsync 命令将会删除在第二个 DC 服务器上所做的更改。

原文发布时间为:2017-04-08

本文来自合作伙伴“Linux中国”

时间: 2025-01-31 02:09:01

Samba 系列(六):使用 Rsync 命令同步两个 Samba4 AD DC 之间的 SysVol 目录的相关文章

使用Rsync命令同步两个Samba4 AD DC之间的SysVol目录

这篇文章讲的是在两个 Samba4 活动目录域控制器之间,通过一些强大的 Linux 工具来完成 SysVol 的复制操作,比如 Rsync 数据同步工具,Cron 任务调度进程和 SSH 协议. 需求: 1.在 Ubuntu 系统上使用 Samba4 来创建活动目录架构 2.在 Linux 命令行下管理 Samba4 AD 架构 3.使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构 4.在 Windows 下管理 Samba4 AD 域管制器 DNS 和组策略

Samba 系列(二):在 Linux 命令行下管理 Samba4 AD 架构

这篇文章包括了管理 Samba4 域控制器架构过程中的一些常用命令,比如添加.移除.禁用或者列出用户及用户组等. 我们也会关注一下如何配置域安全策略以及如何把 AD 用户绑定到本地的 PAM 认证中,以实现 AD 用户能够在 Linux 域控制器上进行本地登录. 要求 在 Ubuntu 系统上使用 Samba4 来创建活动目录架构 第一步:在命令行下管理 1. 可以通过 samba-tool 命令行工具来进行管理,这个工具为域管理工作提供了一个功能强大的管理接口. 通过 samba-tool 命

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

这篇文章将讲解如何使用 Ubuntu 16.04 服务器版系统来创建第二台 Samba4 域控制器,并将其加入到已创建好的 Samba AD DC 林环境中,以便为一些关键的 AD DC 服务提供负载均衡及故障切换功能,尤其是为那些重要的服务,比如 DNS 服务和使用 SAM 数据库的 AD DC LDAP 模式. 需求 这篇文章是 Samba4 AD DC 系列的第五篇,前边几篇如下: 1.在 Ubuntu 系统上使用 Samba4 来创建活动目录架构 2.在 Linux 命令行下管理 Sam

在Linux命令行下管理Samba4 AD架构

这篇文章包括了管理 Samba4 域控制器架构过程中的一些常用命令,比如添加.移除.禁用或者列出用户及用户组等. 我们也会关注一下如何配置域安全策略以及如何把 AD 用户绑定到本地的 PAM 认证中,以实现 AD 用户能够在 Linux 域控制器上进行本地登录. 要求 在 Ubuntu 系统上使用 Samba4 来创建活动目录架构 第一步:在命令行下管理 1. 可以通过 samba-tool 命令行工具来进行管理,这个工具为域管理工作提供了一个功能强大的管理接口. 通过 samba-tool 命

使用rsync命令同步指定的文件配置

有时需要把所有的文件同步到指定目录下,包括子目录. 执行之前确认要同步的文件名. # rsync -avmn --include='*/' --include='*.pdf' --exclude='*' /SRC/ /DEST/ 以下的2个命令的执行结果是一样的,把SRC目录下的指定文件(在这里是所有的pdf文件,包括子目录下),同步到DEST目录下,但是不同步空目录. # rsync -avm --include='*/' --include='*.pdf' --exclude='*' /SR

Samba 系列(七):在 Samba AD DC 服务器上创建共享目录并映射到 Windows/Linux 客户

需求: 1.在 Ubuntu 系统上使用 Samba4 来创建活动目录架构 2.在 Linux 命令行下管理 Samba4 AD 架构 3.使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构 4.在 Windows 下管理 Samba4 AD 域管制器 DNS 和组策略 5.将另一台 Ubuntu DC 服务器加入到 Samba4 AD DC 实现双域控主机模式 6.使用 Rsync 命令同步两个 Samba4 AD DC 之间的 SysVol 目录 第一步:创建

Samba 系列(三):使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构

这一节的Samba4 AD DC 架构系列文章,我们将会讨论如何把 Windows 10 系统的电脑添加到 Samba4 域环境中,以及如何在 Windows 10 系统下管理域环境. 一旦 Windows 10 系统加入到 Samba4 AD DC ,我们就可以在 Windows 10 系统中创建.删除或者禁用域用户和组了,可以创建新的组织单元,创建.编辑和管理域策略,还可以管理 Samba4 域 DNS 服务. 上面所有的功能和其它一些复杂的与域管理相关的工作都可以通过 Windows 环境

Samba 系列(四):在 Windows 下管理 Samba4 AD 域管制器 DNS 和组策略

要求 1. 在 Ubuntu 16.04 系统上使用 Samba4 软件来创建活动目录架构(一) 2. 在 Linux 命令行下管理 Samba4 AD 架构(二) 3. 使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构 (三) 第 1 步:管理 Samba DNS 服务器 Samba4 AD DC 使用内部的 DNS 解析器模块,该模块在初始化域提供的过程中创建(如果 BIND9 DLZ 模块未指定使用的情况下). Samba4 内部的 DNS 模块支持 AD

Samba 系列(九):将 CentOS 7 桌面系统加入到 Samba4 AD 域环境中

这篇文章讲述了如何使用 Authconfig-gtk 工具将 CentOS 7 桌面系统加入到 Samba4 AD 域环境中,并使用域帐号登录到 CentOS 系统. 要求 1.在 Ubuntu 系统中使用 Samba4 创建活动目录架构 2.CentOS 7.3 安装指南 第一步:在 CentOS 系统中配置 Samba4 AD DC 1.在将 CentOS 7 加入到 Samba4 域环境之前,你得先配置 CentOS 系统的网络环境,确保在 CentOS 系统中通过 DNS 可以解析到域名