实用技巧,安全地使用SMB来共享文件

您所在的位置:网站首页 ses文件浏览器 实用技巧,安全地使用SMB来共享文件

实用技巧,安全地使用SMB来共享文件

2024-07-10 12:54| 来源: 网络整理| 查看: 265

写在前面

注意:此文不适用于 Windows 7 用户,Windows 10/11 家庭版用户请通过有效手段升级专业版或企业版后再行设置,不然,可以了解下通过 NFC 贴纸实现文件共享。

SMB,Server Message Block,译作服务(器)消息块,是 IBM 于 1983 年发布的一种文件共享协议,幼年得到英特尔和微软的照料,最终在微软的培养下成长为当今网络文件共享协议两极之一的存在。另一极是 Sun 公司 1984 年发布的 NFS,之后会介绍。

SMB 只是系统之间通信的一种方式(协议),并不是什么特殊的软件。它被设计成为允许计算机通过本地局域网(LAN)在远程主机上读写文件。

p.s.远程主机上通过 SMB 协议开放访问的目录称为「共享文件夹」。

CIFS,Common Internet File System,译作通用因特网文件系统。它其实是 SMB 的衍生品,或者说一种特殊实现,其由微软开发,二者都是协议级的概念。

从 1983 年到 2007 年这整整 24 年时间,SMB 作为一个网络文件系统的功能已经相对比较完整,各种文件系统操作、用户认证、消息签名、客户端缓存等等的功能都有,更是取消了对 NetBIOS 协议层的依赖,从而直接使用 445 端口运行在 TCP/IP 之上。

至于为何 SMB 在 1996 年一度更名为 CIFS,那都是源于微软在面对 Sun 公司的 NFS 协议面向 Web 服务的扩张(WebNFS)时进行的一次失败的 IETF 标准化尝试。

在此我们不对这段历史做详细叙述,总之,这一次改名导致人们现在有时也仍以 CIFS 来称呼 SMB,比如在 Linux 平台上 SMB 的客户端就一直保持了 CIFS 的命名。

Samba 也是对 SMB 协议的一种实现,它是一组不同功能程序组成的应用集合,可以让 Linux 服务器实现文件服务器、身份授权和认证、名称解析和打印服务等功能,能够允许 Windows 客户主机访问 Linux 服务器上的目录、打印机和文件。

最重要的是,Samba 可以将 Linux 服务器构建成一个域控制器,这样一来,我们可以直接使用 Windows 域中的用户凭据,免去了手动再在 Linux 服务器上重新创建的麻烦。

最后提一下 NFS,Network File System,译作网络文件系统,它是 Sun 公司于 1984 年面向 SMB 而开发的具有相同功能的网络文件系统,但其与 SMB/CIFS 完全不兼容。

NFS 客户端无法与 SMB 服务器交互,它通常使用在 Unix 系统(如 Solaris)和类 Unix 系统(如 Linux 和 FreeBSD)上,所以如果你混用 Windows 和 Linux,Samba 更好。

主要原因,Windows 和 macOS 上虽有提供 NFS 实现,但在 Windows 上挂载 NFS 的共享目录时,由于其长久以来不支持 UTF-8,会导致中文字符显示为乱码。

SMB 作为一个诞生在谷歌、亚马逊、雅虎,乃至思科都还不存在的互联网远古时代的网络协议,其早期版本(SMB1.0/CIFS,以下简称 SMB1)在不停地修修补补中也逐渐无法适应当今的网络环境了。如今的互联网,已不再纯粹更惶说简单,存储海量数据的同时也在快速生产巨量数据,运行着各式各样的网络应用,充斥着无处不在的恶意攻击。

SMB1 有太多缺点,除却在 2017 年因为 WannaCry 病毒而再次暴露出的巨大安全漏洞外,本身特性就注定它会耗费巨大的网络资源以及在远距通信场景下极差的性能。

对于 SMB1 的种种不足和为什么要停止使用 SMB1,微软 SMB 项目的负责人 Ned Pyle 早已有了清晰的诉说,感兴趣的可以去搜索下 Stop using SMB1。

随着互联网产业的快速发展,SMB1 堪忧的安全性和愈发落后时代的性能使得微软不得不对其进行大刀阔斧的修订,并在 2007 年发布了 SMB2.0。

现在 SMB2.x 和 SMB3.x 才是 Windows 系统环境中实际使用的标准,其众多的特性基本都是围绕着增加安全性和提高性能这两个方面来设计的。

如今 Windows 10/11 已默认禁用 SMB1.0/CIFS,运行 OptionalFeatures 命令查询:

Win+R 组合键打开运行窗口

本文所载的 SMB 安全设置,适用于 10/11,但鉴于 Windows 10 早期版本并未默认禁用,所以还是有必要查看一下其是否是已禁用状态:

启用或关闭 Windows 功能

已禁用状态是指「SMB 1.0/CIFS 文件共享支持」选项不被勾选。

共享设置

SMB 安全是一个可以大聊特聊的话题,不过对于大多数人来说,都没必要去了解其深层次的安全运维设置,所以这里所载是在工作或家庭网络中安全地使用 SMB 共享文件。

