使用Rsync命令同步兩個(gè)Samba4 AD DC之間的SysVol目錄
這篇文章講的是在兩個(gè) Samba4 活動(dòng)目錄域控制器之間,通過(guò)一些強(qiáng)大的 Linux 工具來(lái)完成 SysVol 的復(fù)制操作,比如 Rsync 數(shù)據(jù)同步工具,Cron 任務(wù)調(diào)度進(jìn)程和 SSH 協(xié)議。
需求:
1、在 Ubuntu 系統(tǒng)上使用 Samba4 來(lái)創(chuàng)建活動(dòng)目錄架構(gòu)
2、在 Linux 命令行下管理 Samba4 AD 架構(gòu)
3、使用 Windows 10 的 RSAT 工具來(lái)管理 Samba4 活動(dòng)目錄架構(gòu)
4、在 Windows 下管理 Samba4 AD 域管制器 DNS 和組策略
5、將另一臺(tái) Ubuntu DC 服務(wù)器加入到 Samba4 AD DC 實(shí)現(xiàn)雙域控主機(jī)模式
***步:配置 DC 服務(wù)器時(shí)間同步
1、在兩個(gè)域控制器之間復(fù)制 sysvol 目錄的內(nèi)容之前,你得保證這兩個(gè)服務(wù)器時(shí)間設(shè)置準(zhǔn)確且一致。
如果這兩個(gè)服務(wù)器的時(shí)間延遲大于 5 分鐘,并且時(shí)鐘也不同步,你將會(huì)遇到 AD 賬號(hào)和域復(fù)制的各種問(wèn)題。
為了解決多個(gè)域控制器之間時(shí)間漂移的問(wèn)題,你需要在服務(wù)器上執(zhí)行如下命令來(lái)安裝和配置 NTP 服務(wù)。
- # apt-get install ntp
2、在 NTP 服務(wù)安裝完成之后,打開(kāi)主配置文件,把默認(rèn)的 pool 值注釋(在每行 pool 參數(shù)前添加 # ),并且添加新的 pool 值,指向已安裝了 NTP 服務(wù)端的主 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
Samba4 配置 NTP 服務(wù)
3、先不要關(guān)閉該文件,在文件末尾添加如下內(nèi)容,這是為了讓其它客戶端能夠查詢并與這個(gè) NTP 服務(wù)器同步時(shí)間,并發(fā)出 NTP 簽署請(qǐng)求,以防主 DC 離線:
- restrict source notrap nomodify noquery mssntp
- ntpsigndsocket /var/lib/samba/ntp_signd/
4、***,關(guān)閉并保存該配置文件,然后重啟 NTP 服務(wù)以應(yīng)用更改。等待幾分鐘后時(shí)間同步完成,執(zhí)行 ntpq 命令打印出 adc1 時(shí)間同步情況。
- # systemctl restart ntp
- # ntpq -p
與 Samba4 AD 同步 NTP 時(shí)間
第二步:通過(guò) Rsync 命令來(lái)復(fù)制***個(gè) DC 服務(wù)器上的 SysVol 目錄
默認(rèn)情況下,Samba4 AD DC 不會(huì)通過(guò) DFS-R(分布式文件系統(tǒng)復(fù)制Distributed File System Replication)或者 FRS(文件復(fù)制服務(wù)File Replication Service)來(lái)復(fù)制 SysVol 目錄。
這意味著只有在***個(gè)域控制器聯(lián)機(jī)時(shí),組策略對(duì)象Group Policy objects才可用。否則組策略設(shè)置和登錄腳本不會(huì)應(yīng)用到已加入域的 Windosws 機(jī)器上。
為了克服這個(gè)障礙,以及基本實(shí)現(xiàn) SysVol 目錄復(fù)制的目的,我們通過(guò)執(zhí)行一個(gè)基于 SSH 的身份認(rèn)證并使用 SSH 加密通道的Linux 同步命令來(lái)從***個(gè)域控制器安全地傳輸 GPO 對(duì)象到第二個(gè)域控制器。
這種方式能夠確保 GPO 對(duì)象在域控制器之間的一致性,但是也有一個(gè)很大的缺點(diǎn)。它只能進(jìn)行單向同步,因?yàn)樵谕?GPO 目錄的時(shí)候, rsync 命令會(huì)從源 DC 服務(wù)器傳輸所有的更改到目標(biāo) DC 服務(wù)器,
源 DC 服務(wù)器上不存在的組策略對(duì)象也會(huì)從目標(biāo) DC 服務(wù)器上刪除,為了限制并避免任何沖突,所有的 GPO 編輯操作只能在***個(gè) DC 服務(wù)器上執(zhí)行。
5、要進(jìn)行 SysVol 復(fù)制,先到***個(gè) AD DC 服務(wù)器上生成 SSH 密鑰,然后使用下面的命令把該密鑰傳輸?shù)降诙€(gè) DC 服務(wù)器。
在生成密鑰的過(guò)程中不要設(shè)置密碼,以便在無(wú)用戶干預(yù)的情況下進(jìn)行傳輸。
- # ssh-keygen -t RSA
- # ssh-copy-id root@adc2
- # ssh adc2
- # exit
在 Samba4 DC 服務(wù)器上生成 SSH 密鑰
6、 當(dāng)你確認(rèn) root 用戶可以從***個(gè) DC 服務(wù)器以免密碼方式登錄到第二個(gè) DC 服務(wù)器時(shí),執(zhí)行下面的 rsync 命令,加上 --dry-run 參數(shù)來(lái)模擬 SysVol 復(fù)制過(guò)程。注意把對(duì)應(yīng)的參數(shù)值替換成你自己的數(shù)據(jù)。
- # rsync --dry-run -XAavz --chmod=775 --delete-after --progress --stats /var/lib/samba/sysvol/ root@adc2:/var/lib/samba/sysvol/
7、如果模擬復(fù)制過(guò)程正常,那么再次執(zhí)行去掉 --dry-run 參數(shù)的 rsync 命令,來(lái)真實(shí)的在域控制器之間復(fù)制 GPO 對(duì)象。
- # rsync -XAavz --chmod=775 --delete-after --progress --stats /var/lib/samba/sysvol/ root@adc2:/var/lib/samba/sysvol/
Samba4 AD DC SysVol 復(fù)制
8、在 SysVol 復(fù)制完成之后,登錄到目標(biāo)域控制器,然后執(zhí)行下面的命令來(lái)列出其中一個(gè) GPO 對(duì)象目錄的內(nèi)容。
從***個(gè) DC 服務(wù)器上執(zhí)行這個(gè)命令時(shí),列出的 GPO 對(duì)象也要相同。
- # ls -alh /var/lib/samba/sysvol/your_domain/Policiers/
驗(yàn)證 Samba4 DC SysVol 復(fù)制結(jié)果是否正常
9、為了自動(dòng)完成組策略復(fù)制的過(guò)程(通過(guò)網(wǎng)絡(luò)傳輸 sysvol 目錄),你可以使用 root 賬號(hào)設(shè)置一個(gè)任務(wù)來(lái)執(zhí)行同步命令,如下所示,設(shè)置為每隔 5 分鐘執(zhí)行一次該命令。
- # crontab -e
添加一條每隔 5 分鐘運(yùn)行的同步命令,并把執(zhí)行結(jié)果以及錯(cuò)誤信息輸出到日志文件 /var/log/sysvol-replication.log 。如果執(zhí)行命令異常,你可以查看該文件來(lái)定位問(wèn)題。
- */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 權(quán)限有問(wèn)題,你可以通過(guò)下面的命令來(lái)檢測(cè)和修復(fù)這些異常。
- # samba-tool ntacl sysvolcheck
- # samba-tool ntacl sysvolreset
修復(fù) SysVol ACL 權(quán)限問(wèn)題
11、如果***個(gè) Samba4 AD DC 的 FSMO 角色,即“PDC 模擬器”不可用,你可以強(qiáng)制 Microsoft Windows 系統(tǒng)上的組策略管理控制臺(tái)只連接到第二個(gè)域控制器,通過(guò)選擇更改域控制器選項(xiàng)和手動(dòng)選擇目標(biāo)機(jī)器,如下圖所示。
更改 Samba4 域控制器
選擇 Samba4 域控制器
當(dāng)你從組策略管理控制臺(tái)連接到第二個(gè) DC 服務(wù)器時(shí),你應(yīng)該避免對(duì)組策略做任何更改。否則,當(dāng)***個(gè) DC 服務(wù)器恢復(fù)正常后, rsync 命令將會(huì)刪除在第二個(gè) DC 服務(wù)器上所做的更改。