发新话题
打印

[转载]ISA SERVER2000 学习笔记

[转载]ISA SERVER2000 学习笔记

信息来源:windows 中文站

ISA SERVER2000 学习笔记

一:Microsoft Internet Security and Acceleration Server 2000 介绍
ISA包括两个版本:标准版和企业版。包括三种模式:防火墙模式,CACHE模式和集成模式,可以与WIN2K集成,根据计算机,用户,组来定义策略,它通过MMC界面进行管理,可以在本地和远程管理ISA。
ISA的防火墙分为三个层次,最底层为IP packet filters,这是静态的,对于指定的端口,不是允许就是阻止通过,然后为POLICY RULES,这可以理解为动态的包过滤,允许在二次连接的时候,动态打开相应的端口(即只有在使用的时候,才会打开这一端口,而不像IP packet filters是一直开放的),最后为应用层的过滤,可以对诸如电子邮件的内容进行过滤。
ISA的CACHE功能十分强大,可以定义为自动下载定义计划,可以根据访问频率的高低自动下载,可以在多台ISA上分布CACHE.
当使用ISA企业版的阵列方式时,为企业的管理提供更大的灵活性,你可以统一定义企业策略,也可以对每个阵列分别定义策略



二:安装Microsoft Internet Security and Acceleration Server 2000
在安装前,必须首先考虑ISA的安装模式(防火墙模式,CACHE模式和集成模式),同时对客户端也要有所考虑,因为客户端可以分为防火墙客户端,WEB客户端和SNAT客户端。对于一个小公司来说,典型的安装是一台ISA安装两块网卡,隔断企业内部局域网和INTERNET,对于一个大型公司,则可能需要多台ISA组成阵列。同时对于防火墙后面的WEB,MAIL服务器的发布也要有所考虑,你是将它们直接安装在ISA上,混合域(perimeter network.),还是在企业的内部。
如果要安装ISA企业版,必须首先安装Enterprise Initialization utility,在AD中加入SCHEMA,如果是安装ISA标准版,它的信息是保存在SERVER本身的注册表中的。
如果企业以前使用Proxy Server 2.0,可以考虑直接升级到ISA



三:设定INTERNET访问
ISA的客户端分为防火墙客户端,WEB客户端和SNAT客户端,它们的使用场合是不同的,主要的区别有以下几点:
1. SNAT用户的访问只能通过IP地址来进行控制,它是匿名访问,无法使用基于USER的规则控制,而防火墙用户和WEB用户可以(在缺省情况下,ISA允许WEB匿名访问,但是你可以通过设置,在访问前要求用户认证)
2. 防火墙用户只能在WINX的机器上安装(需要客户端安装程序),而SNAT客户和WEB客户可以跨越操作系统平台,WEB只有浏览器要求
3. 如何内部有WEB/FTP/MAIL之类的服务器提供对外服务,则它们必须作为SNAT用户
4. SNAT用户不支持需要二次连接的网络运用,除非在IP FILTER中指定
5. SNAT用户需要解决DNS解析问题,这就意味着你的INTRANET要有DNS服务器或者在IP FILTER中允许DNS Query operation。
6. SNAT用户和防火墙用户同时也可以是WEB用户,不过WEB用户只支持HTTP/HTTPS/FTP服务。
7. 对于SNAT用户来说,即使Protocol Rule allows "Any IP traffic.",它也只是开放了ISA预先定义的那些Protocol,至于如QQ之类还要你自己定义。注意如果这一应用只使用了单一端口,那只要直接定义即可,如果使用了多个端口,则须在IP FILTER中加以定义。
如果你的网络对外连接是通过拨号方式,则只有Web Proxy and firewall clients可以使用按需拨号,对于NAT用户,必须首先建立连接。WEB用户和防火墙用户还可以配置使用自动发现ISA。你需要在DHCP(a special Web Proxy Autodiscovery Protocol entry)和DNS(both a host (A) record of the ISA Server computer and an alias (CNAME) record named WPAD pointing to the ISA Server computer.)中进行相应设置



四:设置Access Policies
对于用户访问是否允许,ISA通过PROTOCOL->SITE AND CONTENT->IP FILTER->ROUTING RULE的次序进行考察,首先考察是否有PROTOCOL RULES拒绝访问,如果没有,再考察是否有明确的允许,如果有,则通过,其他情况则拒绝。SITE AND CONTENT/IP FILTER也是这样判断。ROUTING RULE主要用来判断是将访问要求转交给上一级ISA还是直接发到INTERNET上。特别的:



1. 对于一个指定的PROTOCOL,如果以一个SNAT访问,如果没有明确的拒绝(这里的拒绝指得是IP地址的拒绝),则ISA会查找是否有明确的许可,如果许可都是针对用户的,则SNAT客户会被拒绝(因为SNAT是匿名的)。如果许可是针对IP的,如果客户端在这一IP地址范围内,则PROTOCOL这一层过滤通过。
2. 对以WEB PROXY CLIENT用户(在浏览器中填写ISA作为代理服务器),缺省情况下它是允许匿名的,他允许跑的协议为HTTP/HTTPS/FTP。对于这种情况,我们可以在ISA的设置中要求出站WEB需要认证,或者在PROTOCOL中加一条允许协议,因为WEB允许匿名,所以一条DENY并不能阻止他的访问,加上允许,ISA就会对他进行匹配,他就会因为不匹配而遭到拒绝。
3. 对于FIREWALL/WEB CLIENT均是通过用户来进行管理的,只有NAT是通过IP来进行管理,在ISA上观察,FIREWALL/ SNAT CLIENT均属于FIRWALL SESSION,但是FIRWALL CLIENT有用户名和机器名,SNAT这两项为空,他只有客户端的IP地址。



