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

应用对象
Windows Server version 1909 Windows Server version 1903 Windows Server 2019 Windows 10, version 1809, all editions Windows Server version 1803 Windows 10, version 1803, all editions Windows 10, version 1709, all editions Windows 10, version 1703, all editions Windows Server 2016 Windows 10, version 1607, all editions Windows 10 Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 R2 Essentials Windows Server 2012 R2 for Embedded Systems Windows Server 2012 R2 Foundation Windows 8.1 Enterprise Windows 8.1 Pro Windows 8.1 Windows RT 8.1 Windows Server 2012 Datacenter Windows Server 2012 Standard Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Web Edition Windows Server 2008 R2 Foundation Windows 7 Service Pack 1 Windows 7 Ultimate Windows 7 Enterprise Windows 7 Professional Windows 7 Home Premium Windows 7 Home Basic Windows 7 Starter Windows Server 2008 Service Pack 2 Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Server 2008 Foundation Windows Server 2008 for Itanium-Based Systems

摘要

服务器消息块 (SMB) 是一种网络文件共享和数据结构协议。 SMB 在一组不同的操作系统(包括 Windows、MacOS、iOS、Linux 和 Android)中由数十亿台设备使用。 客户端可使用 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 Datacenter和 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
  • 说明:在受信任的网络上,仅允许向 DC 和文件服务器发送出站 SMB TCP 445 流量
  • 操作:如果连接安全,则允许连接
  • 自定义“如果安全设置时允许”选择其中一个选项,将“替代阻止规则”设置为“ON”
  • 程序:全部
  • 协议类型:TCP
  • 本地端口:任何
  • 远程端口:445
  • 配置文件:专用/域
  • 作用域 (本地 IP 地址) : 任何
  • 作用域 (远程 IP 地址) <域控制器和文件服务器 IP 地址>列表
  • 边缘遍历:阻止边缘遍历

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

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

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

有关详细信息,请参阅 设计具有高级安全策略的 Windows Defender 防火墙具有高级安全性的 Windows Defender 防火墙部署指南

安全连接规则

必须使用安全连接规则来实现“如果连接安全,则允许连接”和“允许连接使用 null 封装”设置的出站防火墙规则例外。 如果未在所有基于 Windows 和基于 Windows Server 的计算机上设置此规则,身份验证将失败,并且 SMB 将阻止出站。

例如,需要以下设置:

  • 规则类型:隔离
  • 要求:请求对入站和出站连接进行身份验证
  • 身份验证方法:计算机和用户 (Kerberos V5)
  • 配置文件:域、专用、公共
  • 名称:SMB 替代的隔离 ESP 身份验证

有关安全连接规则的详细信息,请参阅以下文章:

Windows 工作站和服务器服务

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

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

参考资料

设计使用高级安全策略的 Windows Defender 防火墙
具有高级安全部署指南的 Windows Defender 防火墙
Azure 远程应用
Azure 数据中心 IP 地址
Microsoft O365 IP 地址