Windows 10/ 11 下安全并正确地使用 SMB 共享

2021-11-01 23:15:37 265点赞 1179收藏 211评论

大家在日常的工作和生活中应该多多少少都需要用到局域网共享,对于 Windows 用户来说那自然是离不开 SMB 共享了,比如说在公司局域网共享文件和打印机,家里的 NAS 开个共享给 Windows 系统访问数据等。

UP 发现社区里单纯讨论 SMB 共享设置的文章不多,因此想跟大家一起探讨一下如何在 Windows 10 / 11 下面正确且安全地开启 SMB 共享,在满足局域网内共享文件的需求下同时兼顾安全性。

如果说的不正确或不足,请不吝惜告知,谢谢!

一、不要使用 SMB1

UP 在查找 SMB 协议相关资料的时候,发现很多解决 SMB 问题的资料中还会教用户开启 SMB1 协议,UP 是非常不推荐的。

SMB1 可以追溯到20世纪80年代 IBM 和 微软DOS 时代,距离今天已经有三十多年的时间,当时计算机安全还不存在,它在拦截攻击方面有重大的架构问题 。具体的内容就不放在本文中了,如果你感兴趣的话可以查看 《Stop using SMB1》文章。

如今版本的 windows 10/11 都默认禁用了 SMB1,因此如果你还在使用这一协议的话,UP 强烈建议你去关闭,方法如下:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

二、安全使用 SMB 共享的步骤

SMB 安全是一个可以聊三天三夜的话题,但多数人不需要涉及到深层面的安全运维设置,但如果你感兴趣,可以从下面的参考资料开始了解:

How to Defend Users from Interception Attacks via SMB Client Defense

Beyond the Edge: How to Secure SMB Traffic in Windows

这里 UP 提供一个简单的,可以在工作或家庭的局域网中显著提高安全性且不会太复杂的 SMB 共享设置方法(如果你有更好的方法和建议,欢迎留言):

  1. 新建一个用户专门用于共享文件的授权,并合理设置此用户的权限;

  2. 合理设置网络共享和系统安全的相关设置;

  3. 开启共享,授权指定用户;

  4. 手动添加证书,采用“映射网络驱动器”的方式访问共享。

三、创建专用的用户

这里我们来给系统新建一个本地用户,此用户只用在 SMB 共享。

右键我的电脑右键我的电脑

Windows 10/ 11 下安全并正确地使用 SMB 共享

右键空白处,点击“新用户”右键空白处,点击“新用户”

这里 UP 新建了一个账号为 "joker" 的用户,相关设置如下:

由于只是用于共享,因此可以设置不能更改密码,且密码不会过期由于只是用于共享,因此可以设置不能更改密码,且密码不会过期

Windows 10/ 11 下安全并正确地使用 SMB 共享

四、合理设置网络共享和系统安全的相关设置

1. 禁用“启用不安全的来宾登录”

默认情况下,在 SMB2 和 SMB3 版本中,Windows 10 / 11 系统下是禁用此服务的,按照本文的思路,如果你开启了我建议你关闭,步骤如下:

按住 windows 键 + R,在弹出的“运行”窗口中输入 gpedit.msc 打开“本地组策略编辑器”:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

微软也明确说明了,开启此项功能会产生很大的安全漏洞微软也明确说明了,开启此项功能会产生很大的安全漏洞

为什么要禁用?因为很容易遭受中间人攻击。

简单来说,在你使用 SMB1 协议去共享文件时,虽然别人访问你的共享文件时 SMB1 会去验证访问者提供的用户证书是否有效,但是如果验证此证书为无效之后,SMB1 将会尝试开启“来宾”(guest)登录模式,允许访问者以“来宾”(guest)的身份进行登录。

换句话说,就相当于“我不认识你,也不知道你是好人还是坏人,但是来者皆视为宾客”。

所以你知道为啥要关闭这个设置了吧?Windows 10/ 11 下安全并正确地使用 SMB 共享

