如果可使用 AFP 但無法使用 SMB 裝載檔案伺服器

您可能會因為 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 的說明頁。

您為了停用驗證協調要求所設定的 nsmb.conf 檔案,看起來會像這樣:

[default]
validate_neg_off=yes

設定 macOS Server 以拒絕 SMB 3 連線

驗證協調要求這項 SMB 3 功能是由用戶端提出。若要避免用戶端提出這類要求,您可以設定 macOS Server 只接受 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

發佈日期: