Samba 系列(六):使用 Rsync 命令同步兩個 Samba4 AD DC 之間的 SysVol 目錄
這篇文章講的是在兩個 Samba4 活動目錄域控制器之間,透過一些強大的 Linux 工具來完成 SysVol 的複製操作,比如 Rsync 資料同步工具,Cron 任務排程程式和 SSH 協議。
需求:
1、在 Ubuntu 系統上使用 Samba4 來建立活動目錄架構
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
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
與 Samba4 AD 同步 NTP 時間
第二步:透過 Rsync 命令來複制第一個 DC 伺服器上的 SysVol 目錄
預設情況下,Samba4 AD DC 不會透過 DFS-R(分散式檔案系統複製)或者 FRS(檔案複製服務)來複制 SysVol 目錄。
這意味著只有在第一個域控制器聯機時,組策略物件才可用。否則組策略設定和登入指令碼不會應用到已加入域的 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
在 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 複製
8、在 SysVol 複製完成之後,登入到目標域控制器,然後執行下面的命令來列出其中一個 GPO 物件目錄的內容。
從第一個 DC 伺服器上執行這個命令時,列出的 GPO 物件也要相同。
# ls -alh /var/lib/samba/sysvol/your_domain/Policiers/
驗證 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
修復 SysVol ACL 許可權問題
11、如果第一個 Samba4 AD DC 的 FSMO 角色,即“PDC 模擬器”不可用,你可以強制 Microsoft Windows 系統上的組策略管理控制檯只連線到第二個域控制器,透過選擇更改域控制器選項和手動選擇目標機器,如下圖所示。
更改 Samba4 域控制器
選擇 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
相關文章
- Samba 系列(三):使用 Windows 10 的 RSAT 工具來管理 Samba4 活動目錄架構SambaWindows架構
- Samba 系列(二):在 Linux 命令列下管理 Samba4 AD 架構SambaLinux命令列架構
- rsync 同步目錄
- 【命令使用】rsync跳過大目錄
- rsync用於同步目錄
- Samba 系列(七):在 Samba AD DC 伺服器上建立共享目錄並對映到 Windows/Linux 客戶Samba伺服器WindowsLinux
- 怎樣利用linux rsync 同步不同Server上的兩個目錄下的檔案LinuxServer
- Samba 系列(九):將 CentOS 7 桌面系統加入到 Samba4 AD 域環境中SambaCentOS
- rsync 設定Linux下目錄同步[final]Linux
- rsync同步時,刪除目標目錄比源目錄多餘檔案的方法(--delete)delete
- iPhone的兩個目錄。iPhone
- Windows Linux 之間rsync同步CODE檔案WindowsLinux
- CSS系列之目錄CSS
- rsync 自動建立目錄的坑點
- 使用rsync同步資料
- Linux中使用rsync——檔案和目錄排除列表Linux
- samba服務的配置(linux共享目錄)SambaLinux
- 自動建立samba目錄的shell指令碼Samba指令碼
- 前端優化系列之目錄前端優化
- Samba共享目錄的多使用者許可權設定案例Samba
- 在兩個資料庫之間進行資料同步資料庫
- windows透過samba訪問aix的共享目錄WindowsSambaAI
- 兩個目錄中,刪除其中一個目錄中同名檔案的做法
- rsync 檔案同步工具配置記錄(zt)
- rsync排除多個檔案同步
- Python rsync 伺服器之間資料夾同步指令碼Python伺服器指令碼
- 【rsync】使用rsync命令提高檔案傳輸效率
- 使用rsync同步網路備份
- rewrite實現目錄之間的跳轉
- scp命令 用於Linux之間複製檔案和目錄Linux
- Linux 檔案同步工具之 rsyncLinux
- 常用的linux60個命令目錄Linux
- LINUX檢視目錄剩餘空間的命令Linux
- rsync+inotify實時同步環境部署記錄
- rsync同步配置
- hadoop 目錄給某個使用者授權Hadoop
- 探索C#之系列目錄導航C#
- redis系列目錄Redis