UP 看到很多教程都会教用户开启此项设置开解决某些 SMB 问题(比如说下图),UP 真心不建议。

图片网络图片网络

上图产生的错误,就是因为我们禁用了“来宾”身份的登录,但是大家不要认为这是不好的结果,恰恰相反,我们禁用此项功能就是为了实现这个目的——更好地保护我们的 SMB 共享资料安全

那么该如何正确的使用 SMB 共享,请继续往下看。

2. 合理分配用户权限

同样的,使用“运行”窗框输入 secpol.msc 打开 “本地安全策略”设置窗口:

Windows 10/ 11 下安全并正确地使用 SMB 共享

(1)授予用户“从网络访问此计算机”的权限:

从网络访问此计算机”指只有授权的用户能够通过网络来访问到本机上的共享文件资源(包括共享的打印机)

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

(2)限制此用户登录到系统上:“拒绝本地登录”和“拒绝通过远程桌面服务登录”

按照同样的方法,将此用户添加到以下两项设置的名单中:

拒绝本地登录:即不允许特定用户在本电脑上进行登录

拒绝通过远程桌面服务登录:即不允许此账户使用远程桌面登录到本系统

设置好之后,joker 用户就无法本地登录到系统,同时也无法通过远程桌面的形式登录到本机,因为我们的目的就是让 joker 只能用来使用 SMB 共享。

Windows 10/ 11 下安全并正确地使用 SMB 共享

3. 本地安全选项设置

请参考下图的设置进行设置:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Microsoft网络服务器:对通信进行数字签名(始终) —— 禁用

此项设置用来确定 SMB 的数据包是否需要进行数字签名(类似于加密的意思),用来防止中间人攻击。比如说当我们设置了一个文件夹的 SMB 共享,那么当网络里面的其他人(相当于客户端)来想要访问我们的这个文件夹时,我们(相当于服务端)就会要求其他人也开启 SMB 数字签名的功能,否则我们不允许他们来访问我们的文件夹(不允许建立连接)。对于一般人来说是不需要开启的,除非你有很明确的理由。

默认情况下此项设置处于禁用状态,一般情况下也不需要打开。如果你打开了,说明要么你是专业人士,要么是误打误撞开启了这个选项,在你不理解这个设置背后的逻辑情况下,我建议你关掉,否则会产生访问错误。

Microsoft网络客户端:对通信进行数字签名(如果服务器允许) —— 启用

建议打开,原因是我们在访问别人的 SMB 共享文件夹时,如果对方(服务器端)要求数字签名,那么如果此项设置没有启用,对方的服务器就不会允许我们(客户端)进行连接。

Microsoft网络客户端:对通信进行数字签名(始终) —— 禁用

默认情况下是关闭的,建议不要打开。如果开启了,并且服务器端没有启用数字签名,那么将无法实现访问 —— 因为我们坚持要对 SMB 数据包进行数字签名,不签名不访问。

设备:防止用户安装打印机驱动程序 —— 禁用

假如开启了此项设置,那么当你共享了一个打印机让别人来使用时,别人将没有办法直接从你这边下载这个打印机的驱动(除非别人用的是你电脑的管理员账号,否则无法下载驱动),建议关闭(默认也是关闭的)。

重点,请将 “网络访问:本地账户的共享和安全模型” 设置为 “经典-对本地用户进行身份验证,不改变其本来身份”

Windows 10/ 11 下安全并正确地使用 SMB 共享

很多教程会教你选择第二个选项 —— “仅来宾-对本地用户进行身份验证,其身份为来宾”来解决某些问题,但跟我前面说的一样,“来宾”身份存在很大的安全漏洞,不建议设置。

微软在这一项设置中也明确说明了具体的细节:

此安全设置确定如何对使用本地帐户的网络登录进行身份验证。如果将此设置设为“经典”,使用本地帐户凭据的网络登录通过这些凭据进行身份验证。“经典”模型能够对资源的访问权限进行精细的控制。通过使用“经典”模型,你可以针对同一个资源为不同用户授予不同类型的访问权限。

