ISA Server 2004防火墙使用宝典――如何禁止Socket Pooling
Socket pooling是微软IIS服务的一个侦听IP的问题,当你在IIS管理器里面选择Web服务器侦听的IP时,就算你选择了单个IP,但是IIS的这个Web站点还是会侦听在所有的IP上。例如,我的网关计算机上面有IIS服务,然后有2个IP(192.168.0.1,61.139.x.x),那么IIS的默认站点是会绑定在这两个IP上,就算你在只是选择侦听他们中的一个,如192.168.0.1,但是IIS还是占用了另外一个61.139.x.x的对应端口。这对于接在多个网络的计算机是一种潜在的安全风险,而且也导致一些位于网关计算机上的web站点不能正常的发布,如位于ISA 2004或者ISA 2000上的web站点,因为ISA需要占用外部IP的80端口来侦听进入的http请求,但是web站点已经占用了此端口,所以,必须禁用IIS的Socket pooling,以便让IIS只是在某个IP上进行侦听。
Socket pooling是微软IIS服务的一个侦听IP的问题,当你在IIS管理器里面选择Web服务器侦听的IP时,就算你选择了单个IP,但是IIS的这个Web站点还是会侦听在所有的IP上。例如,我的网关计算机上面有IIS服务,然后有2个IP(192.168.0.1,61.139.x.x),那么IIS的默认站点是会绑定在这两个IP上,就算你在只是选择侦听他们中的一个,如192.168.0.1,但是IIS还是占用了另外一个61.139.x.x的对应端口。这对于接在多个网络的计算机是一种潜在的安全风险,而且也导致一些位于网关计算机上的web站点不能正常的发布,如位于ISA 2004或者ISA 2000上的web站点,因为ISA需要占用外部IP的80端口来侦听进入的http请求,但是web站点已经占用了此端口,所以,必须禁用IIS的Socket pooling,以便让IIS只是在某个IP上进行侦听。
在IIS 6.0中,想解决这个问题,需要使用httpcfg.exe,它是Windows server 2003的support tools,存放在安装CD的Support\Tools\Support.cab文件中。
执行以下步骤以解决此问题:
安装Windows server 2003安装CD的\Support\Tools\Support.msi,然后打开命令提示符,运行httpcfg set iplisten -i xxx.xxx.x.x(xxx.xxx.x.x为你想要IIS侦听的IP地址),重启服务器,如果成功修改,Httpcfg 返回下列提示:
HttpSetServiceConfiguration completed with 0
你可以运行httpcfg query iplisten命令来察看当前IIS侦听的IP地址。
How to:发布位于本地主机上的Web站点
内容概要:很多朋友在问如何发布位于本地主机上的Web站点。其实发布失败的较主要原因是因为IIS的Socket Pooling问题。通过这篇文章,你可以学习到如何成功的发布本地主机上的Web服务。
很多朋友的ISA防火墙也同时是Web服务器,对内部网络或外部网络提供Web服务,你可以通过配置访问规则或者Web发布规则来让别人访问你的Web站点。
使用访问规则来允许别人访问非常简单,你只需要允许内部或外部网络访问本地主机上的HTTP/HTTPS服务即可。但是,我强烈建议你使用Web发布规则来允许,因为ISA防火墙对于HTTP协议的许多应用层的过滤特性,只有在Web发布规则中才能使用。
对于常见的边缘防火墙模型,ISA具有两个网络接口,分别连接内部和外部网络。但是在建立Web发布时,侦听器需要侦听对应的端口,所以你不能将Web站点绑定在发布出去的网络接口上。你可以将你的Web站点绑定在内部网络接口的IP地址上,然后在外部网络接口的IP上发布此Web站点,这样即可让外部网络的用户访问此Web站点。
注意:当然,你可以将IIS绑定在另外的端口,如TCP 81上,然后ISA防火墙使用标准的TCP 80端口来发布服务,就不存在端口重复占用的问题,也避开了下面讨论的Socket Pooling问题。
谈到这儿就不得不说说IIS的Socket pooling问题(关于这个问题,我已经在如何禁止Socket Pooling一文中进行了介绍,建议你先看看这篇文章)。Socket pooling(套接字池)限定了IIS可以用于绑定Web站点的IP地址,默认是本机上的所有IP地址。但是当你在IIS管理器中配置Web站点绑定的IP地址时,无论你选择哪个IP地址,都是绑定在套接字池中的所有IP地址上。在这种时候,就算你在IIS限制Web站点只绑定在内部的IP地址上,它也会占用外部IP地址的对应接口,此时ISA防火墙就不能再侦听外部IP地址的此端口做Web发布,导致ISA出现资源分配失败的警告。所以,我们必须限制IIS使用的套接字池,限制它只能使用内部网络接口的IP地址。其他的Web服务器(如Apache等)没有这个问题,直接修改绑定的IP地址即可。 下图是我们的网络拓朴结构:
ISA防火墙操作系统为Windows Server 2003企业版,ISA防火墙软件版本为ISA Server 2004企业版英文版beta,不过操作和标准版基本一致。ISA防火墙作为边缘防火墙/Web服务器,连接内部和外部网络,同时对内部和外部网络提供Web服务。ISA防火墙上已经配置了允许本地主机访问所有网络的所有服务的策略。各计算机的TCP/IP设置如下,此次试验不设计DNS,各计算机的DNS服务器IP地址均设置为空。
ISA防火墙:
External Interface:
・ IP:61.139.0.1/24
・ DG:61.139.0.1
Internal Interface:
・ IP:192.168.0.1/24
・ DG:None
Client1
・ IP:192.168.0.10/24
・ DG:192.168.0.1
External Client:
・ IP:61.139.0.10/24
・ None
本文将按照以下步骤进行:
・ 在Web服务器上禁止Socket Pooling;
・ 建立Web发布规则,发布绑定在内部IP地址上的Web站点;
・ 建立访问规则,允许内部访问本地主机和外部的HTTP/HTTPS;
・ 测试;
1、在Web服务器上禁止Socket Pooling
我们首先在IIS的Web站点属性中,先绑定Web站点在内部接口的IP地址上,如下图
在Cmd下运行netstat -an,很明显,IIS还是绑定在全部的IP地址上:
现在我们需要禁止Socket Pooling,详细的操作步骤说明参见如何禁止Socket Pooling一文。首先,我们需要安装Httpcfg.exe。在Windows Server 2003安装光盘的%cdrom_root%\support\tools\目录下,双击SUPTOOLS.MSI:
跟随提示完成安装。然后点击开始->所有程序->Windows Support Tools->Command Prompt:
运行Httpcfg set iplisten -i 192.168.0.1进行绑定,然后运行httpcfg query iplisten进行查询,较后重启计算机。
计算机重启后以管理员身份登录,再运行netstat -an,可以看到IIS的Web站点已经只是绑定在内部接口的IP地址上了。
2、建立Web发布规则,发布绑定在内部IP地址上的Web站点
现在我们可以建立建立Web发布规则,发布绑定在内部IP地址上的Web站点。
打开ISA防火墙管理控制台,展开阵列FLORENCE,然后右击防火墙策略(FLORENCE),选择新建->Web服务器发布规则;
在欢迎使用新建Web服务器规则向导页,输入规则名字,在此我命名为Publish 192.168.0.1,点击下一步;
在规则动作页,接受默认的允许,点击下一步;
在定义发布的Web站点页,输入内部接口的IP地址192.168.0.1,如果此站点上具有多个Web站点并且你想使用所有域名发布,则勾选转发原始主机名头,点击下一步;
在公共名称细节页,选择所有域名,点击下一步;
在选择Web侦听器页,点击新建,
在欢迎使用新建Web侦听器向导页,输入名称为Listen External 80,点击下一步;
在IP地址页,勾选外部,点击下一步;
注意:为什么不勾选内部?相信有人会有这个疑问。很简单,内部IP地址已经被IIS的Web站点所占用,所以我们为什么还需要额外的一条访问规则,以允许内部访问本地主机和外部的HTTP/HTTPS协议。
在端口指定页,接受默认的80,点击下一步;
在正在完成新建Web侦听器向导页,点击完成。
然后在选择侦听器页,点击下一步;
在用户集页,接受默认的所有用户,点击下一步;
然后在正在完成新建Web发布规则向导页,点击完成。
3、建立访问规则,允许内部访问本地主机和外部的HTTP/HTTPS
右击防火墙策略(FLORENCE),选择新建->访问规则;
在欢迎使用新建访问向导页,输入规则名字,在此我命名为Allow Internal to Localhost,点击下一步;
在规则动作页,选择允许,点击下一步;
在协议页,选择选择的协议,加入HTTP、HTTPS,点击下一步;
在访问规则源页,添加内部,点击下一步;
在访问规则目的页,添加本地主机和外部,点击下一步;
在用户集页,接受默认的所有用户,点击下一步;
然后在正在完成新建访问规则向导页,点击完成。
较后点击应用以保存修改和更新防火墙策略。
此时的防火墙策略如下图所示:
4、测试
现在我们先在ISA防火墙上允许netstat -an,你可以看到ISA侦听了外部的TCP 80端口,
我们先在内部网络中的Client1上访问ISA防火墙内部和外部IP地址的Web站点,都是可以访问的;然后在外部的External Client上访问ISA防火墙的外部IP地址,也是可以访问发布的Web站点的。
电子文档管理系统的重要性:企业数字化转型的得力助手
在这个智能信息爆炸的时代,数据成为了企业最宝贵的资产之一。如何有效地管理和使用这种信息,已成为每个企业必须面对的重要课题。电子文档管理系统是解决这一问题的关键工具。今日,我们将探讨电子文档管理系统的重要性。在热点话题中,我们经常听到数据泄漏、信息安全等事件。这些事件不仅给企业带来了极大的经济损失,并且严重影响到企业的声...
it资产管理系统:IT资产大管家
在这个智能飞速发展的时代,公司的IT资产如同无形金矿,非常有价值。可是您有没有经历过这种困扰:IT资产种类繁多,数量庞大,管理耗时费力,还常常担忧数据安全和合规性?别担心,今天就给大家介绍一个IT资产管家——安企神IT资产管理系统。一、IT资产管理,为何如此重要?随着企业业务的不断增加,IT资产的数量和种类也在增加。这...
PHP线上加密解密:确保数据安全的有效途径
在如今智能化快速发展的时代,数据安全成为了人或单位不可忽视的重要话题。据最新统计,过去一年超出50%的企业遭到黑客入侵,数据泄露事件高发,给企业信誉和经济损失导致双重打击。在这种情况下,PHP线上加密解密技术的发展至关重要,既能提升数据安全性,又能帮助企业有效防范潜在威胁。一、PHP在线加密解密是什么意思?PHP是一种...
U盘管理工具大曝光:管理便捷,安全无忧!
在这个信息爆炸的时代,U盘已经成为我们日常生活中不可或缺的小帮手。不论是工作材料的备份或是学习课件的存储,U盘都以其小巧便携、容积丰富的特征受到大家的喜爱。但是,随着U盘的广泛使用,管理里的不便也随之而来。别担心,下面我就给大家介绍一款优秀的U盘管理工具,使你的U盘管理更安全!一、U盘管理,为何这么重要?想象一下,你U...
桌面管理软件怎样帮企业提高管理效益?
近日,一家知名科技公司因为桌面管理不当,造成内部数据泄漏,导致了业内的高度重视。这一事件不但揭露了桌面管理在企业管理中的作用,也催生了对高效安全桌面管理软件的需求。在此背景下,安企神桌面管理软件因其卓越的性能和全面的功能迅速成为很多企业的新宠。一、桌面管理:企业安全高效的基石桌面管理不仅关系到企业日常办公的顺利进行,也...