如果你無法裝載 Mac 代管的 SMB 分享項目,請綁定至 Open Directory

你可能會因為 SMB 3 安全要求的關係,而無法使用 SMB 裝載分享點。

檢查連線設定

伺服器訊息區塊 (SMB) 3 是連接 macOS 伺服器的預設方式,會在認證後要求連線執行驗證協調要求。除非以訪客或匿名方式登入,否則所有 SMB 3 作業階段都必須簽署。

你可能有 macOS 檔案伺服器屬 Open Directory 用戶端,並以匿名方式綁定至輕量級目錄存取協定 (LDAP) 伺服器。在此情況下,請使用以下其中一種方式連接:

  • 當你連接 LDAP 伺服器,請使用已認證的綁定項目
  • 將檔案伺服器的角色更改為 Open Directory 複本。這樣,伺服器就會同時建立 Kerberos。
  • 在用戶端停用驗證協調要求。
  • 將 SMB 伺服器或用戶端設定為只使用 SMB 2。

了解作業階段簽署

SMB 3 的作業階段簽署,必須要以綁定的電腦來存取目錄伺服器中每個用戶的 md4 (密碼)。因此,SMB 3 只會將用戶端連線授予「受信任」的電腦,也就是以目錄管理員 (diradmin) 憑證作認證綁定 (authbound) 的電腦。

你可能希望使用者以某目錄伺服器的帳戶認證,但有時 diradmin 會無法將你的伺服器認證綁定至該目錄伺服器。在此情況下,你可以停用用戶端的驗證協調要求,或者調整伺服器,讓其只接受安全性較低的 SMB 2 連線。為此,請修改 SMB 伺服器、用戶端或兩者的設定。

停用用戶端上的驗證協調要求

如果你停用驗證協調,遭受攔截式攻擊的機率將會提高。建議你只在用戶端與伺服器皆位於安全網絡時,才停用驗證協調要求。

如要設定 /etc 目錄中 nsmb.conf 檔案的 validate_neg_off 設定值,請使用文字編輯器或「終端機」。如想查看更多用戶端 SMB 設定選項,請參閱 nsmb.conf man 頁面。

以下示範如何設定 nsmb.conf 以停用驗證協調要求:

[default]
validate_neg_off=yes

設定「macOS 伺服器」以拒絕 SMB 3 連線

驗證協調要求這項 SMB 3 功能是由用戶端提出。如要避免用戶端提出這類要求,你可以設定「macOS 伺服器」只接受 SMB 2 連線。Server Dialect (伺服器方言) 是由伺服器偏好設定中的某個位元欄位所控制,這個位元欄位的關鍵字是 ProtocolVersionMap,並只使用三個位元:

含義
1 支援 SMB 1
2 支援 SMB 2
4 支援 SMB 3

如要支援多種方言,請將位元結合起來。

以下範例將 ProtocolVersionMap 設為允許 SMB 2。換言之,ProtocolVersionMap 會設為「2」:

sudo scutil --prefs com.apple.smb.server.plist

get /

d.add ProtocolVersionMap # 2

set /

commit

apply

quit

發佈日期: