若要在 Ubuntu/Debian 桌面平台上支援 True SSO,請使用 Samba 和 Winbind 解決方案整合基礎虛擬機器 (VM) 與 Active Directory (AD) 網域。
若要將 Ubuntu/Debian 虛擬機器與 AD 網域整合,請使用下列程序。
此程序中的某些範例使用預留位置值來代表您網路組態中的實體,例如,您虛擬機器的主機名稱。請將預留位置值取代為您的組態特有的資訊,如下表所說明。
| 預留位置值 | 說明 |
|---|---|
| dns_IP_ADDRESS | DNS 名稱伺服器的 IP 位址 |
| mydomain.com | AD 網域的 DNS 名稱 |
| MYDOMAIN.COM | AD 網域的 DNS 名稱 (全部使用大寫字母) |
| myhost | Ubuntu/Debian 虛擬機器的主機名稱 |
| MYDOMAIN | 包含 Samba 伺服器的工作群組或 NT 網域的 DNS 名稱 (全部使用大寫字母) |
| ads-hostname | AD 伺服器的主機名稱 |
| admin-user | AD 網域管理員的使用者名稱 |
先決條件
請確認:
- 在虛擬機器上,AD 伺服器可由 DNS 解析。
- 網路時間通訊協定 (NTP) 會設定於虛擬機器上。
程序
-
在 Ubuntu/Debian 虛擬機器上,安裝
samba和winbind套件。sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind -
設定 Kerberos 驗證設定。
-
如果系統上未顯示 Kerberos 驗證設定的視窗,請執行下列命令以顯示該視窗。
sudo dpkg-reconfigure krb5-config -
針對預設的 Kerberos 第 5 版領域,請輸入您 AD 網域的 DNS 名稱 (全部使用大寫字母)。
例如,如果您的 AD 網域名稱是
mydomain.com,請輸入MYDOMAIN.COM。 -
針對領域的 Kerberos 伺服器,請輸入您的 AD 伺服器主機名稱 (在本程序的範例中以
ads_hostname表示)。 -
針對您 Kerberos 領域的管理伺服器,再次輸入您 AD 伺服器的主機名稱。
-
-
更新 PAM 組態。
-
開啟 PAM 組態頁面。
pam-auth-update -
選取在登入時建立主目錄,然後選取確定。
-
-
編輯
/etc/nsswitch.conf組態檔,如下列範例所示。passwd: compat winbind group: compat winbind shadow: compat gshadow: files -
如果系統自動偵測到正確的 DNS 伺服器,請略過此步驟並繼續進行下一個步驟。如果系統無法偵測到正確的 DNS 伺服器,請完成此步驟以手動設定 DNS 伺服器。
為確保自動產生的
resolv.conf檔案將您的 AD 網域列為搜尋網域,請編輯系統連線的 NetworkManager 設定。下列子步驟提供 Ubuntu 20.04 系統的範例指示。-
開啟 NetworkManager 控制台,並導覽至系統連線的 IPv4 設定。針對 [方法],選取僅限自動 (DHCP) 位址。在 DNS 伺服器文字方塊中,輸入您的 DNS 名稱伺服器的 IP 位址 (在本程序的範例中以
dns_IP_ADDRESS表示)。然後,按一下儲存。 -
編輯
/etc/dhcp/dhclient.conf檔案,如下列範例所示。supersede domain-name "mydomain.com"; prepend domain-name-servers dns_IP_ADDRESS; -
編輯
/etc/systemd/resolved.conf檔案,如下列範例所示。DNS=dns_IP_ADDRESS Domains="mydomain.com"**附註:**當建立新的即時複製虛擬桌面平台時,會新增一個新的虛擬網路介面卡。將網路介面卡新增至所複製的虛擬桌面平台時,虛擬桌面平台範本會清除網路介面卡 (例如 DNS 伺服器) 的設定。若要在新增網路介面卡時保留 DNS 伺服器設定,您必須為虛擬機器指定 DNS 伺服器。
-
透過編輯
/etc/resolv.conf組態檔來指定 DNS 伺服器,如下列範例所示。如果出現警告,您可以忽略警告,並繼續進行變更。nameserver dns_IP_ADDRESS search mydomain.com -
重新啟動虛擬機器,並重新登入。
-
-
編輯
/etc/hosts組態檔,如下列範例所示。127.0.0.1 localhost 127.0.1.1 myhost.mydomain.com myhost -
編輯
/etc/samba/smb.conf組態檔,如下列範例所示。[global] security = ads realm = MYDOMAIN.COM workgroup = MYDOMAIN idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes winbind use default domain = yes restrict anonymous = 2 kerberos method = secrets and keytab winbind refresh tickets = true -
重新啟動
smbd服務。sudo systemctl restart smbd.service -
編輯
/etc/krb5.conf組態檔,使其內容與下列範例類似。[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = ads-hostname admin_server = ads-hostname } [domain_realm] .mydomain.com = MYDOMAIN.COM mydomain.com = MYDOMAIN.COM -
將 Ubuntu/Debian 虛擬機器加入 AD 網域。
-
起始 Kerberos 票證。
sudo kinit admin-user出現提示時,輸入您的管理員密碼。
-
確認票證已成功建立。
sudo klist此命令會傳回票證的相關資訊,包括其有效起始時間和到期時間。
-
建立 Kerberos Keytab 檔案。
sudo net ads keytab create -U admin-user -
加入 AD 網域。
sudo net ads join -U admin-user
-
-
重新啟動並確認 Winbind 服務。
-
重新啟動 Winbind 服務。
sudo systemctl restart winbind.service -
若要確認 Winbind 服務,請執行下列命令,並確認命令傳回正確的輸出。
sudo wbinfo -usudo wbinfo -gsudo getent passwdsudo getent group
-
-
重新啟動虛擬機器,並重新登入。
後續步驟
此頁面對您有幫助嗎?