在 Windows 配置 SMB 文件夹共享

前言

所有的操作都需要管理员身份,执行前请二选一执行以下操作:

  • 按下 WIN + X 以打开“高级菜单”,选择“终端管理员”,“Windows PowerShell (管理员)”或“命令提示符(管理员)”
  • 按下 WIN + Q 或 WIN + S 以打开“Windows 搜索”,输入 wt.exe(终端)、cmd.exe(命令提示符)或 powershell.exe(Windows PowerShell),选择最佳匹配结果并点击“以管理员身份运行”

可选功能

此项为可选,如果你确认自己的网卡支持 RDMA 且需要 SMB Direct 加速,可以勾选“SMB 直通”;普通文件共享无需勾选

按下 WIN + R 打开“运行”,输入 OptionalFeatures.exe 并按下 Enter 以打开“Windows 功能”
往下翻,找到“SMB 直通”并勾选,然后点击“确定”

仅当需要兼容旧设备时(如不支持 SMBv2/v3),才考虑启用“SMB 1.0/CIFS 文件共享支持”,且需了解其安全风险。[1]

SMB 直通

创建专用用户

在 CMD 中输入如下命令

1
net.exe user <用户名> <密码> /add

用户名与密码仅允许使用 ASCII 字符,即英文、阿拉伯数字与特殊字符(! @ # $ % * - _ 等等),不包括空格
例如,创建一个名为 Test 的用户,密码为 123,则命令为

1
net.exe user Test 123 /add

验证用户是否创建,且是否被包含到 Users 用户组
如果不是 Users 用户组可以使用 net localgroup Users <用户名> /add 来添加到

1
2
net.exe user <用户名>
net.exe localgroup Users

配置安全策略

配置安全策略是为了防止 SMB 专用的用户被用作其他登录用途
不要添加“拒绝从网络访问这台计算机”,否则该用户将无法通过 SMB 连接

鉴于 Windows 家庭版没有组策略,故使用命令行调整安全策略

非 Windows 家庭版可通过组策略编辑

按下 WIN + R 以打开“运行”,输入 secpol.msc 后,按下 Enter 以回车来打开“本地安全策略”
在“本地安全策略”的窗口中,打开到“安全设置” > “本地策略” > “用户权限分配”,找到如下策略并添加用户

  1. “拒绝本地登录”
  2. “拒绝通过远程桌面服务登录”
  3. “拒绝以服务身份登录”
  4. “拒绝作为批处理作业登录”

推荐阅读:显示文件扩展名

在 CMD 中输入如下命令

导出当前策略

1
secedit.exe /export /cfg "C:\secpol.cfg" /areas USER_RIGHTS

编辑配置文件

在 C 盘根目录下找到 secpol.cfg 文件,使用记事本或其他编辑器编辑

抑或是通过命令使用记事本打开

1
notepad.exe "C:\secpol.cfg"

在配置文件中,找到字段 SeDenyInteractiveLogonRight、SeDenyRemoteInteractiveLogonRight、SeDenyServiceLogonRight、SeDenyBatchLogonRight,在后面添加你的用户名
如果没有对应的字段,可以自行添加到配置文件的末尾,多个用户使用逗号(,)分隔,例如

1
2
3
4
SeDenyInteractiveLogonRight = Test, Test2
SeDenyRemoteInteractiveLogonRight = Test
SeDenyServiceLogonRight = Test
SeDenyBatchLogonRight = Test

导入配置文件

1
secedit.exe /configure /db "%WinDir%\security\local.sdb" /cfg "C:\secpol.cfg" /areas USER_RIGHTS

配置防火墙

如果你没有开启 Windows Defender 防火墙(不是 Microsoft Defender 防病毒/Windows Defender 防病毒),可以跳过此步骤

按下 WIN + R 以打开“运行”,输入 firewall.cpl 后,按下 Enter 以回车来打开“Windows Defender 防火墙”,点击左侧导航栏的“允许应用或功能通过 Windows Defender 防火墙”

打开“允许的应用”后,点击顶部的“更改设置”
找到“文件和打印机共享”与“文件和打印机共享(受限)”这两项,确保左侧规则开关被勾选、右侧“专用”网络的访问被允许,随后点击“确定”以保存设置

切勿在机场、咖啡厅、商场等地勾选“公用”,除非你明确知道自己在可信公用网络中使用。

配置 Windows Defender 防火墙规则

配置共享文件夹

右键要共享的文件,选择“属性”

共享

在“属性”窗口中,切换到“共享”的选项卡
在选项卡中,点击“高级共享…”,勾选“共享此文件夹”,点击“权限”,在“权限”窗口中点击“添加”,在“选择用户或组”对话框中输入用户名,点击“确定”后根据需要勾选是否允许读取或写入文件夹
推荐移除 Everyone 以防止所有人未经许可通过 SMB 访问你的共享文件夹

配置共享文件夹权限

安全

切换到“安全”选项卡,点击“编辑” > “添加”,在“选择用户或组”对话框中输入用户名,点击“确定”后根据需要勾选是否允许读取或写入文件夹
推荐移除 Everyone 以防止所有人未经许可通过 SMB 访问你的共享文件夹

配置文件夹安全权限

连接到 SMB

在在 Linux/Unix 等系统上,常用的 SMB 实现是 Samba
在连接到 SMB 时,使用上面创建的用户名与密码登录到 SMB 即可,无需使用 Windows 当前登录的用户

在 Windows 中,点击文件资源管理器顶部的“…” > “映射网络驱动器”
“文件夹”部分输入地址,例如 \\IP\<文件夹名称>
必须勾选“使用其他凭据连接”,并使用使用上面创建的用户名与密码登录

参考文献

  1. 在 Windows 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3 | Microsoft Learn