這篇文章講的是在兩個(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ù)安裝完成之后,打開主配置文件,把默認(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)?shù)谝粋€(gè)DC服務(wù)器恢復(fù)正常后,rsync 命令將會(huì)刪除在第二個(gè) DC 服務(wù)器上所做的更改。
作者簡(jiǎn)介:
Matei Cezar -- 我是一個(gè)電腦迷,開源軟件和 Linux 系統(tǒng)愛(ài)好者,有超過(guò) 4 年的 Linux 桌面、服務(wù)器版本系統(tǒng)和 bash 編程經(jīng)驗(yàn)。
via:http://www.tecmint.com/samba4-ad-dc-sysvol-replication/
作者:Matei Cezar譯者:rusking校對(duì):jasminepeng
本文由LCTT原創(chuàng)編譯,Linux中國(guó)榮譽(yù)推出