一般来说,你如果想访问外部网站,必须要有两个条件,一个是PROTOCOL RULE许可,另外一个是SITE AND CONTENT许可,在缺省条件下,ISA会自动建立一个SITE AND CONTENT许可供你使用,在PROTOCOL RULE集中,没有先后次序的概念,但是DENY比PERMIT的权力要高
在ISA的控制元素中包括:计划schedules, 带宽优先级bandwidth priorities, 目标集destination sets, 客户集client address sets, 协议定义protocol definitions, 内容组content groups, and 拨号dial-up entries。你可以将它们组合各种规则(access policy rules, routing rules, publishing rules, 和bandwidth rules)
对于包含路径的目标地址,ISA不同的客户端有不同的处理
如果想在ISA服务器本身上发布服务器,必须使用IP FILTER,它本身还可以用来阻止外界的某些IP攻击



五:设置ISA Server Cache
CACHE可以加快用户的INTERNET访问速度,你可以使用routing rules来指定何者需要CACHE,何者从INTERNET上直接访问,何者则把请求发给上一级ISA。对ISA本身的CACHE,你可以控制它的大小(必须安装在NTFS上);是否CACHE动态内容;是否CACHE HTTP和FTP内容;自动更新的频率以及定义计划来自动下载频繁访问的INTERNET内容。 如果ISA本身的内存比较小,还可以调整分配给CACHE的内存大小以提高性能。



六:发布内部SERVER
如果想发布内部的SERVER,则使用PUBISHING RULES(这实际上也就是PROTOCOL RULES,只有在需要的时候才会开放),如果SERVER就在ISA上,则应使用IP PACKET FILTERS。在SERVER的发布上,最重要的是WEB SERVER和MAIL SERVER



七:ISA的安全性
控制ISA,你必须有相应权限(Enterprise Admins),如果为了提高性能,在企业中有多台ISA SERVER,则对于防火墙用户,你只要简单的设置DNS,使用round robin distribution即可,对于SNAT客户,则需要设置Network Load Balancing (这需要高级服务器版和数据中心版)。对于企业设置和阵列设置,你可以将设置备份到一个文件,并可以在任何时刻通过它们进行恢复。
利用ISA你可以在公司两地搭建VPN,并可以让移动用户通过VPN访问公司的信息,这实际上是利用了WIN2K的Routing and Remote Access服务(ISA只不过在IP PACKET FILTER中针对PPTP和L2TP增加了几条包过滤),你可以在相应服务上进行进一步设置,例如增加DHCP中续代理使远端用户得到正确的局域网DNS/WINS配置,远端用户实际上并没有真正登录到公司的域中,对VPN的接入安全性必须加强设置。如果觉得有问题,可以删除由WIZARD建立的4条IP FILTERS,然后DISABLE Routing and Remote Access,最后由WIZARD重新建立。



八:使用H.323 Gatekeeper
不懂,请高人指点。



九:监视和优化ISA
ISA有45种报警,当报警触发时,写入WIN2K的事件记录器,并可选择E-MAIL传递和停止启动ISA服务。ISA的LOG分为IP FILTERS,防火墙,WEB代理三个文件,每天产生(当然你可以限制其总数量),缺省条件下放在ISA的LOG目录下。对于ISA的运行效率观察,最简单的办法是审查ISA的运行报告(事先你要设定ISA如何产生报告),对于ISA的带宽分配,你也可以加以定义,ISA是一种所谓的动态分配,优先满足优先权高的访问,在这基础上再满足优先权低的访问,而不是直接分配固定带宽给用户。



十:排错
基本的,你可以使用ISA Server Reports(性能) /Event Viewer (警告出错信息)/Performance Monitor (性能)/Netstat (网络状态)/Telnet (服务状态)/Network Monitor(网络状况) /The Routing Table (路由信息)来排除错误。
对于复杂的错误,可以先将ISA设置到最简单的模式,观察是否能连通内外网络,然后再一步步添加设置,找出问题的根源。最简单的形式如下:
1. 激活packet filtering enabled, 设定一个最简单的filter,允许双向的IP包
2. 建立一条protocol rule,允许所有的IP traffic,
3. 建立一条SITE AND CONTENT,允许访问所有的网站和内容
4. 将application filters 和routing rules 恢复成缺省设置
5. 检查LAT表包含了所有的客户端
6. 在IP Packet Filters中激活IP Routing,保证有二次连接的协议被顺利路由
7. 检查ISA的外部网卡,确保正确的网关,而内部网卡应该不设置网关
8. 客户端作为SNAT连接ISA,确定其网关地址为ISA的内网卡地址


ISA SERVER的服务器上使用SER-U发布FTP服务
此环境下,是ISA SERVER和SER-U安装在同一台机器上。并正确安装ISA SERVER和SER-U 4.0,设置好了SER-U域、帐号、目录等。

1、SER-U工作在PORT模式时

默认状况下,SER-U使用的PORT模式工作,是使用TCP 20端口进行数据连接,同时还有需要有几个动态端口进行数据连接,来对付多用户。此时需要在ISA SERVER的IP PACKET FILTERS里面添加三条FILTERS。

(1)TCP 21 INBOUDN ALL

FILTER MODEL:ALLOW PACKET TRANSMISSION
FILTER TYPE:CUSTOM
FILTER SETTINGS:IP PROTOCOL:TCP
DIRECION:IN
LOCAL PORT:FIXED PROT 21
REMOTE PORT:ALL PORTS
LOCAL COMPUTER:DEFAULT IP ADDRESS FOR EACH EXTERNAL INTERFACE ON TEH ISA SERVER COMPUTER
REMOTE COMPUTERS:ALL REMOTE COMPUTERS


(2)TCP 20 OUTBOUND ALL

