閱讀512 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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 命令行下管理 Samba4 AD 架構

3、使用 Windows 10 的 RSAT 工具來管理 Samba4 活動目錄架構

4、在 Windows 下管理 Samba4 AD 域管製器 DNS 和組策略

第一步:為設置 Samba4 進行初始化配置

1、在開始把第二個 DC 服務器加入到 Samba4 AD DC 域環境之前,你需要注意一些初始化設置信息,首先,確保這個新係統的主機名包含描述性名稱。

假設第一個域服務器的主機名叫做 adc1 ,你可以把第二個域服務器命名為 adc2,以保持域控製器名稱的一致性。

執行下麵的命令來修改係統主機名


  1. # hostnamectl set-hostname adc2

或者你也可以手動編輯 /etc/hostname 文件,在新的一行輸入你想設置的主機名。


  1. # nano /etc/hostname

這裏添加主機名。


  1. adc2

2、下一步,打開本地係統解析文件並添加一個條目,包含主域控製器的 IP 地址和 FQDN 名稱。如下圖所示:

在這篇教程中,主域控服務器的主機名為 adc1.tecmint.lan ,其對應的 IP 地址為 192.168.1.254 。


  1. # nano /etc/hosts

添加如下行:


  1. IP_of_main_DC FQDN_of_main_DC short_name_of_main_DC

為 Samba4 AD DC 服務器設置主機名

為 Samba4 AD DC 服務器設置主機名

3、下一步,打開 /etc/network/interfaces 配置文件並設置一個靜態 IP 地址,如下圖所示:

注意 dns-nameservers 和 dns-search 這兩個參數的值。為了使 DNS 解析正常工作,需要把這兩個值設置成主 Samba4 AD DC 服務器的 IP 地址和域名。

重啟網卡服務以讓修改的配置生效。檢查 /etc/resolv.conf 文件,確保該網卡上配置的這兩個 DNS 的值已更新到這個文件。


  1. # nano /etc/network/interfaces

編輯並替換你自定義的 IP 設置:


  1. auto ens33
  2. iface ens33 inet static
  3. address 192.168.1.253
  4. netmask 255.255.255.0
  5. brodcast 192.168.1.1
  6. gateway 192.168.1.1
  7. dns-nameservers 192.168.1.254
  8. dns-search tecmint.lan

重啟網卡服務並確認生效。


  1. # systemctl restart networking.service
  2. # cat /etc/resolv.conf

配置 Samba4 AD 服務器的 DNS

配置 Samba4 AD 服務器的 DNS

當你通過簡寫名稱(用於構建 FQDN 名)查詢主機名時, dns-search 值將會自動把域名添加上。

4、為了測試 DNS 解析是否正常,使用一係列 ping 命令測試,命令後分別為簡寫名, FQDN 名和域名,如下圖所示:

在所有測試用例中,Samba4 AD DC DNS 服務器都應該返回主域控服務器的 IP 地址。

驗證 Samba4 AD 環境 DNS 解析是否正常

驗證 Samba4 AD 環境 DNS 解析是否正常

5、最後你需要注意的是確保這個主機跟域控服務器時間同步。你可以通過下麵的命令在係統上安裝 NTP 客戶端工具來實現時間同步功能:


  1. # apt-get install ntpdate

6、假設你想手動強製本地服務器與 samba4 AD DC 服務器時間同步,使用 ntpdate 命令加上主域控服務器的主機名,如下所示:


  1. # ntpdate adc1

與 Samba4 AD 服務器進行時間同步

與 Samba4 AD 服務器進行時間同步

第 2 步:安裝 Samba4 必須的依賴包

7、為了讓 Ubuntu 16.04 係統加入到你的域中,你需要通過下麵的命令從 Ubuntu 官方軟件庫中安裝 Samba4 套件、 Kerberos 客戶端 和其它一些重要的軟件包以便將來使用:


  1. # apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind

在 Ubuntu 係統中安裝 Samba4

在 Ubuntu 係統中安裝 Samba4

8、在安裝的過程中,你需要提供 Kerberos 域名。輸入大寫的域名然後按回車鍵完成安裝過程。

為 Samba4 配置 Kerberos 認證

為 Samba4 配置 Kerberos 認證

9、所有依賴包安裝完成後,通過使用 kinit 命令為域管理員請求一個 Kerberos 票據以驗證設置是否正確。使用 klist 命令來列出已授權的 kerberos 票據信息。


  1. # kinit domain-admin-user@YOUR_DOMAIN.TLD
  2. # klist

在 Samba4 域環境中驗證 Kerberos

在 Samba4 域環境中驗證 Kerberos

第 3 步:以域控製器的身份加入到 Samba4 AD DC

