Linux中國

Samba 系列(六):使用 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 和組策略

5、將另一台 Ubuntu DC 伺服器加入到 Samba4 AD DC 實現雙域控主機模式

第一步:配置 DC 伺服器時間同步

1、在兩個域控制器之間複製 sysvol 目錄的內容之前,你得保證這兩個伺服器時間設置準確且一致。

如果這兩個伺服器的時間延遲大於 5 分鐘,並且時鐘也不同步,你將會遇到 AD 賬號和域複製的各種問題。

為了解決多個域控制器之間時間漂移的問題,你需要在伺服器上執行如下命令來安裝和配置 NTP 服務

# apt-get install ntp

2、在 NTP 服務安裝完成之後,打開主配置文件,把默認的 pool 值注釋(在每行 pool 參數前添加 # ),並且添加新的 pool 值,指向已安裝了 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

Configure NTP for Samba4

Samba4 配置 NTP 服務

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

Synchronize NTP Time with Samba4 AD

與 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 伺服器。

在生成密鑰的過程中不要設置密碼,以便在無用戶干預的情況下進行傳輸。

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

Generate SSH Key on Samba4 DC

在 Samba4 DC 伺服器上生成 SSH 密鑰

6、 當你確認 root 用戶可以從第一個 DC 伺服器以免密碼方式登錄到第二個 DC 伺服器時,執行下面的 rsync 命令,加上 --dry-run 參數來模擬 SysVol 複製過程。注意把對應的參數值替換成你自己的數據。

# 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 對象。

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

Samba4 AD DC SysVol Replication

Samba4 AD DC SysVol 複製

8、在 SysVol 複製完成之後,登錄到目標域控制器,然後執行下面的命令來列出其中一個 GPO 對象目錄的內容。

從第一個 DC 伺服器上執行這個命令時,列出的 GPO 對象也要相同。

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

Verify Samba4 DC SysVol Replication

驗證 Samba4 DC SysVol 複製結果是否正常

9、為了自動完成組策略複製的過程(通過網路傳輸 sysvol 目錄),你可以使用 root 賬號設置一個任務來執行同步命令,如下所示,設置為每隔 5 分鐘執行一次該命令。

# crontab -e 

添加一條每隔 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

Fix SysVol ACL Permissions

修復 SysVol ACL 許可權問題

11、如果第一個 Samba4 AD DCFSMO 角色,即「PDC 模擬器」不可用,你可以強制 Microsoft Windows 系統上的組策略管理控制台只連接到第二個域控制器,通過選擇更改域控制器選項和手動選擇目標機器,如下圖所示。

Change Samba4 Domain Controller

更改 Samba4 域控制器

Select Samba4 Domain Controller

選擇 Samba4 域控制器

當你從組策略管理控制台連接到第二個 DC 伺服器時,你應該避免對組策略做任何更改。否則,當第一個 DC 伺服器恢復正常後, rsync 命令將會刪除在第二個 DC 伺服器上所做的更改。

作者簡介:

Matei Cezar -- 我是一個電腦迷,開源軟體和 Linux 系統愛好者,有超過 4 年的 Linux 桌面、伺服器版本系統和 bash 編程經驗。

via: http://www.tecmint.com/samba4-ad-dc-sysvol-replication/

作者:Matei Cezar 譯者:rusking 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國