技术类:Internet 连接防火墙功能概述

2004年07月17日 08:33 次阅读 稿源: 条评论
来自TechNet的优秀技术文章:“Internet 连接防火墙”(ICF) 为运行 Windows® XP 操作系统的计算机提供了基本的侵入保护功能.ICF 用于那些与“Internet 连接共享”一起使用计算机 (包括直接连接到公共网络的计算机,以及那些作为家庭网络一部分的计算机).本文介绍了 Windows XP Internet 连接防火墙的功能特性并且对常见问题进行了解答,文章重点介绍了 ICF 的 API 集合.
应对日益增长的 Internet 威胁 在网络最初建立之时,它们总是被用来将一些“可信”计算机连接到一起。随着时间的推移,越来越多的网络被连接在一起,这使得某个网络上的未知人员或设备能够通过一些方法连接到另一个网络之中,并由此产生了对网络防护的需要。

以前,使用防火墙保护 PC 的安全并不是十分必要,因为 PC 主要使用调制解调器连接到 Internet,而且只是有时才拨号上网。计算机与 Internet 的连接时间比较短,计算机的 IP 地址也是动态进行分配的,所以黑客和其他外部威胁很难对 PC 进行攻击和破坏。

但是今天,安全环境已经发生了改变。越来越多的家庭用户使用了“永远在线”的宽带连接。因为这些宽带连接的IP地址很少或从来不发生变化,黑客们很容易就可以找到一台PC进行攻击。

过去,如果想要对网络进行攻击,黑客们需要具备网络拓朴结构和网络协议方面的丰富知识。但是现在,Internet 为他们提供了数不清的免费工具,即使是一个刚入门的黑客新手 (也就是所谓的“菜鸟”级黑客) 也可以轻松找到计算机的系统漏洞并利用这些漏洞发动攻击。研究表明,使用电缆式调制解调器的网络经常会受到黑客的扫描和攻击。随着 Internet 用户和服务的不断增加,黑客攻击的数量肯定会随之继续增加。

Internet 连接防火墙的目的

Internet 连接防火墙(ICF)的设计目的在于:保护家庭用户和小型企业不受外部威胁的侵害。ICF 旨在为 Windows XP 操作系统提供一个基本的入侵保护机制。这意味着 ICF 可以防止黑客扫描计算机信息,也可以阻止未经计算机请求的外部流量进入计算机。所以,这个简单的防护工具可以有效防止“菜鸟级”黑客入侵系统,并迫使他们转向其他更容易受攻击的目标。

防火墙对于一般用户来讲很难配置。但是在 Windows XP 中,Microsoft 的目标是为用户提供一种简单和透明的安全体验。用户可以通过一个简单的复选框或者向导在 Internet 连接上启用 ICF,从而在为高级用户提供灵活的定制设置的同时,为普通用户提供了一种简单轻松的配置过程。

Internet 连接防火墙的有效性

ICF 在 Windows XP Home Edition 和 Windows XP Professional 中发布。此外, Windows Server 2003, Standard Edition 和 Windows Server 2003, Enterprise Edition 也包含了 ICF。

安装 Internet 连接防火墙 本节描述了 Internet 连接防火墙的安装方式。

ICF 的安装方式

以下是ICF 的多种安装方式:

• 欢迎使用 Windows 向导。如果您在独立计算机 (未加入网络域的计算机) 中安装 Windows XP Home Edition 或 Windows XP Professional,您将看到该向导。该向导使得以下操作非常容易:连接到 Internet、激活您的 Windows 副本、注册 Windows 以及创建用户帐户。如果 PC 仅有一个网络连接,并且已确定使用该网络连接访问 Internet,则“欢迎使用 Windows 向导”将在该连接上启用 ICF。

• 网络安装向导 (NSW)。( 适用于独立计算机中的 Windows XP Home Edition 和 Windows XP Professional )。运行 NSW 时,将要求您选择 Internet 的连接方式(共有五个选项)。如果选择了表明 PC 是直接连接到 Internet 的选项,则将在该 Internet 连接上启用 ICF。

• 新建连接向导 (NCW)。 如果运行 NCW 并选择了“连接到 Internet”的路径,则将在指派的 Internet 连接上启用 ICF。

