將 Red Hat Enterprise Linux 虛擬機加入 Microsoft Entra Domain Services 受控網域
若要讓使用者使用單一認證集合登入 Azure 中的虛擬機(VM),您可以將 VM 加入至 Microsoft Entra Domain Services 受控網域。 當您將 VM 加入 Domain Services 受控網域時,網域中的使用者帳戶和認證可用來登入和管理伺服器。 也會套用受控網域中的群組成員資格,讓您控制 VM 上檔案或服務的存取權。
本文說明如何將 Red Hat Enterprise Linux (RHEL) VM 加入受控網域。
先決條件
若要完成本教學課程,您需要下列資源和許可權:
- 作用中的 Azure 訂用帳戶。
- 如果您沒有 Azure 訂用帳戶,建立帳戶。
- 與您的訂用帳戶相關聯的一個 Microsoft Entra 租用戶,該租用戶會與本地部署目錄或雲端專用目錄同步。
- 在您的 Microsoft Entra 租用戶中啟用並設定Microsoft Entra Domain Services 受控網域。
- 如有需要,第一個教學課程 會建立及設定 Microsoft Entra Domain Services 受控網域。
- 屬於受控網域一部分的用戶帳戶。
- 為避免在 Active Directory 中因名稱截斷而引發衝突,應為 Linux VM 選擇不超過 15 個字元的唯一名稱。
建立並連線到 RHEL Linux VM
如果您在 Azure 中有現有的 RHEL Linux VM,請使用 SSH 連線到它,然後繼續進行下一個步驟,開始設定 VM。
如果您需要建立 RHEL Linux VM,或想要建立測試 VM 以搭配本文使用,您可以使用下列其中一種方法:
當您建立 VM 時,請注意虛擬網路設定,以確定 VM 可以與受控網域通訊:
- 將 VM 部署到您已在其中啟用 Microsoft Entra Domain Services 的相同或對等的虛擬網路。
- 將 VM 部署到與您Microsoft Entra Domain Services 受控網域不同的子網。
部署 VM 之後,請遵循使用 SSH 連線到 VM 的步驟。
設定主機檔案
若要確定已針對受控網域正確設定 VM 主機名,請編輯 /etc/hosts 檔案並設定主機名:
sudo vi /etc/hosts
在 主機 檔案中,更新 localhost 位址。 在下列範例中:
- aaddscontoso.com 是您管理的網域的 DNS 網域名稱。
- rhel 是您加入受控網域的 RHEL VM 主機名。
請使用您自己的值來更新這些名稱:
127.0.0.1 rhel rhel.aaddscontoso.com
完成後,請使用編輯器的 命令,儲存並結束 :wq
檔案。
重要
請注意 Red Hat Enterprise Linux 6.X 和 Oracle Linux 6.x 已經生命週期結束。 RHEL 6.10 ELS 支援,於 2024/06/2024結束。
安裝必要的套件
VM 需要一些額外的套件,才能將 VM 加入受控網域。 若要安裝和設定這些套件,請使用 yum
更新並安裝加入網域的工具。
sudo yum install adcli sssd authconfig krb5-workstation
將 VM 加入受控網域
現在,必要的套件已安裝在 VM 上,請將 VM 加入受控網域。
使用
adcli info
命令來探索受控網域。 下列範例會探索 領域 ADDDSCONTOSO.COM。 在全大寫中指定您自己的受控網域名稱:sudo adcli info aaddscontoso.com
如果
adcli info
命令找不到您的受控網域,請檢閱下列疑難解答步驟:- 請確定可從 VM 連線到網域。 試試
ping aaddscontoso.com
看看是否會傳回正面的回應。 - 檢查 VM 是否已部署到可用的受控網域所在的相同或對等互連虛擬網路。
- 確認虛擬網路的 DNS 伺服器設定已更新,以指向受控網域的域控制器。
- 請確定可從 VM 連線到網域。 試試
首先,使用
adcli join
命令加入網域。 此命令還會建立keytab來驗證機器的身份。 使用屬於受控網域一部分的用戶帳戶。sudo adcli join aaddscontoso.com -U contosoadmin
現在設定
/ect/krb5.conf
,並建立/etc/sssd/sssd.conf
檔案以使用aaddscontoso.com
Active Directory 網域。 務必確保AADDSCONTOSO.COM
已被您自己的網域名稱取代。使用編輯器開啟
/etc/krb5.conf
檔案:sudo vi /etc/krb5.conf
更新
krb5.conf
檔案以符合下列範例:[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = AADDSCONTOSO.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] AADDSCONTOSO.COM = { kdc = AADDSCONTOSO.COM admin_server = AADDSCONTOSO.COM } [domain_realm] .AADDSCONTOSO.COM = AADDSCONTOSO.COM AADDSCONTOSO.COM = AADDSCONTOSO.COM
建立
/etc/sssd/sssd.conf
檔案:sudo vi /etc/sssd/sssd.conf
更新
sssd.conf
檔案以符合下列範例:[sssd] services = nss, pam, ssh, autofs config_file_version = 2 domains = AADDSCONTOSO.COM [domain/AADDSCONTOSO.COM] id_provider = ad
請確定
/etc/sssd/sssd.conf
許可權為 600,且由根用戶擁有:sudo chmod 600 /etc/sssd/sssd.conf sudo chown root:root /etc/sssd/sssd.conf
使用
authconfig
指示 VM 進行 AD Linux 的整合配置:sudo authconfig --enablesssd --enablesssd auth --update
啟動並啟用 sssd 服務:
sudo service sssd start sudo chkconfig sssd on
如果您的 VM 無法順利完成網域加入流程,請確認 VM 的網路安全組允許 TCP + UDP 連接埠 464 上的輸出 Kerberos 流量至虛擬網路子網,以便於您的受控網域。
現在,請檢查您是否可以使用 getent
查詢使用者 AD 資訊
sudo getent passwd contosoadmin
允許 SSH 的密碼驗證
根據預設,使用者只能使用 SSH 公鑰型驗證來登入 VM。 密碼式驗證失敗。 當您將 VM 加入受控網域時,這些網域帳戶必須使用密碼型驗證。 更新 SSH 組態以允許密碼型驗證,如下所示。
使用編輯器開啟 sshd_conf 檔案:
sudo vi /etc/ssh/sshd_config
將 PasswordAuthentication 行更新為 yes:
PasswordAuthentication yes
完成後,請使用編輯器的 命令儲存並結束
:wq
檔案。若要套用變更,並讓使用者使用密碼登入,請重新啟動 RHEL 散發版本的 SSH 服務:
sudo service sshd restart
授與 『AAD DC Administrators』 群組 sudo 許可權
為了向 AAD DC 系統管理員 群組的成員授予在 RHEL VM 上的管理權限,請將一條目新增至 /etc/sudoers。 新增之後,AAD DC Administrators 群組的成員可以使用 RHEL VM 上的 sudo
命令。
開啟 sudoers 檔案以進行編輯:
sudo visudo
將以下條目新增至 /etc/sudoers 檔案的結尾。 AAD DC Administrators 群組包含名稱中的空格符,因此請在組名中包含反斜杠逸出字元。 新增您自己的網域名稱,例如 aaddscontoso.com:
# Add 'AAD DC Administrators' group members as admins. %AAD\ DC\ Administrators@aaddscontoso.com ALL=(ALL) NOPASSWD:ALL
完成後,請使用編輯器的
:wq
命令儲存並結束編輯器。
使用網域帳戶登入 VM
若要確認 VM 已成功加入受控網域,請使用網域用戶帳戶啟動新的 SSH 連線。 確認已建立主目錄,並套用網域中的群組成員資格。
從主控台建立新的SSH連線。 使用屬於受控網域的網域帳戶透過
ssh -l
命令,例如contosoadmin@aaddscontoso.com
,然後輸入您的 VM 位址,例如 rhel.aaddscontoso.com。 如果您使用 Azure Cloud Shell,請使用 VM 的公用 IP 位址,而不是內部 DNS 名稱。ssh -l contosoadmin@AADDSCONTOSO.com rhel.aaddscontoso.com
成功連線到 VM 時,請確認主目錄已正確初始化:
pwd
您應該在 /home 目錄中,並擁有一個與您的用戶帳戶相匹配的專屬目錄。
現在,請檢查群組成員資格是否已正確解析:
id
您應該會看到從受管理網域中獲得的群組成員資格。
如果您以 AAD DC Administrators 群組的成員身分登入 VM,請檢查您是否可以正確使用
sudo
命令:sudo yum update
後續步驟
如果您在將 VM 連線到受控網域或使用網域帳戶登入時遇到問題,請參閱 針對網域加入問題進行疑難解答。