FILTER MODEL:ALLOW PACKET TRANSMISSION
FILTER TYPE:CUSTOM
FILTER SETTINGS:IP PROTOCOL:TCP
DIRECION:OUTBOUND
LOCAL PORT:20
REMOTE PORT:ALL PORTS
LOCAL COMPUTER:DEFAULT IP ADDRESS FOR EACH EXTERNAL INTERFACE ON TEH ISA SERVER COMPUTER
REMOTE COMPUTERS:ALL REMOTE COMPUTERS


(3)TCP DYMANIC OUTBOUND ALL

FILTER MODEL:ALLOW PACKET TRANSMISSION
FILTER TYPE:CUSTOM
FILTER SETTINGS:IP PROTOCOL:TCP
DIRECION:OUTBOUND
LOCAL PORT:DYMANIC
REMOTE PORT:ALL PORTS
LOCAL COMPUTER:DEFAULT IP ADDRESS FOR EACH EXTERNAL INTERFACE ON TEH ISA SERVER COMPUTER
REMOTE COMPUTERS:ALL REMOTE COMPUTERS

存在问题:
在PORT模式下,ISA SERVER服务器需要打开所有的动态出站,如果你一个人控制ISA SERVER服务器,还不重要,如果有多人同时使用,那么ISA SERVER本身是没有什么限制的。还存在一个问题,因为是由服务端发起数据连接,容易被客户端那里的放火墙给挡掉,不过还好XP和ISA SERVRE都还比较聪明对于此种连接,还是通行了,但是对于什么天网什么的,就不是很能够保证了。


2、SER-U工作在PASV模式时

为了解决FTP服务端工作在PORT模式下,种种不足的情况,我们需要使用第二种方法。

(1)设置SER-U工作在PASV模式
本地服务器-》设置-》高级-》PASV端口范围:10001-10004。
域-》设置-》高级-》允许被动模式传送,使用IP:输入您的IP地址,如果是动态域名,就用动态域名。

(2)在ISA SERVER中添加4条关于PASV端口的BOTH FILTERS

TCP 10001 INBOUND ALL

FILTER MODEL:ALLOW PACKET TRANSMISSION
FILTER TYPE:CUSTOM
FILTER SETTINGS:IP PROTOCOL:TCP
DIRECION:INBOUND
LOCAL PORT:10001
REMOTE PORT:ALL PORTS
LOCAL COMPUTER:DEFAULT IP ADDRESS FOR EACH EXTERNAL INTERFACE ON TEH ISA SERVER COMPUTER
REMOTE COMPUTERS:ALL REMOTE COMPUTERS

剩下的3条需要把LOCAL PORT分别改为10002、10003、10004


(3)在ISA SERVER中添加一条关于控制连接端口的IN FILTERS

TCP 21 INBOUND ALL

FILTER MODEL:ALLOW PACKET TRANSMISSION
FILTER TYPE:CUSTOM
FILTER SETTINGS:IP PROTOCOL:TCP
DIRECION:IN
LOCAL PORT:21
REMOTE PORT:ALL PORTS
LOCAL COMPUTER:DEFAULT IP ADDRESS FOR EACH EXTERNAL INTERFACE ON TEH ISA SERVER COMPUTER
REMOTE COMPUTERS:ALL REMOTE COMPUTERS

存在问题:
这样设置的FTP服务器就充分考虑了安全的需要,完全限制了入站的端口范围,但是有个非常致命的问题,我这里开了4个入站的端口10001、10002、10003、10004,我就写了4条FILTERS,如果是100个入站端口呢?写100条FILTERS,那不是要死人。如果你要我打开所有的动态入站端口,那么你装ISA SERVER有什么意义呢?

附:理解FTP工作模式

当你在发布一个FTP服务端在ISA SERVER服务器上的时候,你需要考虑一下FTP服务器工作模式的问题。FTP客户端可以控制FTP服务端,使用

PORT或者PASV模式。在客户端使用PORT和PASV命令就可以转换FTP服务端工作模式。
FTP服务器使用一个固定端口 TCP 21来进行控制连接,同时需要第二个连接来进行数据传送。

在PORT模式下,客户端通过PORT命令,告诉服务端使用PORT模式,同时给出一个客户端用来连接的指定端口。由服务端的选择一个动态端口发起连接,连接客户端指定端口,进行数据传输。在这种工作模式下,需要打开ISA SERVER服务器上所有的动态出站。

在PASV模式下,客户端通过PASV命令,告诉服务端使用PASV模式,服务端返回一个动态端口,由客户端发起连接,连接服务端哪个已知的动态端口。在这种情况下,需要打开ISA SERVER服务器上所有入站。

双方一旦建立了数据连接后,在连接中的数据流是双向的,此时不再受防火墙的规则限制。FTP客户端,如果使用IE,需要在INTERNET属性,高级中,选择“为FTP站点起用文件夹视图”,不选为PORT模式,选上为PASV模式。
FTP客户端,如果使用CUTFTP,需要在站点属性,数据连接类型中选择相应的工作模式就好了。

用ISA+ADSL+花生壳发布内网WEB服务器之讨论

