將 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 受控網域。
- 屬於受控網域一部分的使用者帳戶。
- 最多為 15 個字元的獨特 Linux VM 名稱,來避免可能在 Active Directory 中造成衝突的截斷名稱。
建立並連線至 RHEL Linux VM
如果您在 Azure 中已有 RHEL Linux VM,請將 SSH 連線到該 VM,並繼續進行下一個步驟來開始設定 VM。
如果您需要建立 RHEL Linux VM,或想要建立測試 VM 配合本文使用,您可以使用下列其中一種方法:
建立 VM 時,請注意虛擬網路設定,確保 VM 可以與受控網域通訊:
- 將 VM 部署至已啟用 Microsoft Entra Domain Services 的相同 (或對等) 虛擬網路。
- 將 VM 部署至 Microsoft Entra Domain Services 受控網域以外的其他的子網路。
部署 VM 之後,請遵循這些步驟,使用 SSH 連線到 VM。
設定 hosts 檔案
若要確定 VM 主機名稱已針對受控網域正確設定,請編輯 /etc/hosts 檔案並設定主機名稱:
sudo vi /etc/hosts
在 hosts 檔案中,更新 localhost 的位址。 在以下範例中:
- aaddscontoso.com 為受控網域的 DNS 網域名稱。
- rhel 是您正要加入受控網域的 RHEL VM 主機名稱。
請以您自己的值更新這些名稱:
127.0.0.1 rhel rhel.aaddscontoso.com
完成後,請使用編輯器的 :wq
命令儲存並結束 hosts 檔案。
重要
請注意,Red Hat Enterprise Linux 6.X 和 Oracle Linux 6.x 已處於生命週期結束階段。 RHEL 6.10 版提供 ELS 支援,該支援將於 2024 年 6 月結束。
安裝必要的套件
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
命令加入網域,此命令也會建立金鑰表以驗證電腦。 使用屬於受控網域的使用者帳戶。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 一行更新為 是:
PasswordAuthentication yes
完成後,請使用編輯器的
:wq
命令儲存並結束 sshd_conf 檔案。若要套用變更並讓使用者使用密碼登入,請重新啟動 RHEL 散發版本的 SSH 服務:
sudo service sshd restart
授與 'AAD DC Administrators' 群組 sudo 權限
若要將 RHEL VM 的系統管理權限授與 AAD DC Administrators 群組的成員,請將項目新增至 /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 連線到受控網域或使用網域帳戶登入時遇到問題,請參閱針對網域加入問題進行疑難排解。