Windows Server之淺談SMB以及SMB小案例分享

來源:互聯網
上載者:User

標籤: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,會停用以下功能:

  1. 請求複合 - 允許將多個SMB 2請求作為單個網路請求發送

  2. 更大的讀取和寫入 - 更好地使用更快的網路

  3. 快取檔案夾和檔案屬性 - 用戶端保留檔案夾和檔案的本機複本

  4. 持久控制代碼 - 如果存在臨時中斷連線,則允許串連透明地重新串連到伺服器

  5. 改進的訊息簽名 - HMAC SHA-256將MD5替換為散列演算法

  6. 提高檔案分享權限設定的可擴充性 - 每個伺服器的使用者數,共用數和開啟檔案數大大增加

  7. 支援符號連結

  8. 客戶機操作鎖租賃模式 - 限制客戶機和伺服器之間傳輸的資料,提高高延遲網路的效能並增加SMB伺服器可擴充性

  9. 大MTU支援 - 完全使用10Gigabye(GB)乙太網路

  10. 提高能源效率 - 向伺服器開啟檔案的用戶端可以睡眠

在Windows 8 和WS 2012 禁用SMBv3.會停用以下功能:

  1. 透明容錯移轉 - 用戶端在維護或容錯移轉期間重新串連而不中斷叢集節點

  2. Scale Out - 對所有檔案叢集節點上的共用資料的並發訪問

  3. 多通道 - 如果用戶端和伺服器之間有多條路徑,則可以彙總網路頻寬和容錯

  4. SMB直接 - 增加了RDMA網路支援,以實現非常高的效能,低延遲和低CPU利用率

  5. 加密 - 提供端到端加密,防止在不可信的網路上被竊聽

  6. 目錄租賃 - 通過緩衝改進分公司的應用程式回應時間

  7. 效能最佳化 - 小型隨機讀/寫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小案例分享

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.