很多中小企业都使用ADSL的方式接入INTERNET,为了降低费用,大多数都是使用的动态IP,这就为那些希望安全发布内网服务器的用户出了一道难题,下面就将讲讲怎样用ISA SERVER 2000和花生壳动态域名来解决这道难题,这里以发布内网的WEB服务器为例。
首先假设ISA SERVER 2000防火墙的内网卡IP地址为192.168.0.43,内网WEB服务器是一个SecureNAT客户端,它的IP地址为192.168.0.42,网关指向192.168.0.43,DNS为当地ISP提供的DNS服务器,当然如果内网有DNS服务器并且启用了转发的也可以指向内网DNS服务器。另外由于ISA需要在80端口监听进入的WEB请求,这样就会与ISA服务器上的IIS有冲突,所以要发布内网的WEB服务器,建议先卸载ISA上的IIS。
第一步:安装花生壳动态域名客户端。
什么是动态域名?简单的说就是把动态IP与一个固定的域名联系起来,这样不管IP怎么变,只要记住动态域名,都可以正常到达动态IP。为了使用花生壳动态域名服务,首先进入http://www.vicp.net注册"护照",注册成功后需要激活花生壳服务,激活之后就到http://www.vicp.net/Asp_Pages/DownLoad/PeanutHull.asp下载花生壳动态域名客户端。这一切完成之后,请把下载的客户端安装到ISA SERVER 2000服务器上。这里我的动态域名是shukoshi.vicp.net。
第二步:使花生壳客户端起作用
由于ISA SERVER 2000的防火墙作用,默认安装后的花生壳客户端并不能正常运行,表现就是花生壳图标呈现灰色,表明它没有与花生壳动态域名的服务器端联系上。我们需要在ISA服务器上新建两个IP Packet Filters以允许花生壳客户端与它的服务器端通讯,定位到ISA管理工具下的Access Policy/IP Packet Filters,新建三个静态包过滤器,参数设置分别为:
第一个:
Name: HSK1
Filter Mode: Allow packet transmission
Filter Type: (custom)
Ip protocol: TCP
Direction: Outbound
Local port: Dynamic
Remote port: fixed port/5050
其他保持默认设置
第二个:
Name: HSK2
Filter Mode: Allow packet transmission
Filter Type: (custom)
Ip protocol: UDP
Direction: send receive
Local port: Dynamic
Remote port: fixed port/5050
其他保持默认设置
第三个:
Name: HSK3
Filter Mode: Allow packet transmission
Filter Type: (custom)
Ip protocol: TCP
Direction: Outbound
Local port: Dynamic
Remote port: fixed port/5000
其他保持默认设置
这样设置以后,等一会花生壳客户端就会由灰变彩,表明它已发挥作用了。
第三步:在ISA中创建目标地址
在ISA管理工具中定位到"Policy Elements/Destination Sets",新建一个目标地址,以你的动态域名为目标地址(如图1)。

第四步:在ISA中发布内网WEB服务器
在ISA管理工具中定位到"Publishing/Web publishing Rules",新建一个发布规则,相关参数如下:
Destination Sets: specified destination set/第三步所创建的目标地址
Client type: Any request
Rule action: Redirect the request to this internal Web server(如图2)

在图2中的内网IP地址栏内填入内网WEB服务器的地址,这里是192.168.0.42,在下面的端口栏填上WEB服务器使用的端口,这个根据你的情况而定,通常保持默认设置即可。
第五步:设置监听接口
在ISA管理工具中右击上面的ISA服务器图标,进入属性窗口,选择"Incoming Web Requests"标签,然后选择第一项"use the same listener configuration for all IP addresses",其他选项保持默认即可(如图3)。


一点重要补充:照说,这样操作之后,发布就已经成功了,但事情并没有完,你可以重启ISA服务器看一下,并使用浏览器看能不能打开http://*.vicp.net,是不是不行?这是为什么呢?这里由于为了让外部用户访问内网web服务器,ISA需要在外部接口上监听80端口,但通过netstat -na | find ":80"命令测试,ISA并没有监听外部接口的80端口,这又是为什么呢?难道之前的操作有误?非也,前面的操作并没有不妥,这只是因为ISA中的Web Proxy服务启动时间与外部接口(ADSL连接形成的虚拟接口)形成时间相差而造成的,通常来说,都是ISA服务先启动,然后由它自动拨号建立ADSL连接,也就是说,当ISA服务启动时,外部接口还没有,所以也就不可能有外部接口的端口被监听。不过只要ADSL连接建立后,重启一次Web Proxy服务就会监视外部接口的相应端口的,此时你再访问http://*.vicp.net就会成功了。要想不用手工的方法来完成这件事比较难,因为服务的加载比较早(设备驱动程序加载完之后),而所有的服务都是并行加载的,所以要想ADSL的连接建立比ISA服务启动早不大可能(从安全的角度来讲也不允许这样),所以你可以采取前面说的重启ISA服务的方法来让内网web服务器正常发布,我建议用下面这种方法,进入图3的界面,所有设置不变,点一下"use the same listener configuration for all IP addresses"项,然后点击"应用"按钮,会出现图4的窗口,


在这里选择第二项即可,这时你再用netstat -na | find ":80"就会发现外部接口的80端口已经处于监听状态了。
-------------------------------------------------------------------------------
另一种方法:
这种方法要使用alert,由于ADSL连接建立之后路由表会改变,所以我们可以利用这个事件重新启动web proxy服务,让它监听外部接口。
步骤如下:1,创建一个批处理文件restart.bat,把它放在%windir%\system32下:
net stop w3proxy
net start w3proxy
2,到ISA管理窗口中,右击monitoring configuration/alerts,然后双击其下的network configuration changed,默认情况下这个alert是没启用的,所以我们在这里把它启用,
然后切换到EVENTS标签

[U] 如何开启ISA服务器上网

