`
jguangyou
  • 浏览: 375799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

强弱主机模式(转自微软TechNet Magazine )

 
阅读更多

 

网络主机的一种越来越常见的配置是通过多个网络接口实现多宿主化。多宿主主机可同时连接多个网络,如 Intranet 或 Internet,从而提供增强的连接性。但是,由于它们既可连接到 Intranet,又可连接到
Internet,因此在多宿主主机上运行的服务容易受到攻击。为了帮助您阻止攻击并了解如何处理多宿主主机的 IP 通信,我将介绍多宿主主机的强弱主机模式,然后讲述 Windows® 如何支持这些模式。
RFC 1122 规范描述了不作为路由器使用且仅发送和接收单播 IP 通信的多宿主主机的两种模式。这两种模式,就是通常所说的强主机和弱主机,指定了发送或接收的单播通信是否必须与通信传输所经的网络接口相关联。这些模式确定主机如何发送和接收数据包,以及主机如何影响在其上运行的服务的易受攻击性。
虽然 RFC 1122 是为 IPv4 定义了这些模式,但这些模式同样适用于 IPv6。IPv6 的一个多宿主主机示例是一台同时使用 IPv4 和 IPv6 的计算机,该计算机具有一个连接 Intranet 的网络适配器和一个 IPv6 隧道接口。


弱主机模式
在弱主机模式下,IP 主机(IPv4 或 IPv6)可在未分配正处于发送状态的数据包的源 IP 地址的接口上发送数据包。这称为弱主机发送行为。IP 主机还可在未分配处于接收状态的数据包的目标 IP 地址的接口上接收数据包。这称为弱主机接收行为。
当您使用具有多个接口的多宿主 IP 主机时,在接口上启用弱主机接收行为有时可使主机容易受到多宿主攻击。例如,图 1 显示了同时连接 Internet 和 Intranet 的主机 A。主机 A 具有分配给其 Internet 接口的公共 IPv4 地址 131.107.89.211,以及分配给其 Intranet 接口的专用 IPv4 地址 192.168.17.48。
图 1 多宿主计算机示例 
如果主机 A 在其 Internet 和 Intranet 接口都启用弱主机发送行为,则它可在其 Internet 接口上发送来自 131.107.89.211 和 192.168.17.48 的数据包,在其 Intranet 接口上发送来自 131.107.89.211 和 192.168.17.48 的数据包。
如果主机 A 启用弱主机接收行为,则它可接收以下类型的数据包(假设主机防火墙规则允许该传入通信):在其 Internet 接口上接收到 131.107.89.211 和 192.168.17.48 的数据包,在其 Intranet 接口上接收到 131.107.89.211 和 192.168.17.48 的数据包。
当您启用弱主机接收行为后,Internet 中的恶意用户可将数据包发送至主机 A 的 Internet 接口,攻击在主机 A 上运行的、仅对 Intranet 中的主机可用的服务。如果 Internet 基础结构支持将目标为 192.168.17.48 的数据包转发到主机 A 的 Internet 接口,就可能发生此类型的攻击。您可在主机 A 的 Internet 接口上设置适当的防火墙规则,防止此类型的攻击。但是,即使您这样做了,在主机 A 上运行的对 Intranet 客户端可用的服务仍存在风险。


强主机模式
在强主机模式下,发送和接收行为有所不同。使用强主机发送,主机仅可在分配了处于发送状态的数据包的源 IP 地址的接口上发送数据包。使用强主机接收,主机仅可在分配了处于接收状态的数据包的目标 IP 地址的接口上接收数据包。
如果图 1 中主机 A 在其 Internet 和 Intranet 接口都启用强主机发送行为,则它仅可在其 Internet 接口上发送来自 131.107.89.211 的数据包,在其 Intranet 接口上发送来自 192.168.17.48 的数据包。
如果启用强主机接收行为,则主机 A 仅可在其 Internet 接口上接收到 131.107.89.211 的数据包,在其 Intranet 接口上接收到 192.168.17.48 的数据包。
图 1 中,主机 A 的强主机模式将所有地址为 192.168.17.48 的传入数据包放到 Internet 接口上,而无需您配置防火墙规则,有效地将主机 A 的 Intranet 接口和 Internet 接口隔开。
当您选择强主机模式时,请记住,它也许会影响为弱主机行为设计的某些连接类型。例如,某些负载平衡实现也许使用弱主机接收行为在任一接口接收数据包,然后将它们路由到适当的内部接口。对于使用弱主机发送来发送来自某接口(与某快速连接对应)上的任一源地址的通信的主机,也可能会有影响。


强主机发送和接收
现在,我们看一看当您允许每个接口启用或禁用强主机发送和接收时,在 IPv4 或 IPv6 的普通主机上,发送和接收过程是如何进行的。
对于发送中的数据包,IP 首先检查是否已经指定了源地址。如果未指定,IP 将在路由表中无约束查询该数据包的目标地址。在无约束查询中,路由表中的所有路由均在考虑之列。根据所选的目标路由,IP 确定下一跃点接口(该接口用于将数据包放置在链路层)和下一跃点地址。根据下一跃点接口,IP 根据需要使用在 RFC 3484 中定义的地址选择过程来确定最佳源地址。此时,IP 具备了发送数据包的所有条件:源地址和目标地址、下一跃点接口和下一跃点地址。
如果指定了源地址,那么源接口也就可知。因为源接口分配给了源地址。然后,IP 就可确定源接口上是否已启用强主机发送。
如果未启用,IP 将在路由表中对数据包的目标地址执行无约束查询。根据目标的最佳匹配路由,IP 确定下一跃点接口和下一跃点地址。IP 具有了源地址和目标地址、下一跃点接口和下一跃点地址。请注意:如果在源接口上禁用强主机发送行为,下一跃点接口也许与源接口不同。
如果源接口上启用了强主机发送,IP 将在路由表中对数据包的目标地址执行受约束的查询。在受约束的查询中,仅考虑带有源接口的下一跃点接口的路由。根据所选目标路由,IP 确定下一跃点地址。IP 具有了源地址和目标地址、下一跃点接口和下一跃点地址。请注意,如果在源接口上启用强主机发送行为,下一跃点接口将始终与源接口相同。图 2 显示发送主机进程的普通 IP。
图 2 发送主机进程的通用 IP (单击该图像获得较大视图)
指定源地址后,受约束的路由查询可在路由表中的与目标最相匹配的多个路由中选择指标较高的路由。例如,图 1 中的主机 A 具有两个默认路由,一个指向跃点为 10 的 Internet,另一个指向跃点为 20 的 Intranet。两个 LAN 接口上均启用了强主机行为。
如果主机 A 上的发送应用程序未指定源地址,则路由查询结果将是具有最低跃点数的默认路由;主机 A 始终从源地址为 131.107.89.211 的 Internet 接口发送通信。然而,如果主机 A 上的发送应用程序指定了源地址 131.107.89.211,那么查询结果将是 Internet 接口的默认路由;主机 A 从 Internet 接口发送通信。如果主机 A 上的发送应用程序指定源地址为 192.168.17.48,查询将选择 Intranet 接口的默认路由;主机 A 从 Intranet 接口发送通信。通过受约束的路由查询,IP 使用具有较高跃点数的默认路由发送源地址为 192.168.17.48 的通信。
对于已接收的通信,IP 首先确定该通信的目标是否为本主机。如果不是,由于该主机不充当路由器,IP 自行丢弃该数据包。然后,IP 确定传入接口(接收数据包的接口)上是否启用了强主机接收。如果未启用,IP 将处理该数据包。如果已启用,IP 将确定该传入接口是否分配了数据包中的目标地址。如果已分配,IP 将处理该数据包。如果未分配,IP 将自行丢弃该数据包。图 3 显示普通接收主机进程。
图 3 接收主机进程 


Windows 中的弱强主机行为
Windows XP 和 Windows Server® 2003 使用弱主机模式为所有 IPv4 接口执行发送和接收进程,使用强主机模式为所有 IPv6 接口执行发送和接收进程。您不能对该行为进行配置。默认情况下,Windows Vista 和 Windows Server 2008 中的下一代 TCP/IP 堆栈支持所有接口上的 IPv4 和 IPv6 强主机发送和接收(但 Teredo 隧道接口除外,该接口适用于 Teredo 特定主机中继)。图 4 按照每个接口列出了可用于配置 IPv4 和 IPv6 的发送和接收行为的命令。注意,InterfaceNameOrIndex 要么是来自“网络连接”文件夹的接口名称,要么是其接口索引。您可从命令显示中获取接口的接口索引:

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
 
netsh interface ipv6 show interface
弱强主机行为和 RFC 3484
为了提供选择源与目标 IPv6 和 IPv4 地址(用于尝试连接)的标准化方法,RFC 3484 定义了两种算法。一种是源地址选择算法,用于选择与目标地址一起使用的最佳源地址。另一种是目标地址选择算法,用于按优先级顺序对可能的目标地址列表排序。
确定给定的目标地址的候选源地址列表时,强弱主机行为会起作用,并且还会影响目标地址的最终排序列表。对于强主机发送行为,候选源地址列表包含分配给目标的发送接口的单播地址。对于弱主机发送行为,候选列表可包含分配给任何已启用弱主机发送的接口的地址。有关源地址选择和目标地址选择的详细信息,请访问 microsoft.com/technet/community/columns/cableguy/cg0206.mspx

默认情况下,弱主机发送和弱主机接收对于所有接口的 IPv4 和 Pv6 都是禁用的,但适用于 Teredo 特定主机中继的 Teredo 隧道接口除外。
有关 RFC 3484 的详细信息,请参阅“弱强主机行为和 RFC 3484”侧栏。


禁用远程访问 VPN 连接默认路由
远程访问虚拟专用网络 (VPN) 客户端是多宿主主机的另一个示例。尽管它可能具有连接到 Internet 的单一 LAN 接口,但当远程访问 VPN 客户端完成 VPN 连接后,它成为多宿主主机。它具有两个接口:LAN 接口和一个基于适用于 VPN 连接的点对点协议 (PPP) 的接口。它还具有两个 IPv4 地址:Internet 服务提供程序分配的 IPv4 地址用于 LAN 接口,VNP 服务器分配的 IPv4 地址用于基于 PPP 的接口。
为了确保 VPN 客户端通过 VNP 连接将默认路由通信发送至 Intranet,Windows XP 和 Windows Server 2003 通过提高现有默认路由的跃点数,添加一个使用 PPP 接口且具有较低跃点数的新默认路由,修改 IPv4 路由表。该默认行为使 Intranet 上的位置在 VPN 连接持续期间可以访问,而使 Internet 上的几乎所有位置在 VPN 连接持续期间都无法访问。通过不为 VPN 连接添加默认路由而为 Intranet 目标添加特定路由,可将 VPN 客户端配置为拆分隧道以同时访问 Internet 和 Intranet 位置。但是,仍存在一种风险:拆分隧道 VPN 客户端可在 Internet 和 Intranet 两者间路由数据包。有关详细信息,请参阅 microsoft.com/technet/community/columns/cableguy/cg1003.mspx
Windows XP 和 Windows Server 2003 中的默认 VPN 客户端行为是为弱主机发送行为设计的。路由查询始终使用 VPN 连接的默认路由,因为它具有最低跃点数。然而,使用强主机发送行为时,用于发送通信的默认路由取决于数据包中的源 IP 地址。对于来自由 ISP 分配的 IPv4 地址的通信的路由查询,将使用默认路由,该默认路由使用 LAN 接口,从而可访问所有 Internet 位置。对于来自由 VPN 服务器分配的 IPv4 地址的通信的路由查询,将使用默认路由,该默认路由使用 PPP 接口,从而可访问所有 Intranet 位置。所以,当您使用强主机发送行为时,VPN 客户端会具有一个分拆隧道配置,并且可同时访问 Internet 和 Intranet,甚至对于那些没有管理员级别权限对 IPv4 路由表进行直接修改的应用程序也如此。
为了阻止强主机发送行为在默认情况下创建拆分隧道配置,当 VPN 连接完成后,Windows Vista® 和 Windows Server 2008 中的 VPN 客户端自动禁用 LAN 接口的默认路由。该行为可确保在路由表中仅存在一个单一的使用 PPP 接口的默认活动路由。该行为还可确保没有管理员权级别权限的应用程序不能执行分拆隧道。
由于来自 VPN 客户端计算机的通信必须源自由 VPN 服务器分配的 IPv4 地址,该行为将 Intranet 和 Internet 更好地隔离开来。当 VPN 连接终止时,即启用被禁用的默认路由。
您可以通过以下命令控制此行为:
netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled


Joseph Davies是 Microsoft 的一位技术撰稿人,他从 1992 年起一直从事 Windows 网络主题的培训和编写工作。他曾为 Microsoft Press 编写了五本著作,是每月在线 TechNet 网络专家专栏的作者。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.

分享到:
评论

相关推荐

    微软Technet WebCast下载工具

    微软Technet WebCast下载工具是一款专门用于获取和管理微软Technet WebCast资源的软件。Technet WebCast是微软提供的一项在线技术研讨会服务,它通过网络直播或录播的形式,为IT专业人士和开发者提供了丰富的技术...

    Technet精华内容汇集

    Technet是由微软(Microsoft)维护的一个技术资源平台,它提供了丰富的IT专业人士和技术爱好者所需的技术文档、教程、论坛讨论以及最新的技术资讯。 在Technet中,你可以找到关于以下主题的详细知识: 1. **操作系统...

    technet library 2010 5of5

    technet library 2010 5of5

    technet library 2010 4of5

    technet library 2010 4of5

    Microsoft TechNet脚本知识库

    Microsoft TechNet脚本知识库

    Technet客户端

    TechNet是微软公司提供的一项在线服务,它面向IT专业人士和技术爱好者,提供了丰富的技术文档、软件下载、论坛讨论和虚拟实验室等资源。 在TechNet客户端中,用户可以轻松浏览TechNet上的讲座分类,这些讲座通常...

    ppt从基础到精通(1)微软内部资料

    - **微软TechNet的Office论坛版主**以及**WOHOME论坛管理员**,这显示了他在社区管理和技术支持方面的经验。 - **多部著作作者**,包括《Word排版之道》、《Excel公式与函数大辞典》和《完美幻灯片设计的黄金法则》...

    MSDN&TECHNET内容下载工具

    【MSDN&TECHNET内容下载工具】是一个实用的软件,专为IT专业人士设计,用于帮助用户方便地下载和保存MSDN(Microsoft Developer Network)与TECHNET(Microsoft Technet)上的各种技术文档、软件、更新及资源。...

    [TechNet微软课程]Microsoft.Office.Excel.2003实用技巧教程

    【Microsoft.Office.Excel.2003实用技巧教程】 在Excel 2003的世界里,掌握实用技巧可以显著提升工作效率,使数据管理、分析和呈现变得更加轻松。本教程旨在帮助用户深入理解并熟练运用Excel 2003的各项功能,以...

    Microsoft-technet systeminternal tools

    【标题】"Microsoft Technet SystemInternal Tools" 是一个集合了Windows操作系统高级管理工具的资源库,主要用于提升系统管理员对Windows环境的管理和维护能力。这些工具通常由System Internal公司(现已被微软收购...

    微软webcast视频讲座下载器

    打开软件会自动获取微软发布的各类视频,包含了微软旗下各技术产品的几乎所有视频教程,从系统视频,vs视频,数据库视频,到微软新技术发布视频等等均有,可以说是下载微软视频最全的地方就在这里,按专家搜索,也可...

    微软inspect.exe(类似 Spy++、UI Spy)

    请使用最新版解压缩软件解压,或者使用7-zip...http://technet.microsoft.com/zh-cn/magazine/dd318521(en-us,VS.85).aspx 用Dependency Walker看了下DLL依赖,都是系统的,应该可以直接用的吧,谁用过后回复反馈一下

    全套微软MCITP考试题库

    - **70-680:TechNet Pro: Configuring Windows 7, Enterprise Desktop Support Technician**:专注于Windows 7的企业桌面支持技术,包括故障排除、性能优化、安全策略及应用安装等。 3. 学习资源与备考 MCITP考试...

    Exploring Coperate BI of SQL Server 2014 on Technet vLab

    TechNet虚拟实验室是微软提供的一个在线平台,允许用户通过浏览器访问预先配置好的虚拟环境,用于测试和学习微软的各种产品和技术。这些实验室通常包含一系列指导性任务,帮助用户熟悉特定技术的关键概念和操作步骤...

    微软虚拟化技术纵览系列之一:微软虚拟化解决方案概览

    微软虚拟化技术是现代IT环境中不可或缺的一部分,它允许企业在一台物理服务器上运行多个独立的虚拟机,从而提高硬件利用率,简化管理,降低成本,并提供更好的业务连续性和灾难恢复能力。本篇将聚焦微软的虚拟化解决...

    technet library 2010 1of5

    technet library 2010 1of5

    technet library 2010 2of5

    technet library 2010 2of5

    technet library 2010 3of5

    technet library 2010 3of5

    微软虚拟化工具之“P2V”工具Disk2VH

    1. **下载与安装**:首先,用户需要访问官方提供的链接([http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx](http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx))下载**Disk2VHD**。...

    微软全球网址薄

    微软社区是用户交流问题、分享经验的平台,其中包括官方论坛和非官方社区,如TechNet、MSDN和Stack Overflow上的微软相关板块。 7. **技术支持与培训**: 微软提供全方位的技术支持,包括在线帮助、知识库文章、...

Global site tag (gtag.js) - Google Analytics