天天看点

Windows Server之浅谈SMB以及SMB小案例分享

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输入:

Windows Server之浅谈SMB以及SMB小案例分享

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用户无论怎么输入账号和密码,都显示拒绝访问,权限正常。

报错图:

Windows Server之浅谈SMB以及SMB小案例分享
Windows Server之浅谈SMB以及SMB小案例分享

导致问题的关键:共享文件夹启动加密数据

Windows Server之浅谈SMB以及SMB小案例分享

在2012中加密数据访问是加密数据来保护数据传输过程的安全性,以防止篡改和窃听攻击,用的加密算法是aes-128-ccm。所以旧版本smb2是用hmac-sha256根本就不支持。

解决方法:

方法1.去除加密数据访问,即可。(如果不考虑加密问题,则去除选择即可)

方法2.如果考虑加密问题,又想让smbv2版本的客户端能够正常访问,则在服务器上powershell输入:

Windows Server之浅谈SMB以及SMB小案例分享

rejectunencryptedaccess参数是如果客户端尝试链接到加密共享文件夹,不支持加密算法的客户端是否被拒绝访问。默认值是true

我们可以将其值配置为false

在powershell 输入:

Windows Server之浅谈SMB以及SMB小案例分享

结果就可以了

Windows Server之浅谈SMB以及SMB小案例分享

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/

继续阅读