打开ISA Management。
找到Servers and Arrays、MyArray、Access Policy、IP Packet Filters。
右击IP Packet Filters文件夹,指向New,然后单击Filter。
出现New IP Packet Filter向导。
在IP Packet Filter Name文本框中,输入HTTP Client,然后单击Next。
在Servers屏幕中,保留All ISA Server Computers In The Array处于默认状态,然后单击Next。
在Filter Mode屏幕中,保留Allow Packet Transmission处于默认状态,然后单击Next。
在Filter Type屏幕中,选择Custom单选按钮,然后单击Next。
出现Filter Settings屏幕。
单击Protocol下拉列表框,选择TCP。
单击Local Port下拉列表框,选择Dynamic。
单击Remote Port下拉列表框,选择Fixed Port。
Remote Port下拉列表框右端的Port Number文本框变为可输入状态。
在Port Number文本框中,输入80。
单击Next。
在Local Computer屏幕中,保留Default IP Address(es)…处于默认状态,然后单击Next。
在Remote Computers屏幕中,保留All Remote Computers处于默认状态,然后单击Next。
出现Completing the New IP Packet Filter Wizard屏幕。
单击Finish。
在ISA Management的IP数据包筛选器列表中出现HTTP Client数据包筛 选器。
需要注意的是,这种数据包筛选器只允许HTTP内容通过,不允许S-HTTP 内容通过。要允许ISA Server浏览安全Web站点,您需要为TCP端口443另外创建一个允许型数据包筛选器。


在ISA Server防火墙上禁止用户使用QQ的讨论
此为转帖图上不来,大家看文字吧。

QQ给大家带来了方便与快乐,但如果在工作时间使用QQ,就不可避免的会对工作产生负作用,所以很多公司都要求在防火墙上进行设置以禁止员工上QQ,在这里就来看看怎样在ISA防火墙上进行配置以禁止内网用户使用QQ(本文主要以ISA server 2000为例,但也会提到最新的ISA Server 2004的一些新增功能)。
在谈具体配置过程之前,我们先来看一下QQ的通讯原理(如图1),



QQ通讯主要表现在两个方面,一个是客户端与服务器之间的通讯,比如QQ客户端发送登录信息、个人配置信息等到服务器,而服务器返回在线好友、广告、在线好友的IP地址及端口等信息。另一种通讯就是发生在客户端与客户端之间的,比如正常登录后,客户端之间聊天就不再通过服务器转发了,而是客户端之间直接通讯,通常是UDP 4000与UDP 4000端口通信,如果有多个QQ,端口号依次增加,比如UDP 4001、4002等。对于要禁止用户使用QQ,其实我们只关心客户端登录服务器的通讯,因为只要禁止了客户端登录,用户就无法使用QQ了,所以这里要更多地来看看QQ的登录方式。QQ有以下几种登录方式(QQ2000c 1230版以上,这里以最新的QQ2003III buildd0117为例):
1, 最常用的UDP协议登录,客户端使用UDP 4000端口,而服务器则使用UDP 8000端口,图2是常用的7个登录服务器,它们均以sz开头。



2, TCP方式登录,服务器使用TCP80端口(也用TCP 443端口),也就是大多数WEB服务器使用的端口,现在这种服务器有两个,如图3:



3, 会员专用的VIP登录,服务器IP为218.17.209.42 ,端口是443。
4, Socks5代理登录,通过sock5代理服务器进行登录。
5,HTTP代理登录,通过http代理服务器进行登录。
知道了QQ的登录方式,要禁用QQ就好着手了,从上面可以看出,QQ登录时使用了从网络层到应用层的协议进行登录,所以要有效禁止QQ也应建立一个立体的策略。下面就根据上面不同的登录方式来设置不同的禁止策略。
(一) 禁止UDP方式登录
对于ISA Server 2000来说,一个外出访问必须要没有一个协议规则拒绝请求并且要有明确的协议规则允许请求才能被ISA放行,所以对于这种登录方式,首先需要规范ISA Server 2000本身的策略建立原则,即应该只为需要的协议创建允许规则,而不应该创建一种允许全部协议外出的规则,由于拒绝策略将被优先应用,为了提高效率,我们可以创建一条拒绝策略,这里也就是创建一条拒绝对外部UDP 8000端口进行访问的协议规则就行了,用不着再去禁用服务器IP。由于ISA Server 2000中没有预定义UDP 8000这样一条协议,所以需要先创建一条协议。要定义新的协议请右击Policy elements下的Protocol definitions,选择“新建/definition”,协议各项参数如下:
Name:DenyUDP8000 
Port numer:8000
Protocol type:UDP
Direction:send receive
完成后再右击Access policy下的Protocol Rule,选择“新建/Rule”,参数如下:
Name:DenyQQ8000
Rule action:Deny
Protocols:selected protocols/DenyUDP8000
Schedule:Always
Client type:Any request
这样就建立了一条禁止客户端使用UDP方式进行登录的协议规则。
(二) 禁用TCP方式登录
由于这种登录方式使用的是我们平常上网访问的TCP 80或TCP 443端口,所以不能再像上面一样采取禁用端口的方法,但由于这种登录只有两台服务器,所以可以采取禁止访问相应服务器的方式来禁用此种方式登录,同理会员专用的VIP登录也可以采用这种方法来禁用,在ISA Server 2000中的操作步骤如下:
1,创建目标地址集
右击“Policy Elements/Destination sets”,选择“新建/Sets”,增加一个目标地址集(图3中列出的IP和会员登录所用的服务器IP),如图4所示:



最后结果应该如图5所示:



2,创建站点和内容规则。右击“Access Policy/site and content rules”,选择“新建/rule”,
各项参数如下:
name:DQQlogin
rule action:deny
rule configuration:deny access based on destination
destination sets:specified destination set/(第1步所建的目标地址集名)
另外还可以创建一个目标地址集,参数为图3中的那几个DNS主机(FQDN),并参照上面第2步为它创建一条拒绝类的站点和内容规则。
(三) 禁用通过Socks5代理登录
对于socks5代理来说,可以分两种情况来讨论:
1, socks5代理服务器使用常用的1080(或1813、3128)端口
对于这种情况,我们可以参照(一)部分禁用UDP 8000端口的方法来禁用UDP 1080、1813、3128端口;
2, Socks5代理服务器不是使用的周知端口1080、1813或3128
对于这种情况是较难控制的,但如果ISA server本身策略原则得当,即只为需要的协议创建了允许规则(比如只创建了允许访问外部的53和80端口),常规方式下QQ仍然不能登录,除非它使用开放的端口与外部通信(比如53或80等),下面将专门讲这种情况。
(四) 禁用HTTP代理登录
这是很多ISA Server 2000管理员碰到的一个难题,因为ISA Server 2000本身就有一个Web代理服务,客户端可以把QQ的HTTP代理服务器设为ISA Server 2000的地址,端口设为8080,这样就很容易地用上QQ了,但是只要你按上面(二)部分禁用TCP登录的方式进行了操作,那么QQ是无法通过这个HTTP代理的,因为这种方式的登录最终也是在图3中的服务器上进行登录,当QQ把数据包发送到ISA Server 2000代理服务时,代理服务会会检查到目标地址是图3中的服务器,所以访问会被禁止。但如果QQ不通过ISA Server 2000的代理而使用外面的代理情况会怎么样呢?这就与你建立的协议规则有关了,在这里仍然强调我们只应该为需要使用的协议创建规则,这样那些没有允许规则的协议就不能外出,比如通常我们不会创建允许TCP 8080端口开放的协议规则,这样QQ就不能使用那些端口为8080的HTTP代理服务器,但对QQ使用端口为80的代理服务器就不好管了,毕竟我们不可能不允许对80端口的访问。难道对于这种情况就没法管了,非也,因为使用HTTP代理服务的数据包有一个很明显的特征就是通常都会使用connect方法,这样只要禁止使用connect方法的HTTP协议数据包通过就行了,要检查HTTP数据包,此时就需要应用程序过滤器来工作了,但在ISA server 2000中,没有内置的Web filter,也就没有能够检查HTTP报头的Web filter了,不过所幸的是在ISA Server 2004中已经有了相应的Web filter,你可以配置Block掉使用connect方法的HTTP数据包,方法是:
1,右击相应规则,选择“configure HTTP”;
2,切换到“Methods”标签,选择“Block specified methods(allow all others)”项,然后点击“Add”按钮;
3,在窗口的“method”中输入connect即可。如图6。

(五)即使你禁止了上面QQ所用的一切登录方式,但是你所做的仍然可能只是竹篮打水一场空。因为客户机可以安装这样一种程序,这种程序本身可以作为一个Socks5服务器(此时需要把QQ的登录方式设置为使用此socks5代理服务器),并且它能够把socks数据包转化成http数据包,然后把转化后的数据包发送到外部一个开放80端口的HTTP服务器上,并在这个服务器上把收到的数据包还原成socks数据包,然后转发至目标服务器(这里是QQ的登录服务器),目标服务器则把响应信息通过原路返回,由于外出的数据包是标准的HTTP数据包(由于不是HTTP代理,所以没有connect语句),所以ISA是允许它外出的。对于这种登录方式,可以采取下面的方法进行处理。
1,禁止对相应HTTP服务器的访问
由于这种程序需要在外部提供额外的接收服务器,导致程序运行的成本较高,所以这种程序很少,或者都是收费服务,所以这种程序一出来,就会很快流行,当然也就“出名”了,正所谓人怕出名猪怕壮,枪打出头鸟,此时只要封掉这些程序使用的外部服务器就可以了。比如国内现在就有一个叫“通通通”的程序提供这种免费服务,它的原理就与上面所讲一样,通过它几乎可以让一切内网网络程序突破防火墙的限制,要禁止“通通通”,只要封掉其提供服务的HTTP服务器就行了,这里是service.tongtongtong.com、wt.tongtongtong.com和dx.tongtongtong.com三个服务器,禁止方法参照(二)部分。补充:以它们的IP为目标地址集。
2,扫描内网中的socks服务器
采用第一种方法不可避免地会漏掉一些服务提供者,所以可以采用扫描内网中的1080、1813、3128端口的方法来发现使用socks5服务器的人,常用的端口扫描工具有superscan,但是如果使用者更改了程序的服务端口这种方法又难行通了,并且这种工作还必须经常做,如有必要,可以把它列为一天的工作内容之一。
3,上面都是治标不治本的方法,最根本的方法应该对HTTP数据包进行内容检查,因为这种HTTP数据包中一定会有与QQ相关的数据在里面,比如通常都会有相关登录服务器的数据,只要检查到有这些内容,就可以block掉,不过这种内容检查的功能在ISA2000中是没有内置的,在ISA 2004中集成了这项功能,它可以禁止含有匹配字符的HTTP内容通过,比如禁止掉含有tencent.com的HTTP内容,这些内容可以位于request URL、request headers、request body、response headers和response body区域中,但这种方法有些副作用,最明显的就是会影响上网的响应速度,但它仍不失为一种较好的方法,不过如果http数据包是加密的,即HTTPS数据包,上述方法也将失效。这种方法在上面图6窗口的signatures标签中进行设置,如图7。


上面从防火墙的角度讨论了怎样来禁止内网用户使用QQ,其实我们还可以从另外一个方面来考虑,就是让客户端不能安装QQ,这样不就禁止QQ了吗?如果你的网络是以域的方式组织的,并且客户端用户只有users组的权限(默认情况下应该这样),文件系统也是NTFS格式,这样客户端是没有安装软件的权限的,也就自然不存在使用QQ的问题了。另外本文虽然是对QQ的讨论,但禁止原理对其他即时通信软件或网络游戏同样适用。


用ISA Server 2000实现ADSL的共享与安全上网