如果将此设置设为“仅来宾”,使用本地帐户的网络登录会自动映射到来宾帐户。使用“仅来宾”模型,所有用户都可得到平等对待。所有用户都以来宾身份进行验证,并且都获得相同的访问权限级别来访问指定的资源,这些权限可以为只读或修改。

使用“仅来宾”模型时,所有可以通过网络访问计算机的用户(包括匿名 Internet 用户)都可以访问共享资源。你必须使用 Windows 防火墙或其他类似设备来防止对计算机进行未经授权的访问。同样,使用“经典”模型时,本地帐户必须受密码保护;否则,这些用户帐户可以被任何人用来访问共享的系统资源。

至此,我们用户和系统的相关设置已经处理完毕,接下来我们来设置“网络和共享中心”。

五、“网络和共享中心”:开启有保护的共享

打开共享设置:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

下面 UP 讲解一下上面相关共享设置的作用:

1. “启用网络发现”:其实可以不用开启

Windows 10/ 11 下安全并正确地使用 SMB 共享

当你勾选此项设置,那么当你在使用“网络”面板时就能发现同局域网下面的其他主机(对方也要开启网络发现):

如果不启用将无法查看,但其实影响不大如果不启用将无法查看,但其实影响不大

其实这一项设置不开启也是没问题的,不影响我们去做 SMB 共享,而且关闭此项设置能将我们从其他 Windows 主机的网络面板中隐藏起来,提高安全性。

2. 启用“文件和打印机共享”

如果不开启,是无法实现 SMB 共享的,因此需要启用:

Windows 10/ 11 下安全并正确地使用 SMB 共享

3. 启用密码保护

这就不必多说了,密码保护必定要开启。

Windows 10/ 11 下安全并正确地使用 SMB 共享

六、设置 SMB 共享

这里我们新建了一个 "share" 文件夹,我们将对此文件夹开启共享:

Windows 10/ 11 下安全并正确地使用 SMB 共享

文件夹里面有一张图片文件夹里面有一张图片

右键文件夹,点击“属性”右键文件夹,点击“属性”

点击“高级共享”点击“高级共享”

Windows 10/ 11 下安全并正确地使用 SMB 共享

删除 Everyone 用户,不然谁都可以进行访问就不好了删除 Everyone 用户,不然谁都可以进行访问就不好了

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

上图中的“网络路径”:我们可以在资源管理器的地址栏中输入此地址来访问,但是不建议采用此种方式。

我们设置好了文件夹的共享,并且此文件夹只有 "joker" 用户以及我们管理员用户才能进行访问,接下来教大家如何正确的访问我们共享的文件夹。

七、添加证书,并通过映射网络驱动器来访问共享的文件夹

这里我们用另一个 Windows 系统来访问我们设置好的 "share" 文件夹。

此处关于 SMB 证书的相关知识,可以看 UP 的另一篇文章:

unRaid SMB 共享:基于Windows 10 下的 SMB 问题深入分析及解决方式创作立场声明:本文章首发于SMZDM,转载请注明作者和出处一、前言:Windows下的SMB问题随处可见相信大家在使用unRaid的SMB共享时都会遇到过如下问题(其实抛开unRaid不谈,相信大家其他情形下也遇到过):unRaid官方论坛上与SMB有关的问题也是一抓一大把:1000多条有关SMB问Jackie的羊毛| 19 评论16 收藏77查看详情

1. 添加 Windows 凭证

首先,我们在另一台 Windows 系统上,可以先手动生成一份证书保存到系统中,这样以后我们在去访问 "share" 文件夹时就不需要手动输入 "joker" 用户的账号和密码了:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

注意,这里的地址我们不要用主机名的形式,而应该用ip地址注意,这里的地址我们不要用主机名的形式,而应该用ip地址

添加完成添加完成

2. 映射网络驱动器

这里,我们不要使用网络面板的形式去访问我们设置的 "share" 文件夹(如果你跟着 UP 的设置,在上面关闭了网络发现,那么通过网络面板是找不到我们的主机的),而应该是使用“映射网络启动器”的形式:

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

