防止 SMB 流量出现横向连接和进出网络

适用于: Windows Server version 1909Windows Server version 1903Windows Server 2019

摘要


服务器消息块 (SMB) 是一种网络文件共享和数据结构协议。 采用各种操作系统(包括 Windows、MacOS、iOS、Linux 和 Android)的数十亿台设备都使用 SMB。 客户端可使用 SMB 访问服务器上的数据。 这样可以共享文件、集中数据管理和降低移动设备的存储容量需求。 服务器还将 SMB 用作软件定义的数据中心的一部分,用于集群和复制等工作负载。

由于 SMB 是一个远程文件系统,因此它需要保护,以防 Windows 计算机可能被诱使与运行在受信任网络内的恶意服务器或网络外围的远程服务器联系并受到攻击。 防火墙最佳实践和配置可以增强安全性,防止恶意流量离开计算机或其网络。

变更的影响

阻止与 SMB 的连接可能会妨碍各种应用程序或服务正常工作。 有关可能停止运行的 Windows 和 Windows Server 应用程序和服务的列表,请查看 Windows 的服务概述和网络端口要求
 

更多信息


外围防火墙方法

位于网络边缘的外围硬件和设备防火墙应阻止到以下端口的未经请求的传入通信(从 Internet)和传出通信(到 Internet)。
 

应用程序协议

协议

端口

SMB

TCP

445

NetBIOS 名称解析

UDP

137

NetBIOS 数据图服务

UDP

138

NetBIOS 会话服务

TCP

139


任何源于 Internet 或目的地为 Internet 的 SMB 通信都不太可能是合法的。 主要情况可能是基于云的服务器或服务(如 Azure 文件),你应该在外围防火墙中创建基于 IP 地址的限制,以便仅允许这些特定的端点。 组织可以允许端口 445 访问特定的 Azure 数据中心和 O365 IP 范围,以启用本地客户端(位于企业防火墙后面)使用 SMB 端口与 Azure 文件存储交互的混合方案。 你还应仅允许 SMB 3.x 流量,并要求 SMB AES-128 加密。 有关详细信息,请参阅下面的“参考资料”部分。

注意当 Microsoft 推出 SMB 2.02 后,Windows Vista、Windows Server 2008 和所有后来的 Microsoft 操作系统将不再使用 NetBIOS 进行 SMB 传输。 但是,你的环境中可能有其他非 Windows 软件和设备 。 如果尚未禁用和删除 SMB1,则应将其禁用和删除,因为它仍使用 NetBIOS。 默认情况下,Windows Server 和 Windows 的更高版本不再安装 SMB1,如果允许,将自动将其删除。

Windows Defender 防火墙方法

所有受支持的 Windows 和 Windows Server 版本都包括 Windows Defender 防火墙(以前称为 Windows 防火墙)。 此防火墙为设备提供额外的保护,特别是当设备在网络外部移动或在网络内部运行时。

对于某些类型的网络,Windows Defender 防火墙具有不同的配置文件: 域、专用和来宾/公共。 默认情况下,“来宾/公共”网络通常比更值得信赖的“域”或“专用”网络具有更严格的设置。 根据你的威胁评估和操作需求,你可能会发现自己对这些网络有不同的 SMB 限制。

到计算机的入站连接

对于不承载 SMB 共享的 Windows 客户端和服务器,可以使用 Windows Defender 防火墙阻止所有入站 SMB 流量,以防止来自恶意或受损设备的远程连接。 在 Windows Defender 防火墙中,这包括以下入站规则。

名称

配置文件

已启用

文件和打印机共享 (SMB-In)

全部

Netlogon 服务 (NP-In)

全部

远程事件日志管理 (NP-In)

全部

远程服务管理 (NP-In)

全部


你还应创建新的阻止规则来覆盖任何其他入站防火墙规则。 对不承载 SMB 共享的任何 Windows 客户端或服务器使用以下建议的设置:

  • 名称: 阻止所有入站 SMB 445
  • 描述: 阻止所有入站 SMB TCP 445 流量。 不应用于承载 SMB 共享的域控制器或计算机。
  • 操作: 阻止连接
  • 程序: 全部
  • 远程计算机: 任何
  • 协议类型: TCP
  • 本地端口: 445
  • 远程端口: 任何
  • 配置文件: 全部
  • 范围(本地 IP 地址): 任何
  • 范围(远程 IP 地址): 任何
  • 边缘遍历: 阻止边缘遍历