ISA Server 2000是一款功能强大的防火墙和代理服务器软件,ISA 即是Internet Security and Acceleration Server的缩写,其中的Security主指它是一款防火墙,而Acceleration是加速之意,主指它的缓存功能,在这里也不想罗列ISA Server 2000其他具体功能,只是讲讲初次使用者最关心的问题,就是怎样用ISA Server 2000来共享ADSL上网并实现一定的安全性。
一、安装前的准备
1,硬件安装与连接
要安装ISA Server 2000,你的服务器应该准备好两块网卡,一块与交换机相连(称之为内网卡),另一块与ADSL猫相连(称之为外网卡)。
2,操作系统安装和拨号连接的创建
通常情况下,ISA Server 2000都安装在一台Windows 2000 Server上,它需要NTFS格式的支持,为了保证系统的安全性,请为操作系统打好SP及补丁,另外保持外网卡自动获得IP设置(也可自设一个与内网卡不同子网的IP),内网卡设置好IP和子网掩码,网关和DNS为空。
二、安装ISA Server 2000
1:点击安装文件后,前面的几个安装界面没什么可说的,当遇到选择安装方式时只需要选择“Full Installation”就行了。
2:当遇到选择安装模式时请选择集成模式(Integrated Mode)。其中“Firewall Mode”是指防火墙模式,这种模式的ISA Server 2000就是一个单一的防火墙,而“Cache Mode”是指以缓存模式安装,安装后ISA Server 2000就是一个单一的web缓存服务器,对中小企业来说,我们通常选择“Integrated Mode”,这样的ISA Server 既有防火墙功能也是一个缓存服务器。
3:如果你的服务器上安装了IIS的,那么ISA安装程序会提示你它将停止IIS提供的WEB服务,也即是会关闭掉IIS在TCP 80端口的监听,因为ISA可能会使用TCP 80端口,比如auto discovery 默认就使用此端口,另外ISA也用这个端口监听传入的WEB请求以实现内网WEB服务的发布。

4,接下来是设置缓存位置和大小的窗口,按默认设置即可。
5,这里是设置内网范围的窗口,点击窗口中的construct table按钮,弹出所示的窗口,取消最上面的一个复选框的选择,然后在下方的相应内网卡上勾选上,记住只勾选内网卡,不要勾选外网卡(与ADSL猫相连的那块网卡)。从图2中可以看出,我这里有两块内网卡,一块外网卡。

6,接着就是正式的安装过程,这里就不再细说。
三、配置ISA Server 2000
安装后的ISA Server 2000在默认情况下是不允许所有内网客户端访问因特网的,当然也不允许外部的连接进入内网。跟所有防火墙一样,ISA也是根据访问策略来进行进出网络限制的,从网络结构来说,ISA可以在网络层、线路级(协议)和应用层进行访问控制,现在讲共享上网,所以来看看怎样使内网用户能够访问因特网,对于怎样让网外的连接进入内网就不在今天讨论之列。这里假设只允许用户打开网页,收发邮件及上QQ,看我们怎样来实现这些要求。
(一)创建协议规则
在正式讲设置之前,我们先来看看对于一个内网的传出请求ISA是按怎样的顺序进行处理的,如图3,从图中可以看出,必须要有明确的协议规则(Protocol Rules)与站点和内容规则(Site and Content Rules)允许才行, 而对于数据包筛选器(IP packet Filters),只要没有相应拒绝规则就行了,在默认情况下,站点和内容规则是允许每个人能在任意时候访问因特网上任意站点的内容的,而数据包筛选器中也没有拒绝类的筛选器,所以在这里我们只要定义合适的协议规则就可以上网了。下面就是创建协议规则的基本步骤。

第一步:打开ISA管理器,选择查看菜单下的advanced项,然后定位到Access Policy>Protocol Rules。
第二步:我们首先要创建什么协议规则呢?我们的要求虽然是上网,收发邮件和上QQ,但前面两个的实现必须要DNS的支持,所以你应该明白我们首先要创建的协议规则是允许DNS查询。右击Protocol Rules,选择新建/rules,在弹出的窗口中给这个协议规则取个名字,然后进入下一步。

第三步:由于是允许进行DNS查询,所以这里选择第一项allow,

第四步:在接下来的窗口中选择selected protocols。在这里顺便说一下,如果你允许内网无限制的访问因特网,在这里选择All IP traffic项就行了。
第五步:在这个窗口中选择已经定义好的DNS Query和DNS Zone Transfer两项协议,

第六步:接下来的窗口是选择应用此规则的时段安排,我们这里选择always项。你可以到策略元素下的时间表项(Policy Elements/schedules)中定义更多的时间段。
第七步:在这个窗口是设置哪些客户端可以应用这个协议规则,客户端可以用IP地址、用户名和组名来进行限制,我们这里选择any request。与时间表的定义一样,你也可以到Policy Elements/client address sets中定义多种客户端组合。但要注意的是,对于SecureNAT客户端,你只能用IP地址进行限制,因为这种类型的客户端不能提供用户信息,关于客户端的类型下面将讲到,这里只是先提一下。
第八步:最后一个页面是前面几步设置信息的总结页面,如果检查无误,确定即可,如果有误,返回修改即可。
好了,上面就定义了一个允许客户端进行DNS查询的协议规则,对于其他协议规则就同理可行,这里也就不再具体说了,只是在上面第五步中选择不同的协议就行了,上网服务就选择http/https协议,收邮件选择pop3协议,发邮件选择Smtp协议,那QQ呢?怎么找不到关于QQ的协议呢?对的,你是不能找到关于QQ的协议,毕竟ISA是一款国际产品,对于只在中国流行的QQ显然它没有考虑到为它专门定义好一个协议,不过不要紧,我们可以自己定义一个:定位到Policy Elements/protocol Definitions,你可以看到右窗格中有很多协议,这些都是ISA中已经定义好了的,我们现在右击 protocol Definitions,选择新建/definition,在欢迎窗口中为这个新定义的协议取个名字,这里就取QQ吧,在接下来的窗口中按进行设置,