Windows 10/ 11 下安全并正确地使用 SMB 共享

至此,我们完成所有的相关设置,并已经能够正确的访问我们设置的共享文件夹了。

八、总结

我们来回顾一下本文的重点:

  • 为了数据的安全,我们不应该去使用 SMB1 协议;

  • 我们可以新建一个低权限的用户来使用 SMB 共享,做到安全的隔离;

  • 在本地安全策略中,应该禁止启用“来宾”身份相关的安全设置;

  • 我们在启用网络发现时,应该开启密码保护;

  • 不建议通过“网络”面板去访问共享资源,而应该是使用“映射网络驱动器”的形式;

不知道 UP 有没有把内容说得能让大家明白,如果大家有不明的地方(或者 UP 说得不对的地)可以私信或者评论区留言。

(完)

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

159元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

106元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

279元起

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

279元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

234元起
211评论

  • 精彩
  • 最新
  • 我知道为什么我按照教程然后用手机访问提示拒绝访问了,必须再共享文件夹属性-安全-编辑 菜单里,把建的这个本地共享账户添加到里边,然后再给予权限应用了才行

    校验提示文案

    提交
  • IT 人士已阅,很详细,挺专业。

    校验提示文案

    提交
    感谢感谢,我只是个业余的,刚好查到smb这一块的资料就来跟大家探讨了 [狂汗]

    校验提示文案

    提交
    收起所有回复
  • 再读了一遍,谢谢老哥提供的新建本地账户的思路,解决的主账号是Microsoft账号的麻烦

    校验提示文案

    提交
    [脸红] 有帮助就好

    校验提示文案

    提交
    收起所有回复
  • 不得不注册个账号登录 前来留言致谢。已经尝试了好久SMB共享,一直失败,今天无意路过,抱着死马当活马医的态度,按照文章照做一遍,一次成功。感激不尽!

    校验提示文案

    提交
    感谢感谢 [脸红] 能帮到就好

    校验提示文案

    提交
    收起所有回复
  • 太感动了,这才是解决共享问题的正确方法,而不是动不动就开启smb1.0,开启来宾登陆,但网上一搜相关的问题清一色都是简单粗暴的解决方法,哎

    校验提示文案

    提交
    [脸红] 感谢感谢,目前网上存在的方法都比较粗暴,所以当时才产生写这一篇文章的想法

    校验提示文案

    提交
    收起所有回复
  • 我之前也是这样想的新建账户用来专门做有密码的共享,结果总是显示无权限查看。

    校验提示文案

    提交
    可能是哪里没设置对吧

    校验提示文案

    提交
    右键你想共享的文件夹-属性-安全-编辑-添加(添加用户)-把你用来专门共享的用户给添加进去,并且给他读取和修改写入权限(读取和修改权限可以给,也可以不给,看需求)-然后确定,你就会发现不会提示无权限查看了 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 撸主说的很详细 [赞一个] [赞一个] [赞一个] [赞一个]

    校验提示文案

    提交
    谢谢这位老哥,你也在我的另一个文章回复了哈,感谢打赏 [脸红]

    校验提示文案

    提交
    收起所有回复
  • 这篇文章说的很详细,好文章,先收藏了。

    校验提示文案

    提交
    谢谢这位同学 [脸红]

    校验提示文案

    提交
    难得看到这么详尽的文章,必须打赏,欢迎继续写起来

    校验提示文案

    提交
    收起所有回复
  • 想照着做,到了第三步就完了,笔记本的win10home版本,没有本地用户和组选项,mmc里也加不了。。。

    校验提示文案

    提交
    [喜极而泣] 我一直都没用过home版本

    校验提示文案

    提交
    桌面新建文本文档,输入

    @echo off



    pushd "%~dp0"



    dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt



    dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt



    for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"



    pause

    然后保存,把文本文档改成gpedit.bat(如果没开文件后缀显示要到文件设置里面调整,改完后缀会变成bat文件格式),最后右键管理员模式运行。

    校验提示文案

    提交
    收起所有回复
  • 先评后赞再打赏。国庆那几天装完win11设置smb共享,网上的教程五花八门,头疼不已。花了几个小时才完成设置,也不知道安不安全。下班回家就按po主的设置来一遍。

    校验提示文案

    提交
    [脸红] 弄好了告诉我一声

    校验提示文案

    提交
    收起所有回复
  • 感谢详细介绍

    校验提示文案

    提交
    客气客气,谢谢 [脸红]

    校验提示文案

    提交
    收起所有回复
  • Windows更新会打乱这一切吗?好多网络方面的问题当Windows更新之后

    校验提示文案

    提交
    不会。微软2014年的时候就已经抛弃smb1了,在windows 8.1 和 server 2012 的时候smb1是默认自带并且常规情况下你也无法删除,不过在那之后的版本都是默认禁用smb1的。

    校验提示文案

    提交
    收起所有回复
  • 感谢作者的分享,但是我有一个疑问:
    这样设置完,路由器中所有的无线设备都可以正常访问共享,但是有线设备(win10)却提示0x80070035

    校验提示文案

    提交
    [喜极而泣] 这个问题我倒没有遇到过,你看看查下资料?我一下子也不知道要咋解决。

    校验提示文案

    提交
    好滴,我再看看

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 自己试了两年多,一直是通过Guest账户才能使用网络共享的。感谢老哥提供的方法,总算是有了一个完美的解决方案。特地注册一个账号来评论!支持!

    校验提示文案

    提交
    谢谢,能帮到你就好

    校验提示文案

    提交
    收起所有回复
  • 同时几个joker 用户可以登陆受操作系统限制

    校验提示文案

    提交
    最高20,数量限制的设置选项在上面我们给 share 文件夹开启共享的那个属性窗口

    校验提示文案

    提交
    收起所有回复
  • 外网可以直接映射吗?我的ipv6好像不行

    校验提示文案

    提交
    应该是可以的,SMB 用的是 TCP 445 端口。我查了下资料,如果要外网映射的话,需要在防火墙中放行445端口的“入站规则”,其他更具体的可能你得去查一下资料,我也没尝试过。

    校验提示文案

    提交
    用不了,运营商已经禁了445+80;换端口可以

    校验提示文案

    提交
    收起所有回复
  • NAS与电脑SMA共享,如何防范勒索病毒?

    校验提示文案

    提交
    Windows及时安装更新补丁,开启自带的防火墙(或第三方如火绒),不要运行不明的软件(或者放虚拟机里运行);NAS不要直接暴露关键端口(如443,80,22等),做好备份,做好用户权限划分.........(更多的请查找资料哈,这个话题比较大一下子也说不完)

    校验提示文案

    提交
    感谢回复,已打赏

    校验提示文案

    提交
    收起所有回复
  • 二级内网无法做这个smb共享吧?

    校验提示文案

    提交
    我查了一下资料,是可以的,但是涉及到的内容比较多,有 windows 自身的防火墙策略的(SMB 135 137 139 端口)、有路由器路由策略的,我目前还没弄清楚 [狂汗]

    校验提示文案

    提交
    这跟直接做内网穿透差不多了。。。干脆搞远程访问得了 [观察]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 讲得挺细的。但是为什么不建议直接用共享文件夹,要映射为磁盘呢?

    校验提示文案

    提交
    映射为驱动器是为了更方便地使用别人共享的文件夹,映射好之后就相当于是本地的一块磁盘,使用起来就更方便了。

    校验提示文案

    提交
    收起所有回复
  • 好像很多东西没有smb1还真不行吧,但具体的我又想不起来了

    校验提示文案

    提交
    对的,有一些比较老版本的软件或系统是需要smb1,但是绝大多数情况下对于一般用户是不需要使用到smb1的。如果你想了解有哪些厂家的产品还需要使用到smb1,可以查阅去看看

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.1K
扫一下,分享更方便,购买更轻松