10、在把你的機器集成到 Samba4 DC 環境之前,先把係統中所有運行著的 Samba4 服務停止,並且重命名默認的 Samba 配置文件以便從頭開始。在域控製器配置的過程中, Samba 將會創建一個新的配置文件。


  1. # systemctl stop samba-ad-dc smbd nmbd winbind
  2. # mv /etc/samba/smb.conf /etc/samba/smb.conf.initial

11、在準備加入域前,先啟動 samba-ad-dc 服務,之後使用域管理員賬號運行 samba-tool 命令將服務器加入到域。


  1. # samba-tool domain join your_domain -U "your_domain_admin"

加入域過程部分截圖:


  1. # samba-tool domain join tecmint.lan DC -U "tecmint_user"

輸出示例:


  1. Finding a writeable DC for domain 'tecmint.lan'
  2. Found DC adc1.tecmint.lan
  3. Password for [WORKGROUP\tecmint_user]:
  4. workgroup is TECMINT
  5. realm is tecmint.lan
  6. checking sAMAccountName
  7. Deleted CN=ADC2,CN=Computers,DC=tecmint,DC=lan
  8. Adding CN=ADC2,OU=Domain Controllers,DC=tecmint,DC=lan
  9. Adding CN=ADC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=tecmint,DC=lan
  10. Adding CN=NTDS Settings,CN=ADC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=tecmint,DC=lan
  11. Adding SPNs to CN=ADC2,OU=Domain Controllers,DC=tecmint,DC=lan
  12. Setting account password for ADC2$
  13. Enabling account
  14. Calling bare provision
  15. Looking up IPv4 addresses
  16. Looking up IPv6 addresses
  17. No IPv6 address will be assigned
  18. Setting up share.ldb
  19. Setting up secrets.ldb
  20. Setting up the registry
  21. Setting up the privileges database
  22. Setting up idmap db
  23. Setting up SAM db
  24. Setting up sam.ldb partitions and settings
  25. Setting up sam.ldb rootDSE
  26. Pre-loading the Samba 4 and AD schema
  27. A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
  28. Provision OK for domain DN DC=tecmint,DC=lan
  29. Starting replication
  30. Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[402/1550] linked_values[0/0]
  31. Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[804/1550] linked_values[0/0]
  32. Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[1206/1550] linked_values[0/0]
  33. Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[1550/1550] linked_values[0/0]
  34. Analyze and apply schema objects
  35. Partition[CN=Configuration,DC=tecmint,DC=lan] objects[402/1614] linked_values[0/0]
  36. Partition[CN=Configuration,DC=tecmint,DC=lan] objects[804/1614] linked_values[0/0]
  37. Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1206/1614] linked_values[0/0]
  38. Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1608/1614] linked_values[0/0]
  39. Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1614/1614] linked_values[28/0]
  40. Replicating critical objects from the base DN of the domain
  41. Partition[DC=tecmint,DC=lan] objects[97/97] linked_values[24/0]
  42. Partition[DC=tecmint,DC=lan] objects[380/283] linked_values[27/0]
  43. Done with always replicated NC (base, config, schema)
  44. Replicating DC=DomainDnsZones,DC=tecmint,DC=lan
  45. Partition[DC=DomainDnsZones,DC=tecmint,DC=lan] objects[45/45] linked_values[0/0]
  46. Replicating DC=ForestDnsZones,DC=tecmint,DC=lan
  47. Partition[DC=ForestDnsZones,DC=tecmint,DC=lan] objects[18/18] linked_values[0/0]
  48. Committing SAM database
  49. Sending DsReplicaUpdateRefs for all the replicated partitions
  50. Setting isSynchronized and dsServiceName
  51. Setting up secrets database
  52. Joined domain TECMINT (SID S-1-5-21-715537322-3397311598-55032968) as a DC

把域加入到 Samba4 AD DC

把域加入到 Samba4 AD DC

12、在已安裝了 Samba4 套件的 Ubuntu 係統加入域之後,打開 Samba 主配置文件添加如下行:


  1. # nano /etc/samba/smb.conf

添加以下內容到 smb.conf 配置文件中。


  1. dns forwarder = 192.168.1.1
  2. idmap_ldb:use rfc2307 = yes
  3. template shell = /bin/bash
  4. winbind use default domain = true
  5. winbind offline logon = false
  6. winbind nss info = rfc2307
  7. winbind enum users = yes
  8. winbind enum groups = yes

使用你自己的 DNS 轉發器 IP 地址替換掉上麵 dns forwarder 地址。 Samba 將會把域權威區之外的所有 DNS 解析查詢轉發到這個 IP 地址。

13、最後,重啟 samba 服務以使修改的配置生效,然後執行如下命令來檢查活動目錄複製功能是否正常。


  1. # systemctl restart samba-ad-dc
  2. # samba-tool drs showrepl

配置 Samba4 DNS

配置 Samba4 DNS

