SMB
SMB端口指南:445端口上的文件共享
了解 SMB 如何使用 TCP 445、何时可访问、如何测试文件共享访问以及为什么公共 SMB 暴露需要严格控制。
- 默认端口
- 445
- 协议
- TCP
- 主要用途
- 文件共享与目录服务
SMB 端口是什么?
SMB(即服务器消息块)是 Windows 文件共享、打印机共享、许多 NAS 设备和 Linux 上的 Samba 共享背后的协议。现代 SMB 通常侦听 TCP 端口 445,客户端在该端口进行身份验证并访问共享文件夹、命名管道和域资源。
端口 445 是现代 SMB 端口
Windows、Active Directory 环境、Samba 服务器和 NAS 设备通常使用 TCP 445 进行直接 SMB 流量。
SMB 通常是私有基础设施
SMB 在受信任的网络中功能强大,但将其直接暴露到互联网上风险很高,因为文件共享会受到大量扫描并经常被滥用。
SMB 的工作原理
SMB 允许客户端浏览共享、读写文件、锁定文件、使用打印机以及通过网络访问命名管道。客户端连接到 SMB 服务器,协商 SMB 方言,使用本地、域或目录支持的凭据进行身份验证,然后请求访问特定共享。
现代部署应使用 SMB 2 或 SMB 3。SMB 1 已过时,应禁用,除非紧密隔离的遗留依赖项确实需要它。 SMB 3 可以支持签名、加密、多通道性能和更好的弹性,但这些功能仍然依赖于正确的服务器和客户端策略。
SMB 与 Samba 与 NetBIOS 端口
SMB 是协议。 Samba 是一种开源实现,可让 Linux 和类 Unix 系统提供 SMB 文件共享并与 Windows 网络集成。在 Windows 上,SMB 内置于操作系统中,并通过文件和打印机共享功能公开。
端口 445 是直接托管的 SMB,是检查现代文件共享的主要端口。较旧的基于 NetBIOS 的 SMB 可能涉及 UDP 137、UDP 138 和 TCP 139。这些旧端口与 445 上的直接 SMB 不同,并且它们通常应保持关闭状态,除非您有特定的较旧网络要求。
SMB 应该向互联网开放吗?
在大多数情况下,不会。 SMB 应保留在专用网络、VPN、站点到站点隧道、零信任访问路径或严格范围的源 IP 允许列表中。公开的 SMB 暴露会引发密码喷射、共享枚举、勒索软件暂存和过时系统的利用。
如果远程用户需要文件访问,则首选 VPN、托管文件传输服务、云文件网关、专用端点或基于 Web 的文档平台。如果外部合作伙伴必须访问 SMB,请限制源网络、需要强大的身份控制、监视每个连接并避免广泛的写入权限。
打开端口 445 之前
在允许 TCP 445 之前,请确认真正的 SMB 服务正在侦听,并且共享、用户、组和权限与预期工作流程匹配。确定是否禁用来宾访问、是否需要 SMB 签名或加密以及是否阻止 SMB 1 等旧方言。
端口检查器可以告诉您 TCP 445 是否可以从网络外部访问,但它不能证明用户可以安全地访问共享。使用 SMB 客户端测试和服务器日志来验证身份验证、共享级别权限、NTFS 或文件系统 ACL 以及审核策略。
如何在 Windows、Linux 和 NAS 设备上启用 SMB
在 Windows Server 或 Windows Pro 上,启用文件和打印机共享或文件服务器角色,创建共享,设置共享权限和文件系统 ACL,并允许 Windows Defender 防火墙中的入站 TCP 445。域环境应该使用组而不是向单个用户分配权限。
在 Linux 上,安装和配置 Samba,在 smb.conf 中定义共享,创建或映射用户,并允许 TCP 445 通过 ufw、firewalld、nftables 或您的云安全组。对于混合环境,请在向用户公开共享之前确认名称解析和身份验证集成。
在 NAS 设备上,仅为需要的网络启用 SMB,禁用来宾共享(除非故意),并保持固件最新。许多 NAS 安全事件都来自于互联网上公开的管理界面和文件共享服务,而这些服务本来就不应该公开。
- 服务层:Windows 文件服务器、Samba 或 NAS SMB 服务必须在 TCP 445 上运行和侦听。
- 网络层:主机防火墙、路由器规则、VPN策略、云防火墙和网络分段必须与预期的访问路径匹配。
- 身份层:使用命名用户或组、禁用访客访问、需要强密码或目录支持的身份验证,以及删除过时的帐户。
- 数据层:在允许写入访问之前检查共享权限、文件系统 ACL、加密要求、备份和恢复过程。
如何测试SMB端口445
首先根据主机名或 IP 地址和端口 445 进行外部端口检查。如果结果打开,则远程客户端可以访问 SMB 侦听器。然后使用 Windows UNC 路径(例如 \\server\share、Linux 上的 smbclient 或支持 SMB 的文件管理器)测试实际共享。
在服务器上,使用 PowerShell、netstat、ss 或 NAS 状态页面确认侦听器。如果端口打开但共享访问失败,请检查凭据、域信任、共享权限、文件系统 ACL、SMB 方言策略、签名要求和服务器事件日志。
SMB常见故障处理案例
如果端口 445 关闭,SMB 服务可能会被禁用、被主机防火墙阻止、仅绑定到专用接口或隐藏在 VPN 路径后面。如果连接超时,路由器、云防火墙、ISP、公司出口策略或源 IP 允许列表可能会丢弃流量。
如果端口 445 已打开,但用户无法访问共享,请检查确切的共享名称、用户名格式、域成员身份、时钟同步、密码状态、NTFS 或 POSIX 权限、来宾限制以及 SMB 签名或加密策略。许多 SMB 故障是权限或身份问题,而不是端口问题。
SMB 安全检查表
尽可能让 SMB 远离公共互联网。禁用 SMB 1、需要强身份验证、删除来宾访问、应用最低权限以及快速修补 Windows、Samba 和 NAS 固件。对于敏感共享,在性能和客户端支持允许的情况下,需要 SMB 签名或加密。
备份共享数据、测试恢复、记录对敏感文件夹的访问,并对异常写入量、登录失败或来自意外网络的访问发出警报。如果 SMB 必须跨站点,请通过 VPN、专用电路或零信任访问层进行传输,而不是暴露在原始互联网上。
常见问题
SMB 使用什么端口?
现代 SMB 通常使用 TCP 端口 445。较旧的基于 NetBIOS 的 SMB 还可能涉及 UDP 137、UDP 138 和 TCP 139,但端口 445 是直接 SMB 文件共享的主要端口。
打开端口 445 安全吗?
向受信任的专用网络开放 445 是很常见的。向公共互联网开放它的风险很高,应该避免,除非访问受到严格限制、监控、修补并得到强身份验证的支持。
Samba 与 SMB 相同吗?
不。SMB 是文件共享协议。 Samba 是 SMB 的实现,通常在 Linux 和类 Unix 系统上使用,因此它们可以服务或加入 Windows 风格的文件共享环境。
为什么445端口打开了,但共享还是失败?
当身份验证、权限、SMB 方言策略、签名要求或文件系统 ACL 阻止访问时,网络路径可能会正常工作。检查服务器日志并使用 SMB 客户端进行测试,而不仅仅是端口检查器。