• “网络连接”文件夹。您可以在某个网络连接的属性页中转到“高级”选项卡,并通过一个复选框来启用 ICF。“网络连接”文件夹位于控制面板的“网络和 Internet 连接”区域中。

支持的连接类型

您可以在局域网 (LAN) 中启用 ICF,这包括无线 LAN 以及 PPP over Ethernet、拨号和虚拟专用网等远程访问服务连接。您可以在一个系统的多个连接上启用 ICF,并且每个连接都可以有自己的设置和配置。

但不能在以下位置启用 ICF:Internet 连接共享 (ICS) 专用适配器、网桥的成员连接、网桥自身或入站连接。

权限要求

只有系统管理员才能启用和控制 ICF。

ICF 部署方案

共有两种主要的 ICF 部署方案:

保护直接连接到 Internet 的单台Windows XP 计算机。在这种方案中,运行着 Windows XP 的 PC 通过 RAS 或 LAN 连接与 Internet 相连。Internet (或与该 PC 相连的其他公共网络) 上的实体可以访问这台 PC,但不能访问该 PC 上的服务和资源。

保护家庭或小型商用网络。 如果联同 Internet 共享解决方案 (如 ICS) 使用,ICF 会提供对网络的保护。

Internet 连接防火墙功能概述

本节包括对 ICF 工作方式的详细介绍。

从概念上说,防火墙是一个大型的过滤器规则引擎,它可以拦截网络通信并将其规则集应用到这些通信。数据包过滤是一个基于各个数据包的报头信息来允许或拒绝通信通过的过程。数据包过滤设备可以使用网络协议的特定信息 (如 TCP/IP 源和目标地址、端口以及其他信息) 来建立允许或拒绝网络通信流的规则。

状态数据包过滤

ICF 本质上是一个状态数据包过滤器。与静态数据包过滤器不同,静态数据包过滤器仅基于数据包的地址信息来确定是否丢弃数据包,而状态数据包过滤器的决定会同时基于数据包的状态和会话的上下文信息。这些存储的状态为该过滤器提供了实施比静态过滤器更为丰富、更为全面的规则集的方法。

ICF 维护的状态是一个连接流表。对于面向连接的协议 (如 TCP),连接流等价于这些协议的连接定义 (例如,源和目标地址、端口以及所使用的协议)。对于无连接的协议 (如 UDP),连接流是在公共端点 (如,IPAddress1/Port1 和 IPAddress2/Port2) 之间无中断发送的一组数据包。此处的无中断,是指在给定的时间段 (比如 1 分钟) 内没有任何数据包与该流匹配。

当连接流到时终止或连接被关闭时,表中的状态信息会被删除。

状态数据包过滤的安全策略

ICF 在整个状态数据包过滤中实施的主要安全策略包括三个规则:

• 与已建立的连接流匹配的任何数据包都将被转发。

• 如果发送的数据包与已建立的连接流不匹配,它将在连接流表中创建新条目,然后被转发。

• 如果收到的数据包与已建立的连接流不匹配,则将被丢弃

该策略允许客户端对 Internet 的正常访问 (如 Web 浏览),同时阻止与这些访问无关的数据包被发送到网络堆栈。为了打开特定端口 (创建静态过滤器) 以便能在防火墙之后运行服务 (比如 Web 服务器),该策略也确保用户可以对这些规则进行修改。

除安全策略外,ICF 还会对 TCP 数据包执行结构上的检查。这些检查包括快速丢弃具有不可能的标记组合的数据包 (比如在单个数据包中同时设置有 SYN 和 FIN 标记),以及实施 TCP 三路握手以打开端口。前者在面对基于大量随机数据包的攻击时能极大地降低处理开销,而后者可以防范各种扫描技术。

每个连接的状态和配置

您可以在多个网络连接上启用 ICF。每个 ICF 实例都有自己的端口映射和 ICMP 配置选项,并且相互间保持独立 (但日志设置是全局性的)。

阻止 IP 欺骗

IICF 可以阻止应用程序进行 IP 欺骗。有一些媒体已经注意到在 Windows XP 中包含了原始套接字以及这如何可能导致拒绝服务 (DoS) 攻击的增多。Windows XP 所包含的对 IP_HDRINCL 选项的支持允许套接字应用程序设置或修改数据包的源 IP 地址。这可能有助于 DoS 攻击,因为攻击者可以掩盖攻击源。

ICF 可以检查出站数据包是否含有欺骗性的 IP。这包括 TCP、UDP、ICMP 和 PPTP/GRE (点对点隧道协议 - 虚拟专用网) 通信。当 ICF 单独运行时,它会对出站数据包进行检查。一旦检测到欺骗性的数据包,该数据包即会被丢弃。

如果同时启用了 ICF 和 ICS,欺骗性通信将被修改以使它包含 ICS 主机的正确源 IP 地址,从而防止在家庭网络中始发的恶意代码能进行 IP 欺骗。

请注意: 这不能阻止 Windows XP 客户端自身参与 DoS 攻击,只能阻止 Windows XP 客户端伪装其 IP 地址。

对标准协议的支持

ICF 包含对 Internet 标准协议的支持,如 FTP、H.323、LDAP、T.120 以及 PPTP。

传输支持

ICF 支持对 IPv4 通信过滤。它不支持 NetBEUI、IPX/SPX 以及 IPv6 传输。

对 Microsoft 功能和协议的支持

Windows Messenger 和“远程协助”已经过重新编写,可以通过 ICF 工作。另外,由于 DirectPlay (dplay4 和 dplay8) 支持穿越 ICF,因此使用 DirectPlay 的游戏和应用程序将可以无缝地通过 ICF 工作。这些修改是使用本文档此后所介绍的 API 来完成的。

包含网络操作的其他 Windows XP 功能 (如“帮助和支持中心”、Windows Time、Windows Update) 所使用的协议不用专门修改即可通过防火墙工作。

已知问题

以下是 ICF 的已知问题列表:

• 默认情况下,那些要求打开一系列端口以返回通信的应用程序将不能工作。为此,应用程序需要创建适当的端口映射。用户可以手动添加这些端口信息。

• 如果应用程序运行在用户环境中,但该用户不具有管理员身份,则该应用程序将无法控制端口映射。

• 当运行在 ICF 主机上的扫描应用程序扫描目标时,该扫描应用程序可能报告端口 21 (FTP) 和 389 (LDAP) 在目标上是打开的。这要归因于 FTP 和 LDAP 代理的实现方式。当扫描应用程序发出请求后,代理的保密方会用确认消息对扫描应用程序做出响应。扫描应用程序并不检查该确认消息来自于谁,因此它会将该确认消息视作它和目标之间的成功通讯。从远程主机对 ICF 主机的扫描会报告上述端口不可用。

Internet 连接防火墙的配置选项 本节包含端口映射、日志和组策略的配置选项。

端口映射

默认情况下,所有未经请求的入站 ICF 连接都将被丢弃。当在 ICF 之后运行着您希望 Internet 上的用户访问的服务时,这会产生问题。端口映射(静态过滤器)是一种方法,借此,服务或应用程序可以创建在防火墙中如何处理入站连接的规则。通过创建端口映射 (比如,为 Web 服务器打开端口 80),ICF 允许将 Internet 上的用户请求传递到您的网站并由 Web 服务器提供服务。

同样,一些应用程序使用的协议也会导致防火墙问题。这通常是由于在意外端口或从不同的 IP 地址返回了对出站连接请求的响应。该问题通常发生在流式媒体和聊天应用程序中。通过创建端口映射,应用程序可以配置 ICF 以允许在不同于出站连接所指示的端口上返回响应通信。

当 ICS 和 ICF 共同运行在同一连接上时,由于它们共享相同的映射表,所以一个功能可以使用另一个功能创建的端口映射。

ICF 内置有常见服务的端口映射选项。这些端口映射在默认情况下被禁用。在启用了 ICF 的连接的属性页中,可以启用这些映射。

日志选项

