通過將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
執行以下命令自動安裝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" -Locale zh-CN
重要字段說明如下所示,請根據實際情況替換:
file-system-id.region.nas.aliyuncs.com:表示SMB文件系統掛載點地址。您可以在文件系統列表頁面,單擊目標文件系統旁的圖標,在掛載點列表的掛載點地址列,獲取掛載點地址。
example.com:表示搭建的AD域名。
administrator:表示AD服務賬號名。
password:表示AD服務登錄密碼。
重要首次運行腳本安裝完AD域服務后并首次啟動AD域時,Windows AD服務器將會重啟。重啟后需再次運行上述腳本,完成生成Keytab的步驟。
手動配置keytab文件
安裝并啟用AD域服務及DNS服務。具體操作,請參見安裝AD域控制器。
登錄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
,請根據實際值替換。您可以在文件存儲NAS控制臺文件系統列表頁面,單擊目標文件系統后的管理,進入掛載使用頁面獲取掛載地址。請勿將掛載目錄寫在掛載點后地址中誤寫成
file-system-id.region.nas.aliyuncs.com/myshare
。
返回示例
如果返回如下類似信息,則說明SMB文件系統掛載服務主體已添加成功。
檢查Windows AD服務器或Windows客戶端的setspn配置。
執行命令
setspn alinas
返回信息中包含目標文件系統掛載點,則表示Windows AD服務器或Windows客戶端的setspn配置正常。
在AD域服務器上,打開CMD命令窗口,執行以下命令為SMB文件系統掛載點生成Keytab密鑰表文件。
ktpass -princ cifs/<SMB文件系統掛載點地址>@<AD域> -ptype KRB5_NT_PRINCIPAL -crypto All -out <生成的密鑰表文件的文件路徑> -pass <用戶密碼>
示例:
ktpass -princ cifs/****-****.cn-hangzhou.nas.aliyuncs.com@EXAMPLE.com -ptype KRB5_NT_PRINCIPAL -crypto All -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文件系統。