通過將SMB檔案系統的掛載點接入AD域內,您可以在AD域中實現檔案系統使用者身份的認證管理和檔案層級的存取權限控制。以AD域使用者身份掛載使用SMB檔案系統之前,您需要在AD域內為SMB檔案系統註冊服務,產生Keytab密鑰表檔案並上傳至NAS控制台開啟SMB ACL功能。
前提條件
已建立SMB檔案系統。具體操作,請參見建立SMB檔案系統。
步驟一:產生Keytab檔案
您可以通過以下兩種方式產生Keytab檔案:
自動產生Keytab檔案
-
登入需要安裝AD網域控制站和DNS服務的ECS伺服器。
-
在PowerShell工具或者PowerShell ISE工具中執行以下命令下載指令碼。
Invoke-WebRequest https://nas-client-tools.oss-cn-hangzhou.aliyuncs.com/windows_client/alinas_smb_windows_inspection.ps1 -OutFile alinas_smb_windows_inspection.ps1 -
將指令碼alinas_smb_windows_inspection.ps1中的加密方式修改為-crypto RC4-HMAC-NT(僅限Windows Server 2025)
此步驟僅適用於Windows Server 2025環境,其他版本使用者可直接跳至第4步。
-
用記事本開啟剛才下載的alinas_smb_windows_inspection.ps1檔案。
notepad .\alinas_smb_windows_inspection.ps1 -
找到包含-crypto的行(通常在指令碼第791行)
-
將加密方式從
-crypto All修改為-crypto RC4-HMAC-NT修改前:
$command = "ktpass -princ cifs/$MountAddress@$domainFullUpper -ptype KRB5_NT_PRINCIPAL -mapuser $SetspnNas@$domainFull -crypto All -out c:\nas-mount-target.keytab -pass tHePaSsWoRd123"修改後:
$command = "ktpass -princ cifs/$MountAddress@$domainFullUpper -ptype KRB5_NT_PRINCIPAL -mapuser $SetspnNas@$domainFull -crypto RC4-HMAC-NT -out c:\nas-mount-target.keytab -pass tHePaSsWoRd123" -
按 Ctrl+S 儲存並關閉檔案。
-
-
執行以下命令自動安裝AD網域控制站和DNS服務,產生Keytab檔案。
.\alinas_smb_windows_inspection.ps1 -MountAddress file-system-id.region.nas.aliyuncs.com -ConfigAD $true -Userdomain "example.com" -Username "administrator" -Password "password"重要欄位說明如下所示,請根據實際情況替換:
-
file-system-id.region.nas.aliyuncs.com:表示SMB檔案系統掛載點地址。您可以在檔案系統列表頁面,單擊目標檔案系統旁的表徵圖,在掛載點列表的掛載點地址列,擷取掛載點地址。
-
example.com:表示搭建的AD網域名稱。
-
administrator:表示AD服務帳號名。
-
password:表示AD服務登入密碼。
-
首次運行指令碼安裝完AD網域服務後並初次開機AD域時,Windows AD伺服器將會重啟。重啟後需再次運行上述指令碼,完成組建Keytab的步驟。
手動設定keytab檔案
-
安裝並啟用AD網域服務及DNS服務。
-
登入AD控制器所在的ECS伺服器。
-
開啟CMD命令視窗,執行以下命令為SMB檔案系統建立服務帳號。
dsadd user CN=<AD服務帳號名>,DC=<AD域網域名稱>,DC=com -samid <AD服務帳號名> -display <使用者標題文字> -pwd <使用者密碼> -pwdneverexpires yes樣本:
dsadd user CN=alinas,DC=EXAMPLE,DC=com -samid alinas -display "Alibaba Cloud NAS Service Account" -pwd tHeRd123**** -pwdneverexpires yes如果登入帳號為普通帳號,則需要管理使用者為其設定讀取/寫入ServicePrincipalName的許可權,然後再為SMB檔案系統建立服務帳號。命令如下所示。
dsacls "CN=<AD服務帳號名>,DC=<AD域網域名稱>,DC=com" /I:T /G "<AD服務帳號名>:RPWP;servicePrincipalName"樣本:
dsacls "CN=alinas,DC=cdbptest01,DC=com" /I:T /G "alinas:RPWP;servicePrincipalName"其中,
RP為讀許可權,WP為寫入權限。 -
執行以下命令,為SMB檔案系統掛載點註冊並添加服務主體。
-
執行命令
setspn -S cifs/<SMB協議NAS檔案系統掛載點地址> <AD服務帳號名>樣本
setspn -S cifs/****-****.cn-hangzhou.nas.aliyuncs.com alinas說明-
掛載點地址格式為
file-system-id.region.nas.aliyuncs.com,請根據實際值替換。您可以在Apsara File Storage NAS控制台檔案系統列表頁面,單擊目標檔案系統後的管理,進入掛載使用頁面擷取掛載地址。 -
請勿將掛載目錄寫在掛載點後地址中誤寫成
file-system-id.region.nas.aliyuncs.com/myshare。
-
-
返回樣本
如果返回如下類似資訊,則說明SMB檔案系統掛載服務主體已添加成功。
C:\Users\Administrator>setspn -S cifs/xxx.nas.aliyuncs.com alinas 正在檢查域 DC=smb-hk,DC=com 為 CN=alinas,DC=smb-hk,DC=com 註冊 ServicePrincipalNames cifs/xxx.nas.aliyuncs.com 更新的對象 C:\Users\Administrator>
-
-
檢查Windows AD伺服器或Windows用戶端的setspn配置。
執行命令
setspn alinas返回資訊中包含目標檔案系統掛載點,則表示Windows AD伺服器或Windows用戶端的setspn配置正常。
C:\Users\Administrator\Desktop>setspn alinas Registered ServicePrincipalNames for CN=alinas,DC=smbmock60,DC=com: cifs/xxx.nas.aliyuncs.com -
在AD網域服務器上,開啟CMD命令視窗,執行以下命令為SMB檔案系統掛載點產生Keytab密鑰表檔案。
重要-princ參數大小寫敏感,<AD 域>參數所填內容務必使用全大寫形式。-
對於Windows Server 2022 及更早版本
ktpass -princ cifs/<SMB檔案系統掛載點地址>@<AD域> -ptype KRB5_NT_PRINCIPAL -mapuser <AD服務帳號名>@<AD域> -crypto All -out <產生的密鑰表檔案的檔案路徑> -pass <使用者密碼>樣本:
ktpass -princ cifs/****-****.cn-hangzhou.nas.aliyuncs.com@EXAMPLE.COM -ptype KRB5_NT_PRINCIPAL -mapuser alinas@example.com -crypto All -out c:\nas-mount-target.keytab -pass tHeP****d123 -
對於Windows Server 2025
由於windows server 2025不支援 DES,所以產生 keytab 參數 -crypto ALL 需要修改成 -crypto RC4-HMAC-NT
ktpass -princ cifs/<SMB檔案系統掛載點地址>@<AD域> -ptype KRB5_NT_PRINCIPAL -mapuser <AD服務帳號名>@<AD域> -crypto RC4-HMAC-NT -out <產生的密鑰表檔案的檔案路徑> -pass <使用者密碼>樣本:
ktpass -princ cifs/****-****.cn-hangzhou.nas.aliyuncs.com@EXAMPLE.COM -ptype KRB5_NT_PRINCIPAL -mapuser alinas@example.com -crypto RC4-HMAC-NT -out c:\nas-mount-target.keytab -pass tHeP****d123
如果需要驗證Keytab密鑰表檔案的正確性,您可以參照如何驗證Keytab檔案正確性?進行驗證。
-
如果需要將keytab檔案下載至本機伺服器,您可以參照通過Workbench上傳下載或管理ECS上的檔案。
步驟二:上傳Keytab檔案
在NAS控制台,上傳阿里雲SMB檔案系統服務帳號的Keytab檔案。
-
登入NAS控制台。
-
在左側導覽列,選擇。
-
在檔案系統列表頁面,單擊目標檔案系統ID或目標檔案系統操作列的管理。
-
在存取控制頁簽,單擊開啟。
-
在開啟SMB ACL對話方塊,上傳阿里雲檔案系統服務帳號的Keytab檔案,然後單擊確定。
注意:用戶端如果已經掛載該卷,需要重新掛載後才會在用戶端生效。
-
在存取控制頁簽,單擊修改配置。
-
在修改配置對話方塊,請參見如下說明對參數進行修改。
重要僅支援SMB 3.0及以上版本檔案協議的作業系統開啟傳輸加密。關於支援SMB 3.0及以上版本檔案協議的作業系統,請參見SMB 3.0及以上協議版本支援的用戶端作業系統。
參數
描述
允許匿名訪問
是否允許匿名訪問檔案系統。取值範圍如下:
-
是:允許任何人以NTLM方式掛載該檔案系統,掛載後使用者身份為Everyone,ACL仍然生效。
-
否(預設值):不允許匿名使用者存取檔案系統。
啟用傳輸加密
是否開啟SMB檔案系統傳輸加密功能。取值範圍如下:
-
是:開啟SMB檔案系統傳輸加密功能。
-
否(預設值):不開啟SMB檔案系統傳輸加密功能。
更多資訊,請參見SMB協議檔案系統傳輸加密。
拒絕非加密用戶端
配置訪問SMB檔案系統的用戶端類型。取值範圍如下:
-
是:僅支援使用傳輸加密的用戶端掛載該SMB檔案系統,即支援SMB傳輸加密的作業系統以AD域身份掛載SMB檔案系統。
當以匿名身份掛載或使用不支援傳輸加密的用戶端掛載SMB檔案系統時,掛載將會失敗。
-
否:所有用戶端均能掛載該SMB檔案系統,但只有支援傳輸加密的作業系統以AD域身份掛載SMB檔案系統才會啟用傳輸加密功能。
Keytab檔案
上傳Keytab檔案。
超級使用者
超級使用者能夠在不改動ACL的情況下對任何檔案夾中的任何檔案進行操作,您可以將超級使用者配置為使用者或群組。配置時需符合SID格式,例如S-1-5-32-544。預設值為空白。
使用者目錄
每個使用者的使用者目錄主路徑。例如使用者目錄是\home,則對於使用者A,檔案系統會在A登入時自動建立\home\A的目錄。如果\home\A已經存在,則跳過。預設值為空白。
重要\home目錄要有允許使用者A建立目錄的許可權,否則\home\A無法建立。
重要如果用戶端已掛載SMB檔案系統,在修改配置後請重新掛載SMB檔案系統,使AD網域服務帳號配置生效。
-
後續步驟
將SMB檔案系統掛載點接入到了AD域後,您可以通過AD域身份掛載並使用SMB檔案系統。具體操作,請參見Windows用戶端以AD域使用者身份掛載並使用SMB檔案系統和Linux用戶端以AD域使用者身份掛載並使用SMB檔案系統。