ICF 可以对网络通信进行日志记录。该日志使用 W3C 扩展日志文件格式 (http://www.w3.org/TR/WD-logfile.html),为 ASCII 文本文件,可被导入进行数据分析。

ICF 有四个基本日志选项。默认情况下,所有日志选项都被禁用。

• 记录所有被丢弃的数据包。该选项将记录所有被丢弃的入站和出站连接数据包。 • 记录所有成功的连接。该选项会记录成功的出站连接和成功的入站连接。

• 日志文件名和位置。该日志文件的默认名称为 pfirewall.log,默认位置为 %windir%。用户可以设置该日志文件的名称和位置。

• 日志文件大小。默认的文件大小为 4096 千字节 (KB)。最大文件大小为 32767 KB。



以下是 ICF 日志文件示例:

#Version:1.0 #Software:Microsoft Internet Connection Firewall #Time Format:Local #Fields:date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info 2001-07-11 19:28:06 DROP ICMP 172.31.80.1 172.31.82.198 - - 56 - - - - 5 1 - 2001-07-11 19:28:08 DROP ICMP 172.31.80.1 172.31.82.198 - - 56 - - - - 5 1 - 2001-07-11 19:28:13 DROP ICMP 172.31.80.1 172.31.82.198 - - 56 - - - - 5 1 - 2001-07-11 19:31:05 DROP TCP 172.31.79.4 172.31.82.198 389 4391 40 A 1328582612 3027261772 17397 - - - 2001-07-11 19:31:07 DROP TCP 172.31.79.4 172.31.82.198 389 4396 40 A 1329262300 3027504832 16769 - - - 2001-07-11 19:31:08 DROP TCP 172.31.79.4 172.31.82.198 389 4401 40 A 1330742333 3028123509 16963 - - - ICMP 选项 Internet 控制消息协议 (ICMP) 消息为 PC 提供了相互报告错误和控制条件的方法。在黑客和 DoS 攻击中,可能使用这些消息。

以下为 ICF 配置中可用的 ICMP 选项:

允许传入的回显请求 (消息类型 8)

允许传入的时间戳请求 (消息类型 13)

允许传入的掩码请求 (消息类型 17)

允许传入的路由器请求 (消息类型 10)

允许传出的目标不可访问 (消息类型 3)

允许传出的源结束 (消息类型 4)

允许传出的参数问题 (消息类型 12)

允许传出的时间超时 (消息类型 11)

允许重定向 (消息类型 5)

在 IETF RFC (http://www.ietf.org) RFC 792、RFC 1256 以及 RFC 950 中可以获得有关上述选项及其使用的信息。

可感知位置的组策略

ICF 具有允许域管理员阻止在他们的域中运行 ICF 的组策略。该组策略可感知位置,即,只要 PC 未运行在使用该策略的网络中,就仍然可以配置并运行 ICF。

以下是这种可感知位置的组策略的应用示例:

• 手机用户在便携式计算机的无线连接中启用并配置了 ICF。他登录到采用了 ICF 组策略对象 (GPO) 禁止 ICF 运行的公司域。随后,他断开了便携式计算机连接,来到一个无线热区 (Hotspot),如咖啡馆或机场,并连接到该无线网络。由于 ICF 检测到它不再与实施了上述策略的域相连,因此当位于该热区网络中时,ICF 会提供保护功能。如果该用户返回到公司网络,ICF 会检测到它连接在实施了 GPO 的域网络中,因此将自己关闭。

Internet 连接防火墙的 API 本节简要介绍了 ICF (Internet 连接防火墙) 的应用程序编程接口 (API)。

Microsoft 在 Platform SDK 中提供了一组 API,以允许独立软件供应商 (ISV) 能与 ICF 交互。以下是可用接口的预览。详细信息,请参考 Platform SDK。http://msdn.microsoft.com.

为了确定是否已在一个接口 (网络连接) 上启用了 ICF,您首先需要枚举在系统中可用的所有接口。为此,请使用 INetSharingManager::get_INetSharingConfigurationForINetConnection 方法获取特定连接的 INetSharingConfiguration 接口。

确定了要检查的接口之后,请使用 INetSharingConfiguration::get_InternetFirewallEnabled 方法来确定在该连接上是否启用了 ICF。

同时还提供了允许应用程序启用或禁用 ICF 的方法。调用这些方法的结果是,向用户显示一个对话框以确认该操作:

INetSharingConfiguration::DisableInternetFirewall %programname% 正试图禁用 Internet 连接防火墙。这将使您的计算机容易遭受 Internet 安全性威胁。是否允许 %programname% 禁用 Internet 连接防火墙?INetSharingConfiguration::EnableInternetFirewall %programname% 正试图启用 Internet 连接防火墙来帮助您的计算机或网络防范 Internet 安全性威胁。 但是,这可能导致某些较早的 Internet 游戏不能正常运行。 是否允许 %programname% 启用 Internet 连接防火墙? 其他的重要方法还包括:

• INetSharingConfiguration::EnumPortMappings。该方法允许您枚举特定接口的端口映射。

• INetSharingConfiguration::AddPortMapping。该方法允许您在特定接口添加端口映射。

• INetSharingConfiguration::RemovePortMapping。该方法允许您删除特定接口的端口映射。

请注意: 没有任何方法可用来设置日志或 ICMP 选项。

Internet 连接防火墙常见问题解答 问:ICF 与第三方防火墙相比有什么不同?

答:多数情况下,ICF 没有这些产品提供的丰富功能组合。这是因为 ICF 只是作为一种基本的入侵功能,用来阻止他人收集关于 PC 的数据并拦截未经请求的连接尝试。ICF 适用于那些已连接到 Internet 但通常情况下未从商店购买防火墙的用户。

问:ICF 做出站数据包的检查吗?

答: 除了检查源 IP 地址外,ICF 不进行任何出站数据包检查。

问:ICF 是否必须要求 ICS?

答:不需要,您不必为了保护连接而共享它。ICS 和 ICF 是两个独立的功能。

问:为什么 Microsoft 不在默认情况下启用所有连接上的 ICF?

答:我们不这样做,是因为这样可能影响基本的网络应用 (如文件和打印机共享、多角色游戏等等)。根据设计初衷,只能在 Internet 连接上启用 ICF。目前用来确定连接是用于 Internet 还是专用 LAN 的技术尚处在早期开发阶段。当该技术提高后,在默认情况下可能启用 ICF。

问:ICF 会与 ISA 服务器冲突吗?

答:不会。ISA 服务器是一个企业级的防火墙和 Web 高速缓存器。而 ICF 旨在用于有少量或没有网络管理经验的家庭和小型商业 (少于 5 人)。与 ICF 相比,ISA 服务器为网络管理员提供了更多的灵活性和功能,因此 ICF 不会成为这类客户的选择。详细信息,请参阅ISA Web 站点.

问:中型企业可不可以使用 ICF 作为其周边防火墙?

答:ICF 的初衷不是用作商业机构的周边防火墙,所以,建议您使用 ISA 服务器。

问:恶意应用程序可以在用户不知道的情况下关闭防火墙吗?

答:不可以。尽管 Microsoft 提供了允许应用程序关闭 ICF 的 API,但同时会显示一个对话框通知用户,某某应用程序要关闭该防火墙,因此用户可以选择是否允许这样做。(请参阅本文此前的 API 部分)。没有任何编程方式可以绕过该对话框。

问:ICF 过滤出站的多播通信吗?

答: 不。在 ICS/ICF 配置中,网络客户端生成的多播通信不会被转发,但会转发 ICS/ICF 主机生成的多播通信。

问:是否可以在公司桌面上运行 ICF?如果打开它将会怎样?

答:用户可能无法获得最佳的体验,因为一些基本的功能不会起作用,比如让他人访问您 PC 上的文件共享。同时您将无法接收远程服务通知 (这包括“打印作业已完成”和“有新邮件”等通知)。此外,由于 ICF 未经过 ISA 客户端应用程序的测试,因此,它们相互之间的可能影响尚不可得知。

问:Microsoft 计划为 ICF 获取 ICSA 证书吗?

答:不准备。因为 ICSA 证书仅与企业级的防火墙相关,考虑到目标受众,获得该证书是不现时的。(但 ISA 服务器已经过 ICSA 认证。)

总结 Internet 连接防火墙的目标是在 Windows XP 中提供基本的入侵防范机制。这意味着它可以防范信息扫描并拒绝所有未经请求的入站通信。这样,那些可供“script kiddies”攻击使用的基本工具将变得无效,攻击者可能会转向更容易的目标。

普通用户在配置防火墙时通常会很困难,因此 Microsoft 在 Windows XP 中的目标就是提供一个简单朴实的安全性体验。通过使用简单的复选框用户界面和提供启用 ICF 的向导,Windows XP 避免了繁琐的用户配置,同时也为高级用户提供了自定义配置的灵活性。

对文章打分

技术类:Internet 连接防火墙功能概述

1 (50%)
已有 条意见

    最新资讯

    加载中...

    编辑精选

    加载中...

    热门评论

      Top 10

      招聘

      created by ceallan