你不能全局阻止到域控制器或文件服务器的入站 SMB 流量。 但是,你可以限制从受信任的 IP 范围和设备对它们的访问,以降低它们的攻击面。 它们还应限制为“域”或“专用”防火墙配置文件,且不允许“来宾/公共”流量。

注意Windows 防火墙自 Windows XP SP2 和 Windows Server 2003 SP1 以来,默认情况下会阻止所有入站 SMB 通信。 只有管理员创建 SMB 共享或更改防火墙默认设置后,Windows 设备才允许入站 SMB 通信。 无论哪种情况,你都不应相信默认的开箱即用体验在设备上仍然有效。 始终使用组策略或其他管理工具验证并主动管理设置及其所需状态。

有关详细信息,请查看使用高级安全策略设计 Windows Defender 防火墙具有高级安全部署的 Windows Defender 防火墙指南

来自计算机的出站连接

Windows 客户端和服务器需要出站 SMB 连接,以便从域控制器应用组策略,以及用户和应用程序访问文件服务器上的数据,因此在创建防火墙规则时必须小心,以防止恶意横向或 Internet 连接。 默认情况下,连接到 SMB 共享的 Windows 客户端或服务器上没有出站阻止,因此你必须创建新的阻止规则。

你还应创建新的阻止规则来覆盖任何其他入站防火墙规则。 对不承载 SMB 共享的任何 Windows 客户端或服务器使用以下建议设置。

来宾/公共(不受信任的)网络

  • 名称: 阻止出站来宾/公共 SMB 445
  • 描述: 在不受信任的网络上时阻止所有出站 SMB TCP 445 流量
  • 操作: 阻止连接
  • 程序: 全部
  • 远程计算机: 任何
  • 协议类型: TCP
  • 本地端口: 任何
  • 远程端口: 445
  • 配置文件: 来宾/公共
  • 范围(本地 IP 地址): 任何
  • 范围(远程 IP 地址): 任何
  • 边缘遍历: 阻止边缘遍历

注意对于小型办公室和家庭办公室用户,或在公司信任网络中工作并连接到其家庭网络的移动用户,在阻止公共出站网络之前应小心谨慎。 这样做可能会阻止对其本地 NAS 设备或某些打印机的访问。

专用/域(受信任的)网络

  • 名称: 允许出站域/专用 SMB 445
  • 描述: 在受信任的网络上仅允许出站 SMB TCP 445 流量到 DC 和文件服务器
  • 操作: 安全时允许连接
  • 自定义安全设置时允许: 选择其中一个选项,设置覆盖阻止规则 = 开
  • 程序: 全部
  • 协议类型: TCP
  • 本地端口: 任何
  • 远程端口: 445
  • 配置文件: 专有/域
  • 范围(本地 IP 地址): 任何
  • 范围(远程 IP 地址): <域控制器和文件服务器 IP 地址列表>
  • 边缘遍历: 阻止边缘遍历

注意如果安全连接使用包含计算机标识的身份验证,也可以使用远程计算机而不是作用域远程 IP 地址。 有关“安全时允许连接”和远程计算机选项的详细信息,请参阅 Defender 防火墙文档

  • 名称: 阻止出站域/专用 SMB 445
  • 描述: 阻止出站 SMB TCP 445 流量。 使用“允许出站域/专用 SMB 445”规则覆盖
  • 操作: 阻止连接
  • 程序: 全部
  • 远程计算机: 不适用
  • 协议类型: TCP
  • 本地端口: 任何
  • 远程端口: 445
  • 配置文件: 专有/域
  • 范围(本地 IP 地址): 任何
  • 范围(远程 IP 地址): 不适用
  • 边缘遍历: 阻止边缘遍历

你不能全局阻止从计算机到域控制器或文件服务器的出站 SMB 流量。 但是,你可以限制从受信任的 IP 范围和设备对它们的访问,以降低它们的攻击面。

有关详细信息,请查看使用高级安全策略设计 Windows Defender 防火墙具有高级安全部署的 Windows Defender 防火墙指南

Windows 工作站和服务器服务

对于完全不需要 SMB 的使用者或高度隔离的托管计算机,可以禁用服务器或工作站服务。 你可以使用“Services”管理单元 (Services.msc) 和 PowerShell Set-Service cmdlet,或使用组策略首选项手动执行此操作。 当你停止和禁用这些服务时,SMB 将无法再进行出站连接或接收入站连接。

你不能在域控制器或文件服务器上禁用服务器服务,否则客户端将无法再应用组策略或连接其数据。 你不能在属于 Active Directory 域成员的计算机上禁用工作站服务,否则这些计算机将不再应用组策略。