那么如何进行这个所谓的安全共享设置呢,分为以下四步:

① 创建一个专用的共享帐户,授予其合理的可操作权限;

② 针对网络安全和系统安全方面进行一些必要的设置;

③ 创建一个专用共享的目录,并只授权给专用帐户;

④ 在手机端及其他电脑上进行设置,以快速访问。

(1) 创建一个专用于网络共享的帐户

运行 compmgmt.msc 命令,打开计算机管理(此处也可运行 lusrmgr.msc 命令):

计算机管理

① 双击本地用户和组;

② 单击用户:

本地用户和组

③ 在右边空白处右键打开选项菜单,单击「新用户」,以创建新帐户:

A.填入共享帐户相关信息:用户名(U)和描述(D);

B.先反勾选「用户下次登录时须更改密码(M)」;

C.再勾选「用户不能更改密码(S)」和「密码永不过期(W)」;

D.最后检查确认下填入的信息后,单击「创建」:

创建共享帐户

(2) 授予专用共享帐户对操作系统合理的可操作权限

运行 secpol.msc 命令,打开本地安全策略:

本地安全策略

① 双击本地策略;

② 双击用户权限分配;

③ 授予共享帐户「从网络访问此计算机」的权限:

授予共享帐户「从网络访问此计算机」的权限

④ 双击「从网络访问此计算机」后,像下面这样添加和删除帐户:

A.先单击「添加用户或组」,添加帐户 Share;

B.再删除 Everyone 和 Users:

使 Share 帐户能够从网络访问此计算机

⑤ 限制共享帐户登录到本地计算机上:

A.「拒绝本地登录」

B.「拒绝通过远程桌面服务登录」

限制共享帐户登录到本地计算机

(3) 在网络安全和系统安全方面进行一些必要设置

运行 gpedit.msc 命令,打开本地组策略编辑器:

本地组策略编辑器

① 禁用「启用不安全的来宾登录」

A. 计算机配置

B. 管理模块

C. 网络

D. Lanman 工作站

E. 双击「启用不安全的来宾登录」

F. 单击「已禁用」,确定

禁用「启用不安全的来宾登录」

② 安全选项设置

A. 计算机配置

B. Windows 设置

C. 安全设置

D. 本地策略

E. 安全选项

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

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

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

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

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

    - 网络访问:本地帐户的共享和安全模型

      (经典 - 对本地用户进行身份验证,不改变其本来身份)

(4) 开启“有保护的”网络共享

运行 control /name Microsoft.NetworkAndSharingCenter 命令,打开网络和共享中心:

网络和共享中心

单击「更改高级共享设置」:

① 关闭专用网络和公用网络上的「网络发现」;

② 开启专用网络和公用网络上的「文件和打印机共享」;

③ 开启所有网络上的「密码保护的共享」:

高级共享设置

(5) 创建专用于共享的目录

专用于共享的目录 SMBshare

右击目录名称,在选项菜单中选择「属性」,进去后:

① 单击共享,选择要与其共享的帐户;

② 单击高级共享:

SMBshare 目录属性

③ 在「高级共享」中单击「权限」;

④ 添加共享帐户 Share,并勾选「完全控制」;

⑤ 删除 Everyone:

添加共享帐户

⑥ 最后确定,确定。

(6) 获取本机 IPv4 地址

① 运行 cmd 命令,打开命令行窗口;

② 执行 ipconfig 命令,找到「无线局域网适配器 WLAN」一栏;

③ 再找到 IPv4 地址一栏,其后就是建立连接必需的 IPv4 地址。

手机端访问设置

此处基于安卓平台,使用 ES 文件浏览器作为桥梁实现手机和电脑间的文件共享。

① 下载 ES 文件浏览器,并打开;

② 点击左上角,打开应用主菜单;

③ 点击「网络」,展开子选项:

ES 文件浏览器 - 网络

④ 再点击「我的网络」;

⑤ 接着点击右上角,打开功能主菜单;

⑥ 随后点击「新建」,在子菜单中选择「局域网」;

⑦ 最后填入访问共享目录所需的有关信息,确定:

新建 - 局域网

正常来说苹果手机使用 ES 文件浏览器也能依此实现与 Windows 电脑的文件共享,但因为笔者没法测试其有效性,故不敢保证此法也适用于苹果手机和 Windows 电脑。

其他电脑访问设置

(1) 在访问端创建被访问端的访问凭据

这里主要是创建一个存储被访问端(远程主机)共享目录网络位置信息的访问凭据,这样在访问端(本地主机)需要访问共享目录时就无需每次都输入帐户名和密码了。

运行 control keymgr.dll 命令,打开凭据管理器:

凭据管理器

① 单击「Windows 凭据」;

② 单击「添加 Windows 凭据」;

③「键入网站地址(或网络位置)和凭据」:

键入网络位置和凭据

④ 确定即可。

(2) 映射网络驱动器

Win+E 组合键,打开文件资源管理器:

① 右击「此电脑」;

② 在选项菜单中选择「映射网络驱动器」;

③ 填入「要映射的网络文件夹」的信息:

要映射的网络文件夹

最后,就可以在「此电脑」的「网络位置」下快速访问共享文件夹了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3