smb由來
伺服器消息區塊(英語:server message block,縮寫為smb,伺服器消息區塊),又稱網絡檔案共享系統(英語:common internet file system,縮寫為cifs),一種應用層網絡傳輸協定,由微軟開發,主要功能是使網絡上的機器能夠計算機檔案、列印機、串行端口和通訊等資源。它也提供經認證的程序間通信機能。它主要用在裝有microsoft windows的機器上,在這樣的機器上被稱為microsoft windows network。
smb版本
os
windows 10
ws 2016
windows 8.1
ws 2012 r2
windows 8
ws 2012
windows 7
ws 2008 r2
windows vista
ws 2008
previous
versions
smb 3.1.1
smb 3.0.2
smb 3.0
smb 2.1
smb 2.0
smb 1.0
備注:早期的windows 10 和ws 2016 tp的smb版本是3.1
如何檢視smb版本
在windows 8或ws 2012 以上,用帶管理者的powershell輸入:
smb各個版本介紹可以參考:https://en.wikipedia.org/wiki/server_message_block#smb_3.1.1
smb 3.1.1 新特性可以參考:https://blogs.technet.microsoft.com/josebda/2015/05/05/whats-new-in-smb-3-1-1-in-the-windows-server-2016-technical-preview-2/
其中比較關注的是smb 3.1.1 加密算法預設為aes-128-gcm,之前smb 3.0是用aes-128-ccm。
關于用戶端smb更新問題
目前查找的資料顯示,用戶端自帶的smb協定沒辦法通過更新來提高smb版本,也就是意味着在企業規劃檔案伺服器的時候,需要考慮到企業用戶端smb版本,對應的smb server,如上面smb版本清單。
關于smb server關閉低版本smb支援操作:
在windows 7和ws 008 r2,禁用smbv2,會停用以下功能:
請求複合 - 允許将多個smb 2請求作為單個網絡請求發送
更大的讀取和寫入 - 更好地使用更快的網絡
緩存檔案夾和檔案屬性 - 用戶端保留檔案夾和檔案的本地副本
持久句柄 - 如果存在臨時斷開連接配接,則允許連接配接透明地重新連接配接到伺服器
改進的消息簽名 - hmac sha-256将md5替換為雜湊演算法
提高檔案共享的可擴充性 - 每個伺服器的使用者數,共享數和打開檔案數大大增加
支援符号連結
客戶機操作鎖租賃模式 - 限制客戶機和伺服器之間傳輸的資料,提高高延遲網絡的性能并增加smb伺服器可擴充性
大mtu支援 - 完全使用10gigabye(gb)以太網
提高能源效率 - 向伺服器打開檔案的用戶端可以睡眠
在windows 8 和ws 2012 禁用smbv3.會停用以下功能:
透明故障轉移 - 用戶端在維護或故障轉移期間重新連接配接而不中斷群集節點
scale out - 對所有檔案叢集節點上的共享資料的并發通路
多通道 - 如果用戶端和伺服器之間有多條路徑,則可以聚合網絡帶寬和容錯
smb直接 - 增加了rdma網絡支援,以實作非常高的性能,低延遲和低cpu使用率
加密 - 提供端到端加密,防止在不可信的網絡上被竊聽
目錄租賃 - 通過緩存改進分支機構的應用程式響應時間
性能優化 - 小型随機讀/寫i / o的優化
在windows 8或ws 2012以上版本可以用powershell輸入:
禁用smbv2和smbv3
禁用smbv1
ps:如果要恢複啟用,就用$true值。
在windows vista或ws 2008以上版本用powershell輸入:
ps:value的值,0表示禁用 ,1表示啟用
在用戶端禁用smb協定
禁止smbv1
啟用smbv1
禁用smbv2和v3
啟用smbv2和v3
分享下小案例
環境:windows server 2012 r2檔案伺服器
用戶端:windows 7+10
問題描述:在伺服器上設定共享檔案夾,一開始用win10用戶端測試共享檔案夾,正常,後續沒繼續測試win7是否正常可以通路,後來開放給使用者使用,發現win7使用者無論怎麼輸入賬号和密碼,都顯示拒絕通路,權限正常。
報錯圖:
導緻問題的關鍵:共享檔案夾啟動加密資料
在2012中加密資料通路是加密資料來保護資料傳輸過程的安全性,以防止篡改和竊聽攻擊,用的加密算法是aes-128-ccm。是以舊版本smb2是用hmac-sha256根本就不支援。
解決方法:
方法1.去除加密資料通路,即可。(如果不考慮加密問題,則去除選擇即可)
方法2.如果考慮加密問題,又想讓smbv2版本的用戶端能夠正常通路,則在伺服器上powershell輸入:
rejectunencryptedaccess參數是如果用戶端嘗試連結到加密共享檔案夾,不支援加密算法的用戶端是否被拒絕通路。預設值是true
我們可以将其值配置為false
在powershell 輸入:
結果就可以了
ps:方法2的指令是對整個smbserver配置的,此方法一般是作為過渡用的,如果用戶端版本都是smb 3.1,建議把rejectunencryptedaccess配置為true
如果對smb 感興趣可以參考:https://blogs.technet.microsoft.com/josebda/2015/04/30/smb3-networking-links-for-windows-server-2012-r2/