標籤:windows smb share 2016
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 |
Windows 10 WS 2016 |
SMB 3.1.1 |
SMB 3.0.2 |
SMB 3.0 |
SMB 2.1 |
SMB 2.0 |
SMB 1.0 |
Windows 8.1 WS 2012 R2 |
SMB 3.0.2 |
SMB 3.0.2 |
SMB 3.0 |
SMB 2.1 |
SMB 2.0 |
SMB 1.0 |
Windows 8 WS 2012 |
SMB 3.0 |
SMB 3.0 |
SMB 3.0 |
SMB 2.1
|
SMB 2.0 |
SMB 1.0 |
Windows 7 WS 2008 R2 |
SMB 2.1
|
SMB 2.1 |
SMB 2.1 |
SMB 2.1 |
SMB 2.0 |
SMB 1.0 |
Windows Vista WS 2008 |
SMB 2.0 |
SMB 2.0 |
SMB 2.0 |
SMB 2.0 |
SMB 2.0 |
SMB 1.0 |
Previous versions |
SMB 1.0 |
SMB 1.0 |
SMB 1.0 |
SMB 1.0 |
SMB 1.0 |
SMB 1.0 |
備忘:早期的Windows 10 和WS 2016 TP的SMB版本是3.1
如何查看SMB版本
在Windows 8或WS 2012 以上,用帶管理員的Powershell輸入:
Get-SmbConnection
650) this.width=650;" title="clip_image001[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[4]" src="http://s3.51cto.com/wyfs02/M00/8D/13/wKioL1iFppTwbE2fAAAmRZvdCh4973.png" height="100" />
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
Set-SmbServerConfiguration -EnableSMB2Protocol $false
禁用SMBV1
Set-SmbServerConfiguration -EnableSMB1Protocol $false
PS:如果要恢複啟用,就用$true值。
在Windows Vista或WS 2008以上版本用PowerShell輸入:
禁用SMBV2和SMBV3
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
禁用SMBV1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
PS:Value的值,0表示禁用 ,1表示啟用
在用戶端禁用SMB協議
禁止SMBV1
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
啟用SMBV1
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsisc.exe config mrxsmb10 start= auto
禁用SMBV2和v3
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsisc.exe config mrxsmb20 start= disabled
啟用SMBV2和v3
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsisc.exe config mrxsmb20 start= auto
分享下小案例
環境:Windows Server 2012 R2檔案伺服器
用戶端:Windows 7+10
問題描述:在伺服器上設定共用資料夾,一開始用Win10用戶端測試共用資料夾,正常,後續沒繼續測試Win7是否正常可以訪問,後來開放給使用者使用,發現Win7使用者無論怎麼輸入帳號和密碼,都顯示拒絕訪問,許可權正常。
報錯圖:
650) this.width=650;" title="clip_image001[6]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[6]" src="http://s3.51cto.com/wyfs02/M02/8D/13/wKioL1iFppXjXmLLAAB-wEZru20892.png" height="321" />
650) this.width=650;" title="clip_image001[8]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[8]" src="http://s3.51cto.com/wyfs02/M01/8D/13/wKioL1iFppbjGdCMAAAfItrtODg984.png" height="105" />
導致問題的關鍵:共用資料夾啟動加密資料
650) this.width=650;" title="clip_image001[10]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image001[10]" src="http://s3.51cto.com/wyfs02/M02/8D/13/wKioL1iFppbxWuA9AAC29PbETnU609.png" height="603" />
在2012中加密資料訪問是加密資料來保護資料轉送過程的安全性,以防止篡改和竊聽攻擊,用的密碼編譯演算法是AES-128-CCM。所以舊版本SMB2是用HMAC-SHA256根本就不支援。
解決方案:
方法1.去除加密資料訪問,即可。(如果不考慮加密問題,則去除選擇即可)
方法2.如果考慮加密問題,又想讓SMBV2版本的用戶端能夠正常訪問,則在伺服器上Powershell輸入:
Get-SmbServerConfiguration
650) this.width=650;" title="clip_image002[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image002[4]" src="http://s3.51cto.com/wyfs02/M00/8D/13/wKioL1iFppfg4KO4AADsuSKtgno826.png" height="731" />
RejectUnencryptedAccess參數是如果用戶端嘗試連結到加密共用資料夾,不支援密碼編譯演算法的用戶端是否被拒絕訪問。預設值是True
我們可以將其值配置為false
在powershell 輸入:
Set-SmbServerConfiguration -RejectUnencryptedAccess $False
650) this.width=650;" title="clip_image003[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image003[4]" src="http://s3.51cto.com/wyfs02/M00/8D/13/wKioL1iFppjT1k8cAADKvJUClbs635.png" height="118" />
結果就可以了
650) this.width=650;" title="clip_image004[4]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="clip_image004[4]" src="http://s3.51cto.com/wyfs02/M01/8D/16/wKiom1iFppmSu889AABAdxt9Q6I968.png" height="167" />
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/
本文出自 “gs_hao” 部落格,謝絕轉載!
Windows Server之淺談SMB以及SMB小案例分享