然后进入下一步,

由于QQ可能需要辅助连接,选择yes项,然后点击右边的new按钮创建辅助连接,按图8所示设置就行了,这样我们就为QQ定义好了一个协议,此时你就可以返回Policy/Protocol Rules为QQ创建一个允许类协议规则了。注意如果你在上面第四步定义协议规则时选择了All IP traffic项,你仍然可能需要定义协议和协议规则,这要看你的客户端是什么类型了,如果是SecureNAT客户端,你就需要定义QQ协议和协议规则,因为对于SecureNAT客户端来说,All IP traffic仅指所有已定义的协议,而对于Firewall客户端来说,All IP traffic的端口才是真的all,包含1-65535所有端口。所以对于Firewall客户端来说,如果你定义协议规则时选择了All IP traffic,那么就不必专门定义QQ协议了。
(二)让内网用户通过ADSL拨号连接访问因特网
协议规则已经定义好了,现在可以访问因特网了吧?先拨号,然后在客户端试一试,怎么还不能上网呢?是的,你现在的客户端类型是SecureNAT客户端,要让它能上网,还必须在ISA中创建一个拨号连接项和进行一些其他配置,如果你的客户端是firewall客户端,你会发现不用创建拨号项现在也能上网了。要创建拨号项,步骤如下。
第一步:在Policy Elements/dial-up entries中新建一个拨号连接项,

在Name栏给这个拨号连接取个名字,然后点击Select按钮选择RASPPPoE创建的虚拟拨号连接,并点击Set Account按钮为这个拨号连接设置RASPPPoE拨号时的用户名和密码,这样ISA才能进行自动拨号。
第二步,要让ISA使用上面的拨号连接项还必须进行下面的设置:右击Network Configuration,在属性窗口中勾选上Use dail-up entry项。

第三步:为了实现按需要拨号,双击Network Configuration/Routing下的路由规则,在窗口的Action标签中勾选上Use Dial-up Entry for Primary Route 复选框。
四、客户端的配置
上面的设置进行完成后,重启ISA的服务或ISA服务器,客户端就应该可以访问因特网了吗?非也,因为客户端要上网,它就必须找到上网的代理者,当然这里就是ISA服务器,怎样才能找到ISA服务器呢?对于不同的客户端类型寻找的方式不同,所以也需要不同的设置方法,下面将分别讨论。首先来了解一下客户端的类型,ISA的客户端有三种,针对于它的WEB缓存功能,有WEB代理客户端,针对防火墙功能,有SetcureNAT和Firewall客户端(FWC),Firewall客户端是指安装 并启用了ISA客户端软件的计算机(这个软件位于ISA服务器的mspclnt共享目录中),而其他的没有安装的就是SetcureNAT客户端,为了避免安装软件的麻烦,这里就先讲讲SetcureNAT客户端的设置,对于SetcureNAT客户端,只需把网关指向ISA服务器的内网卡IP,把DNS指向ISP的DNS服务器就行了,注意不能把DNS指向ISA服务器,因为ISA服务器不为SetcureNAT客户端提供DNS代理服务。对于Firewall客户端来说,只要安装了客户端软件就行了,而对于WEB客户端来说,对于每一个应用程序都需要进行代理设置,比如最新的QQ可以用HTTP代理,也就是它可以作为WEB客户端,只要把QQ的HTTP代理中的IP指向ISA服务器的内网卡,而端口设为8080就行了。大家可能疑问了,为什么FWC和WEB客户端都不必专门设置DNS呢?这是因为ISA可以作为FWC和WEB客户端的DNS代理,从这里可以看出,对于FWC和WEB代理客户端来说,我们可以不必定义DNS查询的协议规则,因为ISA可以为它们转发DNS查询,而在IP Packet Filters中默认就有一条应用于ISA服务器的允许类DNS Filter。
五、ISA服务器的上网
现在你的客户端应该可以正常上网了,但却不能在ISA服务器上进行因特网访问,这是为什么呢?因为此时你的ISA服务器并非一个NAT客户端,也不能成为一个FWC(不能在ISA服务器上安装FWC软件,切记),所以需要进行特殊对待才能让它上网,方法就是使用IP Packet Filters,你需要为不同的应用设置不同的过滤器,你要上网,就得新建一个允许上网的过滤器,方法如下:
第一步:右击access policy/IP Packet Filters,选择新建filter,在出现的欢迎窗口中给新过滤器取个名字,这里就取为WEB吧。
第二步:在这个窗口中选择allow packet transmission,然后进入下一步。
第三步:选择custom,点击下一步:
第四步:在IP protocol中选择TCP,在Direction中选择outbound,在local port中选择Dynamic,在remote port中选择fixed port,然后在port number中填入WEB服务所用的80,如图11,如果是收邮件,这里就填POP3服务的110端口,发邮件就填25端口,如果是QQ,协议可以选UDP,方向选send retrieve,本地端口也选动态分配Dynamic,远程端口填8000(再建一条针对端口4000的)。

第五步:接下来的两个窗口保持默认值就行了。
六、结语
通过上面的一番设置,你的ISA服务器和客户端都应该可以进行因特网访问了。对于功能强大的ISA服务器来说,还有很多有用的功能等待着我们去利用。

此帖来自:
http://www.isacn.org/bbs/index.php?showtopic=11306

人情如冰六月寒,花做一份艳,为谁笑人间? 如果任何人发现我转载的有图像的文章中图像失效或者文章有问题,请及时短消息通知我。先谢谢。::)) coup de foudre

TOP

发新话题