14、另外,還需要重命名原來的 /etc下的 kerberos 配置文件,並使用在加入域的過程中 Samba 生成的新配置文件 krb5.conf 替換它。

Samba 生成的新配置文件在 /var/lib/samba/private 目錄下。使用 Linux 的符號鏈接將該文件鏈接到/etc 目錄。


  1. # mv /etc/krb6.conf /etc/krb5.conf.initial
  2. # ln -s /var/lib/samba/private/krb5.conf /etc/
  3. # cat /etc/krb5.conf

配置 Kerberos

配置 Kerberos

15、同樣,使用 samba 的 krb5.conf 配置文件驗證 Kerberos 認證是否正常。通過以下命令來請求一個管理員賬號的票據並且列出已緩存的票據信息。


  1. # kinit administrator
  2. # klist

使用 Samba 驗證 Kerberos 認證是否正常

使用 Samba 驗證 Kerberos 認證是否正常

第 4 步:驗證其它域服務

16、你首先要做的一個測試就是驗證 Samba4 DC DNS 解析服務是否正常。要驗證域 DNS 解析情況,使用host 命令,加上一些重要的 AD DNS 記錄,進行域名查詢,如下圖所示:

每一次查詢,DNS 服務器都應該返回兩個 IP 地址。


  1. # host your_domain.tld
  2. # host -t SRV _kerberos._udp.your_domain.tld # UDP Kerberos SRV record
  3. # host -t SRV _ldap._tcp.your_domain.tld # TCP LDAP SRV record

Verify Samba4 DC DNS

Verify Samba4 DC DNS

*驗證 Samba4 DC DNS *

17、這些 DNS 記錄也可以從注冊過的已安裝了 RSAT 工具的 Windows 機器上查詢到。打開 DNS 管理器,展開到你的域 tcp 記錄,如下圖所示:

通過 Windows RSAT 工具來驗證 DNS 記錄

通過 Windows RSAT 工具來驗證 DNS 記錄

18、下一個驗證是檢查域 LDAP 複製同步是否正常。使用 samba-tool 工具,在第二個域控製器上創建一個賬號,然後檢查該賬號是否自動同步到第一個 Samba4 AD DC 服務器上。

在 adc2 上:


  1. # samba-tool user add test_user

在 adc1 上:


  1. # samba-tool user list | grep test_user

在 Samba4 AD 服務器上創建賬號

在 Samba4 AD 服務器上創建賬號

在 Samba4 AD 服務器上驗證同步功能

在 Samba4 AD 服務器上驗證同步功能

19、你也可以從 Microsoft AD DC 控製台創建一個賬號,然後驗證該賬號是否都出現在兩個域控服務器上。

默認情況下,這個賬號都應該在兩個 samba 域控製器上自動創建完成。在 adc1 服務器上使用 wbinfo 命令查詢該賬號名。

從 Microsoft AD UC 創建賬號

從 Microsoft AD UC 創建賬號

在 Samba4 AD 服務器上驗證賬號同步功能

在 Samba4 AD 服務器上驗證賬號同步功能

20、實際上,打開 Windows 機器上的 AD DC 控製台,展開到域控製器,你應該看到兩個已注冊的 DC 服務器。

驗證 Samba4 域控製器

驗證 Samba4 域控製器

第 5 步:啟用 Samba4 AD DC 服務

21、要在整個係統啟用 Samba4 AD DC 的服務,首先你得禁用原來的不需要的 Samba 服務,然後執行如下命令僅啟用 samba-ad-dc 服務:


  1. # systemctl disable smbd nmbd winbind
  2. # systemctl enable samba-ad-dc

啟用 Samba4 AD DC 服務

啟用 Samba4 AD DC 服務

22、如果你從 Microsoft 客戶端遠程管理 Samba4 域控製器,或者有其它 Linux 或 Windows 客戶機集成到當前域中,請確保在它們的網卡 DNS 服務器地址設置中提及 adc2 服務器的 IP 地址,以實現某種程序上的冗餘。

下圖顯示 Windows 和 Debian/Ubuntu 客戶機的網卡配置要求。

配置 Windows 客戶端來管理 Samba4 DC

配置 Windows 客戶端來管理 Samba4 DC

配置 Linux 客戶端來管理 Samba4 DC

配置 Linux 客戶端來管理 Samba4 DC

如果第一台 DC 服務器 192.168.1.254 網絡不通,則調整配置文件中 DNS 服務器 IP 地址的順序,以免先查詢這台不可用的 DNS 服務器。

原文發布時間為:2017-03-31

本文來自雲棲社區合作夥伴“Linux中國”


最後更新:2017-05-23 15:35:25

  上一篇:go  阿裏健康整合額外醫療服務資源 “醫療信息化”圖景顯現
  下一篇:go  雲翼計劃年付優惠領取流程