通过 TCP/IP 的直接主机 SMB
本文介绍如何通过 TCP/IP 定向主机服务器消息块(SMB)。
原始 KB 数: 204279
总结
Windows 支持使用直接托管在 TCP 上的 SMB 协议的文件和打印机共享流量。 SMB 1.0 和较旧的 CIFS 流量支持通过 TCP 的 NetBIOS (NBT) 协议支持 UDP 传输,但从具有 SMB 2.0.2 的 Windows Vista 和 Windows Server 2008 开始,需要通过端口 445 使用 TCP/IP。 删除 NetBIOS 传输具有几个优点,包括:
- 简化 SMB 流量的传输。
- 删除 WINS 和 NetBIOS 广播作为名称解析的方式。
- 标准化 DNS 上用于文件和打印机共享的名称解析。
- 删除不太安全的 NetBIOS 协议作为攻击方法
如果同时启用了直接托管接口和 NBT 接口,则同时尝试这两种方法,并首先使用响应。 此机制使 Windows 能够正常使用不支持直接托管 SMB 流量的操作系统。
详细信息
Tcp 上的 NetBIOS 传统上使用以下端口:
- NBName:137/UDP
- NBName:137/TCP
- NBDatagram:138/UDP
- NBSession:139/TCP
直接托管的 NetBIOS 无 SMB 流量使用端口 445(TCP)。 在这种情况下,四字节标头位于 SMB 流量之前。 此标头的第一个字节始终0x00,接下来的 3 个字节是剩余数据的长度。
使用以下步骤通过 TCP/IP 禁用 NetBIOS。 此过程强制所有 SMB 流量直接托管 SMB 流量。 注意实现此设置,因为它会导致基于 Windows 的计算机无法使用 SMB 流量与早期操作系统通信:
- 选择“开始”,指向“设置”,然后选择“网络”和“拨号连接”。
- 右键单击 “局域网连接”,然后选择“ 属性”。
- 选择 Internet 协议(TCP/IP),然后选择“ 属性”。
- 选择“高级”。
- 选择 “WINS ”选项卡,然后选择“ 通过 TCP/IP 禁用 NetBIOS”。
还可以通过使用已将 Microsoft特定于供应商的选项配置为代码 1 的 DHCP 服务器禁用 NetBIOS,通过 TCP/IP 禁用 NetBIOS。 将此选项设置为值 2 将禁用 NBT。 有关使用此方法的详细信息,请参阅 Windows 中的 DHCP 服务器帮助文件。
若要确定基于 Windows 的计算机上是否启用了基于 TCP/IP 的 NetBIOS,请在命令提示符处运行 net config redirector
或 net config server
命令。 输出显示 NetbiosSmb 设备(即无 NetBIOS 传输)和 NetBT_Tcpip 设备的绑定(这是通过 TCP 传输的 NetBIOS)。 例如,以下示例输出显示绑定到适配器的直接托管和 NBT 传输:
Workstation active on
NetbiosSmb (000000000000)
NetBT_Tcpip_{610E2A3A-16C7-4E66-A11D-A483A5468C10} (02004C4F4F50)
NetBT_Tcpip_{CAF8956D-99FB-46E3-B04B-D4BB1AE93982} (009027CED4C2)
NetBT_Tcpip单独绑定到每个适配器。 对于绑定到的每个网络适配器,将显示NetBT_Tcpip实例。 NetbiosSmb 是一个全局设备,不会基于每个适配器绑定。 因此,除非完全禁用Microsoft网络的文件和打印机共享,否则无法在 Windows 中禁用直接托管 SMB。