当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > Windows服务器安全配置经验分享

Windows服务器
Windows 2000系统下关闭端口的方法与思路
Windows2000系统如何找回丢失的管理员密码
如何在Windows 2000上安装配置防火墙
Windows 2000安全配置工具
针对Windows 2000优化Web服务器性能
Windows 2000超级技巧十则
如何修改Windows 2K远程终端默认端口
Windows 2000 SP4八大热点问题
Windows 2000中“NTLDR is missing”故障的解决
Windows 2000操作系统中ADSL的共享办法
Windows 2000开机耗内存40M秘技大公开
Windows 2000 常用系统进程列表
Windows 2000的一些Privilege
Win2000/XP与Win98互访
Windows 2000安装光盘的妙用
Win 2000/XP上网重启解决办法
深入改造Win2000“位置条”
在Win2000下“复活”老网卡
加快Win2000浏览网上邻居的速度
防患于未然 轻松做好Windows 2000安全策略

Windows服务器安全配置经验分享


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 102 ::
收藏到网摘: n/a

现在有很多人都认为微软的东西漏洞太多,微软的系统安全性极差,不过通过我在做各种系统的安全配置的过程中我总结出了一些经验,特拿来与各位共享,其实各种系统都有很多漏洞,只不过微软的东西用的人最多,普遍又是水平不是很高,不会作各种安全设置,所以才会让人有现在网上用NT/2000服务性安全性都很差的感觉,其实NT/2000的服务器如果真的做好了各项安全设置之后,其安全性绝对不会比nix系统差,如果你按照下面我说的做,我可以保证你95%以上的安全性,100%我可不敢保证,当然你必须要及时打上微软的各种大大小小的补丁,呵呵,是谁,谁拿香蕉皮扔我,站出来!!呵呵,废话少说,转入正题。

1.初级篇:NT/2000系统本身的定制安装与相关设置
用NT(2000)建立的WEB站点在所有的网站中占了很大一部分比例,主要因为其易用性与易管理性,使该公司不必再投入大量的金钱在服务器的管理上,这一点优于nix系统,不必请很专业的管理员,不必支付一份可以节省的高薪,呵呵,当然nix的管理员也不会失业,因为其开放源码和windows系统无与伦比的速度,使得现在几乎所有的大型服务器全部采用nix系统。但对于中小型企业来说windows已经足够,但NT的安全问题也一直比较突出,使得一些每个基于NT的网站都有一种如履薄冰的感觉,在此我给出一份安全解决方案,算是为中国的网络安全事业做出一份贡献吧 (说明:本方案主要是针对建立Web站点的NT、2000服务器安全,对于局域网内的服务器并不合适。)
一、 定制自己的NT/2000 SERVER
1. 版本的选择:
WIN2000有各种语言的版本,对于我们来说,可以选择英文版或简体中文版,我强烈建议:在语言不成为障碍的情况下,请一定使用英文版。要知道,微软的产品是以Bug &Patch而著称的,中文版的Bug远远多于英文版,而补丁一般还会迟至少半个月(也就是说一般微软公布了漏洞后你的机子还会有半个月处于无保护状况)
2. 组件的定制:
win2000在默认情况下会安装一些常用的组件,但是正是这个默认安装是极度危险的你应该确切的知道你需要哪些服务,而且仅仅安装你确实需要的服务,根据安全原则,最少的服务+最小的权限=最大的安全。典型的WEB服务器需要的最小组件选择是:只安装IIS的Com Files,IIS Snap-In,WWW Server组件。如果你确实需要安装其他组件,请慎重,特别是:Indexing Service, FrontPage 2000 Server Extensions, Internet Service
Manager (HTML)这几个危险服务。
二、 正确安装NT/2000 SERVER

不论是NT还是2000,硬盘分区均为NTFS分区;
说明:
(1) NTFS比FAT分区多了安全控制功能,可以对不同的文件夹设置不同的访问权限,安全性增强。
(2) 建议最好一次性全部安装成NTFS分区,而不要先安装成FAT分区再转化为NTFS分区,这样做在安装了
SP5和SP6的情况下会导致转化不成功,甚至系统崩溃。
(3) 安装NTFS分区有一个潜在的危险,就是目前大多数反病毒软件没有提供对软盘启动后NTFS分区病毒的查杀,这样一旦系统中了恶性病毒而导致系统不能正常启动,后果就比较严重,因此及建议平时做好防病毒
工作。
(4)分区和逻辑盘的分配
有一些朋友为了省事,将硬盘仅仅分为一个逻辑盘,所有的软件都装在C驱上,这是很不好的,建议最少建立两个分区,一个系统分区,一个应用程序分区,这是因为,微软的IIS经常会有泄漏源码/溢出的漏洞,如果把系统和IIS放在同一个驱动器会导致系统文件的泄漏甚至入侵者远程获取ADMIN。推荐的安全配置是建立三个逻辑驱动器,第一个大于2G,用来装系统和重要的日志文件,第二个放IIS,第三个放FTP,这样无论IIS或FTP出了
安全漏洞都不会直接影响到系统目录和系统文件。要知道,IIS和FTP是对外服务的,比较容易出问题。而把IIS和FTP分开主要是为了防止入侵者上传程序并从IIS中运行。
(5)安装顺序的选择:
win2000在安装中有几个顺序是一定要注意的: 首先,何时接入网络:Win2000在安装时有一个漏洞,在你输入Administrator密码后,系统就建立了ADMIN$的共享,但是并没有用你刚刚输入的密码来保护它,这种情况一直持续到你再次启动后,在此期间,任何人都可以通过ADMIN$进入你的机器;同时,只要安装一完成,各种服务就会自动运行,而这时的服务器是满身漏洞,非常容易进入的,因此,在完全安装并配置好win2000 SERVER之前,一定不要把主机接入网络。 其次,补丁的安装:补丁的安装应该在所有应用程序安装完之后,因为补丁程序往往要替换/修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果,例如
:IIS的HotFix就要求每次更改IIS的配置都需要安装
三、 安全配置NT/2000 SERVER
即使正确的安装了WIN2000 SERVER,系统还是有很多的漏洞,还需要进一步进行细致地配置。
1.端口:
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口会比较安全,配置的方法是在网卡属性-TCP/IP-高级-选项-TCP/IP筛选中启用TCP/IP筛选,不过对于win2000的端口过滤来说,有一个不好的特性:只能规定开哪些端口,不能规定关闭哪些端口,这样对于需要开大量端口的用户就比较痛苦。
2.IIS:
IIS是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的IIS默认安装又实在不敢恭维,所以IIS的配置是我们的重点,现在大家跟着我一起来:首先,把C盘那个什么Inetpub目录彻底删掉,在D盘建一个Inetpub(要是你不放心用默认目录名也可以改一个名字,但是自己要记得)在IIS管理器中将主目录指向D:Inetpub;其次,那个IIS安装时默认的什么scripts等虚拟目录一概删除,如果你需要什么权限的目录可以自己慢慢建,需要什么权限开什么。(特别注意写权限和执行程序的权限,没有绝对的必要千万不要给)第三,应用程序配置:在IIS管理器中删除必须之外的任何无用映射,必须指的是ASP,ASA和其他你确实需要用到的文件类型,例如你用到stml等(使用server side include),实际上90%的主机有了上面两个映射就够了,其余的映射几乎每个都有一个凄惨的故事:htw, htr, idq, ida……想知道这些故事?去查以前的漏洞列表吧。
在IIS管理器中右击主机->属性->WWW服务 编辑->主目录配置->应用程序映射,然后就开始一个个删吧(里面没有全选的,嘿嘿)。接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟站点继承你设定的属性。安装新的Service Pack后,IIS的应用程序映射应重新设置。(说明:安装新的Service Pack后,某些应用程序映射又会出现,导致出现安全漏洞。这是管理员较易忽视的一点。)
为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件,可以让目前绝大多数CGI漏洞扫描器失灵。其实原因很简单,大多数CGI扫描器在编写时为了方便,都是通过查看返回页面的HTTP代码来判断漏洞是否存在的,例如,著名的IDQ漏洞一般都是通过取1.idq来检验,如果返回HTTP200,就认为是有这个漏洞,反之如果返回HTTP404就认为没有,如果
你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,那么所有的扫描无论存不存在漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,结果反而掩盖了你真正的漏洞,让入侵者茫然无处下手,不过从个人角度来说,我还是认为扎扎实实做好安全设置比这样的小技巧重要的多。
最后,为了保险起见,你可以使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。还有,如果你怕IIS负荷过高导致服务器满负荷死机,也可以在性能中打开CPU限制,例如将IIS的最大CPU使用率限制在70%。
3.帐号策略:
(1)帐号尽可能少,且尽可能少用来登录;
说明:网站帐号一般只用来做系统维护,多余的帐号一个也不要,因为多一个帐号就会多一份被攻破的危
险。
(2)除过Administrator外,有必要再增加一个属于管理员组的帐号;
说明:两个管理员组的帐号,一方面防止管理员一旦忘记一个帐号的口令还
有一个备用帐号;另方面,一旦黑客攻破一个帐号并更改口令,我们还有
有机会重新在短期内取得控制权。
(3)所有帐号权限需严格控制
(4)将Administrator重命名,改为一个不易猜的名字。其他一般帐号也应尊循这一原则。
说明:这样可以为黑客攻击增加一层障碍。
(5)将Guest帐号禁用,同时重命名为一个复杂的名字,增加口令,并将它从
Guest组删掉;
说明:有的黑客工具正是利用了guest 的弱点,可以将帐号从一般用户提
升到管理员组。
(6)给所有用户帐号一个复杂的口令(系统帐号出外),长度最少在8位以上, 且必须同时包含字母、数 字、特殊字符。同时不要使用大家熟悉的单词(如microsoft)、熟悉的键盘顺序(如qwert)、熟悉的数字(如2000)等。
说明:口令是黑客攻击的重点,口令一旦被突破也就无任何系统安全可言了,而这往往是不少网管所忽视的地方,据我们的测试,仅字母加数字的5位口令在几分钟内就会被攻破,而所推荐的方案则要安全的多。
(7)口令必须定期更改(建议至少两周该一次),且最好记在心里,除此以外不要在任何地方做记录;另外,如果在日志审核中发现某个帐号被连续尝试,则必须立刻更改此帐号(包括用户名和口令);
(8)在帐号属性中设立锁定次数,比如改帐号失败登录次数超过5次即锁定改帐号。这样可以防止某些大规模的登录尝试,同时也使管理员对该帐号提高警惕。
4.安全日志:
Win2000的默认安装是不开任何安全审核的!
那么请你到本地安全策略->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占用系统资源而且会导致
你根本没空去看,这样就失去了审核的意义。 与之相关的是:
在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal Service Configration(远程服务
配置)-权限-高级中配置安全审核,一般来说只要记录登录、注销事件就可以了。
5.目录和文件权限:
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还必须非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。
在进行权限控制时,请记住以下几个原则:
1>限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限;
2>拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一个被拒绝访问某个资源的组
,那么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。所以请非常小心地使用拒绝,
任何一个不当的拒绝都有可能造成系统无法正常运行;
3>文件权限比文件夹权限高
4>利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯之一;
5>仅给用户真正需要的权限,权限的最小化原则是安全的重要保障;
6.只安装一种操作系统;
说明:安装两种以上操作系统,会给黑客以可乘之机,利用攻击使系统重启到另外一个没有安全设置的操作系统(或者他熟悉的操作系统),进而进行破坏。
7.安装成独立的域控制器(Stand Alone),选择工作组成员,不选择域;
说明:主域控制器(PDC)是局域网中队多台联网机器管理的一种方式,用于网站服务器包含着安全隐患,使黑客有可能利用域方式的漏洞攻击站点服务器。

8.将操作系统文件所在分区与WEB数据包括其他应用程序所在的分区分开,并在安装时最好不要使用系统默
认的目录,如将WINNT改为其他目录;
说明:黑客有可能通过WEB站点的漏洞得到操作系统对操作系统某些程序的执行权限,从而造成更大的破坏。同时如果采用IIS的话你应该在其设置中删除掉所有的无用的映射,同时不要安装索引服务,远程站点管理与服务器扩展最好也不要要,然后删掉默认路径下的www,整个删,不要手软,然后再硬盘的另一个硬盘建立存放你网站的文件夹,同时一定记得打开w3c日志纪录,切记(不过本人建议采用apache 1.3.24)系统安装过程中一定本着最小服务原则,无用的服务一概不选择,达到系统的最小安装,多一个服务,多一份风险,呵呵,所以无用组件千万不要安装!
9.关于补丁:在NT下,如果安装了补丁程序,以后如果要从NT光盘上安装新的Windows程序,都要重新安装一次补丁程序, 2000下不需要这样做。
说明:

(1) 最新的补丁程序,表示系统以前有重大漏洞,非补不可了,对于局域网内服务器可以不是最新的,但站点必须安装最新补丁,否则黑客可能会利用低版本补丁的漏洞对系统造成威胁。这是部分管理员较易忽视的一点;
(2) 安装NT的SP5、SP6有一个潜在威胁,就是一旦系统崩溃重装NT时,系统将不会认NTFS分区,原因是微软在这两个补丁中对NTFS做了改进。只能通过Windows 2000安装过程中认NTFS,这样会造成很多麻烦,建议同时做好数据备份工作。
(3) 安装Service Pack前应先在测试机器上安装一次,以防因为例外原因导致机器死机,同时做好数据备份。

尽量不安装与WEB站点服务无关的软件;
说明:其他应用软件有可能存在黑客熟知的安全漏洞。


10.解除NetBios与TCP/IP协议的绑定
说明:NetBois在局域网内是不可缺少的功能,在网站服务器上却成了黑客扫描工具的首选目标。方法:NT:控制面版——网络——绑定——NetBios接口——禁用 2000:控制面版——网络和拨号连接——本地网络——属性——TCP/IP——属性——高级——WINS——禁用TCP/IP上的NETBIOS

11.删除所有的网络共享资源,在网络连接的设置中删除文件和打印共享,只留下TCP/IP协议
说明:NT与2000在默认情况下有不少网络共享资源,在局域网内对网络管理和网络通讯有用,在网站服务器上同样是一个特大的安全隐患。(卸载“Microsoft 网络的文件和打印机共享”。当查看“网络和拨号连接”中的任何连接属性时,将显示该选项。单击“卸载”按钮删除该组件;清除“Microsoft 网络的文件和打印
机共享”复选框将不起作用。)
方法:
(1)NT:管理工具——服务器管理器——共享目录——停止共享;
2000:控制面版——管理工具——计算及管理——共享文件夹———停止共享
但上述两种方法太麻烦,服务器每重启一次,管理员就必须停止一次
(2)修改注册表:
运行Regedit,然后修改注册表在
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters下增加一个键
Name: AutoShareServer
Type: REG_DWORD
value: 0
然后重新启动您的服务器,磁盘分区共享去掉,但IPC共享仍存在,需每次重启后手工删除。

12.改NTFS的安全权限;
说明:NTFS下所有文件默认情况下对所有人(EveryOne)为完全控制权限,这使黑客有可能使用一般用户身份对文件做增加、删除、执行等操作.
注意某些ASP编辑器会自动备份asp文件,会被下载的漏洞
在有些编辑asp程序的工具,当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个..bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个 bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp的源程序就会给下载


在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、javascript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。
说明:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏; 如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。


防止ACCESS mdb 数据库有可能被下载的漏洞
在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据
库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。
解决方法:
(1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 "非常规", 打个比方
: 比如有个数据库要保存的是有关书籍的信息, 可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如
d34ksfslf.mdb, 再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的
ACCESS数据库文件就难上加难了。
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再
在程序中这样写:
conn.open "shujiyuan"
(3)使用ACCESS来为数据库文件编码及加密。首先在选取 "工具->安全->加密/解密数据库,选取数据库(
如:employer.mdb),然后接确定,接着会出现 "数据库加密后另存为"的窗口,存为:employer1.mdb。 接着
employer.mdb就会被编码,然后存为employer1.mdb..
要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人
使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb, 在打开时,选择"独占"方式。然后
选取功能表的"工具->安全->设置数据库密码", 接着 输入密码即可。这样即使他人得到了employer1.mdb文件
,没有密码他是无法看到 employer1.mdb的。
23.SQL SERVER的安全

SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着
最有价值的信息,一旦数据被窃后果不堪设想。

及时更新补丁程序。
说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上
做测试,同时提前做好目标服务器的数据备份。

给SA一个复杂的口令。
说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据
库的工作由编程人员完成,而这部分人员往往只注重编写SQL 语句本身,对SQL SERVER数据库的管理不熟悉,
这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。

严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,可以通过给
用户以访问视图的权限,以及只具有执行存储过程的权限。
说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。

制订完整的数据库备份与恢复策略。
24. PCANYWHERE的安全:

目前,PCANYWHERE是最流行的基于NT与2000的远程控制工具,同样也需要注意安全问题。

建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用户名与口令,也不
要使用与NT集成的口令。同时在服务器端的设置时务必采用security options中的强加密方式,拒绝低加密水
平的连接,同时采用口令加密与传输过程中的用户名与口令加密,以防止被嗅探到,还要限制连接次数,另外
很重要的一点就是一定在protect item中设置高强度的口令,同时一定限制不能够让别人看到你的host端的任何设置,即便是要察看主机端的相关设置也必须要输入口令!
说明:PCANYWHERE 口令是远程控制的第一个关口,如果与NT的一样, 就失去了安全屏障。被攻破后就毫 无安全可言。
简单介绍如下。  
1、启用HTTP的持续作用  
启用HTTP的持续作用(Keep-Alive)时,IIS与浏览器的连线不会断线,可以改善执行效率,直到浏览器关闭时
连线才会断线。因为维持「Keep-Alive」状态时,於每次用户端请求时都不须重新建立一个新的连接,所以将
改善伺服器的效率。此功能为HTTP1.1预设的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持续作
用功能。
 
2、启用HTTP的持续作用可以改善15~20%的执行效率。  
如何启用HTTP的持续作用呢?步骤如下:在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [
内容] 之 [主目录] 页,勾选 [HTTP的持续作用] 选项。
 
3、不启用记录  
不启用记录可以改善5~8%的执行效率。如何设定不启用记录呢?步骤如下:  
在 [Internet服务管理员] 中,选取整个IIS电脑、或Web站台,於 [内容] 之 [主目录] 页,不勾选 [启用记
录] 选项。设定非独立的处理程序使用 [独立] 的处理程序会损失20%的执行效率,此处所谓 独立」系指将 [
主目录]、[虚拟目录] 页之应用程式保护选项设定为 [高(独立的)] 时。因此 [应用程式保护] 设定为 [低
(IIS处理程序)] 时执行效率较高如何设定非「独立」的处理程序呢?步骤如下: 在 [Internet服务管理员]
中,选取整个IIS电脑、Web站台、或应用程式的起始目录。於 [内容] 之 [主目录]、[虚拟目录] 页,设定应
用程式保护选项为 [低 (IIS处理程序)] 。  
4、调整快取(Cache)记忆体  
IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中;IIS 4.0则将静态的网页资料暂存於档案当中。调
整快取(Cache)记忆体的保存档案数量可以改善执行效率。ASP指令档案执行过後,会在暂存於快取(Cache)
记忆体中以提高执行效能。增加快取记忆体的保存档案数量,可提高Active Server Pages之效能。可以设定所
有在整个IIS电脑、「独立」Web站台、或「独立」应用程式上执行之应用程式的快取记忆体档案数量。如何设
定快取(Cache)功能呢?步骤如下:在 [Internet服务管理员] 中选取整个IIS电脑、「独立」Web站台、或「
独立」应用程式的起始目录。於 [内容] 之 [主目录]、[虚拟目录] 页,按下 [设定] 按钮时,即可由 [处理
程序选项] 页设定[指令档快取记忆体] 。如何设定快取(Cache)记忆体档案数量呢?步骤如下:在[Internet
服务管理员] 中,选取整个IIS电脑、或Web站台的起始目录。於 [内容] 之[伺服器扩充程式] 页,按下 [设定
] 按钮。即可设定快取(Cache)记忆体档案数量。
5、勿使用CGI程式  
使用CGI程式时,因为处理程序(Process)须不断地产生与摧毁,造成执行效率不佳。一般而言,执行效率比
较如下: 静态网页(Static):100 ISAPI:50 ASP:10 CGI:1  换句话说,ASP比CGI可能快10倍,因此勿
使用CGI程式可以改善IIS的执行效率。以弹性(Flexibility)而言:ASP > CGI > ISAPI > 静态网页(Static
)。以安全(Security)而言:ASP(独立) = ISAPI(独立)= CGI > ASP(非独立) = ISAPI(非独立)=
静态网页(Static)
6、增加IIS 5.0电脑CPU数量  
根据微软的测试报告,增加IIS 4.0电脑CPU数量,执行效率并不会改善多少;但是增加IIS 5.0电脑CPU数量,
执行效率会几乎成正比地提供,换句话说,两颗CPU的IIS5.0电脑执行效率几乎是一颗CPU电脑的两倍,四颗CPU
的IIS 5.0电脑执行效率几乎是一颗CPU电脑的四倍IIS 5.0将静态的网页资料暂存於快取(Cache)记忆体当中
;IIS 4.0 则将静态的网页资料暂存於档案当中。调整快取(Cache)记忆体的保存档案数量可以改善执行效率
。  
7、启用ASP侦错功能  
勿启用ASP侦错功能可以改善执行效率。如何勿启用ASP侦错功能呢?步骤如下:於[Internet服务管理员] 中,
选取Web站台、或应用程式的起始目录,按右键选择[内容],按 [主目录]、[虚拟目录] 或 [目录] 页,按下 [
设定] 按钮,选择 [应用程式侦错] 页,不勾选 [启用ASP伺服器端指令侦错]、[启用ASP用户端指令侦错] 选
项。
8、静态网页采用HTTP 压缩  
静态网页采用HTTP 压缩,大约可以减少20%的传输量。HTTP压缩功能启用或关闭,系针对整台IIS伺服器来设定
。用户端使用IE 5.0浏览器连线到已经启用HTTP压缩IIS5.0之Web伺服器,才有HTTP压缩功能。如何启用HTTP压
缩功能呢?步骤如下:若要启用HTTP 压缩功能,方法为在 [Internet服务管理员] 中,选取电脑之 [内容],
於 [主要内容] 之下选取 [WWW服务]。然後按一下 [编辑] 按钮,於 [服务] 页上,选取 [压缩静态档案] 可
以压缩静态档案,不选取 [压缩应用程式档案] 。  动态产生的内容档案(压缩应用程式档案)也可以压缩,
但是须耗费额外CPU处理时间,若%Processor Time已经百分之八十或更多时,建议不要压缩
以上是对采用IIS作为WEB服务器的一些安全相关的设置与其性能调整的参数设置,可以最大化的优化你的IIS
,不过个人认为如果不存在障碍,还是采用apache比较好一些,漏洞少,建议采用apache 1.3.24版本,
附:IIS安全工具及其使用说明
一、IIS Lock Tool,快速设置IIS安全属性
  IIS Lock Tool的推出,还要感谢红色代码,因为正是红色代码的大面积传播,致使微软设计发布这款帮助
管理员们设置IIS安全性的工具。
(一)、IIS Lock Tool具有以下功能和特点
  1、最基本功能,帮助管理员设置IIS安全性;
  2、此工具可以在IIS4和IIS5上使用;
  3、即使系统没有及时安装所有补丁,也能有效防止IIS4和IIS5的已知漏洞;
  4、帮助管理员去掉对本网站不必要的一些服务,使IIS在满足本网站需求的情况下运行最少的服务;
  5、具有两种使用模式:快捷模式和高级模式。快捷模式直接帮助管理员设置好IIS安全性,这种模式只适
合于只有HTML和HTM静态网页的网站使用,因为设置完成以后,ASP不能运行;高级模式允许管理员自己设置各
种属性,设置得当,对IIS系统任何功能均没有影响。
(二)、IIS Lock Tool的使用
  1、软件下载和安装
  IIS Lock Tool在微软网站下载,下载地址:
www.microsoft.com/Downloads/Release.asp?ReleaseID=32362
  安装很简单,需要注意的是,安装以后,程序不会在系统的【程序】菜单出现,也不会在【管理工具】出现,需要安装者在安装目录寻找运行该程序。
  
二、URLScan Tool――过滤非法URL访问
  仔细观察IIS的漏洞,我们几乎可以得出这样一个结论,所有利用这些漏洞实现对网站攻击的手段均是构造
特殊的URL来访问网站,一般有以下几种类型的URL可以利用漏洞:
  1、特别长的URL,比如红色代码攻击网站的URL就是这样:
GET/default.idaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u
9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u
00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a 200;
  2、特殊字符或者字符串的URL,比如在URL后面加::$DATA可以看到网页(ASP)源代码;
  3、URL中含有可执行文件名,最常见的就是有cmd.exe;
  既然这些攻击利用特殊的URL来实现,所以,微软提供了这款专门过滤非法URL的安全工具,可以达到御敌
于国门之外的效果,这款工具有以下特点和功能:
  1、基本功能:过滤非法URL请求;
  2、设定规则,辨别那些URL请求是合法的;这样,就可以针对本网站来制定专门的URL请求规则;同时,
当有新的漏洞出现时,可以更改这个规则,达到防御新漏洞的效果;
  3、程序提供一套URL请求规则,这个规则包含已经发现的漏洞利用特征,帮助管理员设置规则;
(一)、软件的下载与安装
  URLScan可以在微软的网站上下载,地址如下:
download.microsoft.com/download/iis50/Utility/1.0/NT45XP/EN-US/UrlScan.exe
  和一般软件一样安装,但是,此软件不能选择安装路径,安装完成以后,我们可以在
System32/InetSvr/URLScan目录下找到以下文件:
  urlscan.dll:动态连接库文件;
  urlscan.inf:安装信息文件;
  urlscan.txt:软件说明文件;
  urlscan.ini:软件配置文件,这个文件很只要,因为对URLScan的所有配置,均有这个文件来完成。
(二)、软件的配置
  软件的配置由urlscan.ini文件来完成,在配置此文件以前,我们需要了解一些基本知识。
 1、urlscan配置文件的构造形式
  urlscan配置文件必须遵从以下规则:
  (1)此文件名必须为urlscan.ini;
  (2)配置文件必须和urlscan.dll在同一目录;
  (3)配置文件必须是标准ini文件结构,也就是由节,串和值组成;
  (4)配置文件修改以后,必须重新启动IIS,使配置生效;
  (5)配置文件由以下各节组成:
  [Option]节,主要设置节;
  [AllowVerbs]节,配置认定为合法URL规则设定,此设定与Option节有关;
  [DenyVerbs]节,配置认定为非法URL规则设定,此设定与Option节有关;
  [DenyHeaders]节,配置认定为非法的header在设立设置;
  [AllowExtensions]节,配置认定为合法的文件扩展名在这里设置,此设定与Option节有关;
  [DenyExtensions]节,配置认定为非法的文件扩展名在这里设置,此设定与Option节有关;
  2、具体配置
  (1)Option节的配置,因为Option节的设置直接影响到以后的配置,因此,这一节的设置特别重要。此节
主要进行以下属性的设置:
  UseAllowVerbs:使用允许模式检查URL请求,如果设置为1,所有没有在[AllowVerbs]节设置的请求都被拒
绝;如果设置为0,所有没有在[DenyVerbs]设置的URL请求都认为合法;默认为1;
  UseAllowExtensions:使用允许模式检测文件扩展名;如果设置为 1,所有
三、总结
  以上两个工具功能强大,可以真正实现对IIS的保护。IIS Lock Tool简单,相对而言,只是被动的防卫;
UrlScan设置比较难,建议对IIS非常熟悉的管理员使用,只要设置得当,UrlScan的功能更加强大。在使用
UrlScan的时候,切记不要设置一次万事大吉,需要不停跟踪新出现的漏洞,随时修改URLScan的配置文件。 3。高级篇:NT/2000的高级安全设置
1.禁用空连接,禁止匿名获得用户名列表
Win2000的默认安装允许任何用户通过空用户得到系统所有账号/共享列表,这个本来是为了方便局域网用
户共享文件的,但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码。很多朋友都知道可以
通过更改注册表Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous = 1来禁止139空
连接,实际上win2000的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项
RestrictAnonymous(匿名连接的额外限制),这个选项有三个值: 0:None. Rely on default permissions
(无,取决于默认的权限 1 :Do not allow enumeration of SAM accounts and shares(不允许枚举SAM帐号
和共享) 2:No access without explicit anonymous permissions(没有显式匿名权限就不允许访问) 0这
个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置非常危险。 1这个值是只允许非NULL用户存取SAM账号信息和共享信息。 2这个值是在win2000中才支持的,需要注意的是,如果你一旦使用了这个值,你的共享估计就全部完蛋了,所以我推荐你还是设为1比较好。 好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了
2。禁止显示上次登陆的用户名
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionwinlogon项中的Don’t Display Last
User Name串数据改成1,这样系统不会自动显示上次的登录用户名。将服务器注册表HKEY_LOCAL_
MACHINESOFTWAREMicrosoft
WindowsNTCurrentVersionWinlogon项中的Don't Display Last User Name串数据修改为1,隐藏上次登陆控
制台的用户名。其实,在2000的本地安全策略中也存在该选项
Winnt4.0修改注册表:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionWinlogon 中增加
DontDisplayLastUserName,将其值设为1。 2.预防DoS:
在注册表HKLMSYSTEMCurrentControlSetServicesTcpipParameters中更改以下值可以帮助你防御一定强度
的DoS攻击 SynAttackProtect REG_DWORD 2
EnablePMTUDiscovery REG_DWORD 0 NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0 KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0 EnableICMPRedirects REG_DWORD 0
在Win2000中如何关闭ICMP(Ping)
  3.针对ICMP攻击
ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报文协议,这个协议主要
是用来进行错误信息和控制信息的传递,例如著名的Ping和Tracert工具都是利用ICMP协议中的ECHO request报
文进行的(请求报文ICMP ECHO类型8代码0,应答报文ICMP ECHOREPLY类型0代码0)。
  ICMP协议有一个特点---它是无连结的,也就是说只要发送端完成ICMP报文的封装并传递给路由器,这个报
文将会象邮包一样自己去寻找目的地址,这个特点使得ICMP协议非常灵活快捷,但是同时也带来一个致命的缺
陷---易伪造(邮包上的寄信人地址是可以随便写的),任何人都可以伪造一个ICMP报文并发送出去,伪造者可
以利用SOCK_RAW编程直接改写报文的ICMP首部和IP首部,这样的报文携带的源地址是伪造的,在目的端根本无
法追查,(攻击者不怕被抓那还不有恃无恐?)根据这个原理,外面出现了不少基于ICMP的攻击软件,有通过
网络架构缺陷制造ICMP风暴的,有使用非常大的报文堵塞网络的,有利用ICMP碎片攻击消耗服务器CPU的,甚至
如果将ICMP协议用来进行通讯,可以制作出不需要任何TCP/UDP端口的木马(参见揭开木马的神秘面纱三)
......既然ICMP协议这么危险,我们为什么不关掉它呢?
  我们都知道,Win2000在网络属性中自带了一个TCP/IP过滤器,我们来看看能不能通过这里关掉ICMP协议,
桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->高级->选项->TCP/IP过滤,这里有三个过
滤器,分别为:TCP端口、UDP端口和IP协议,我们先允许TCP/IP过滤,然后一个一个来配置,先是TCP端口,点
击"只允许",然后在下面加上你需要开的端口,一般来说WEB服务器只需要开80(www),FTP服务器需要开20(FTP
Data),21(FTP Control),邮件服务器可能需要打开25(SMTP),110(POP3),以此类推......接着是UDP,UDP协
议和ICMP协议一样是基于无连结的,一样容易伪造,所以如果不是必要(例如要从UDP提供DNS服务之类)应该
选择全部不允许,避免受到洪水(Flood
6.禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface
PerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
说明:“ICMP路由公告”功能可造成他人计算机的网络连接异常,数据被窃听,计算机被用于流量攻击等严重后果
.此问题曾导致校园网某些局域网大面积,长时间的网络异常.因此建议关闭响应ICMP路由通告报文.Win2000中默
认值为2,表示当DHCP发送路由器发现选项时启用
7.防止SYN洪水攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
SynAttackProtect REG_DWORD 0x2(默认值为0x0)
说明:SYN攻击保护包括减少SYN-ACK重新传输次数,以减少分配资源所保留的时
间.路由缓存项资源分配延迟,直到建立连接为止.如果synattackprotect=2,
则AFD的连接指示一直延迟到三路握手完成为止.注意,仅在TcpMaxHalfOpen和
TcpMaxHalfOpenRetried设置超出范围时,保护机制才会采取措施.
8.禁止C$、D$一类的缺省共享
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters
AutoShareServer、REG_DWORD、0x0
9.禁止ADMIN$缺省共享
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters
AutoShareWks、REG_DWORD、0x0
10.限制IPC$缺省共享
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa
restrictanonymous REG_DWORD 0x0 缺省
0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
11.不支持IGMP协议
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
IGMPLevel REG_DWORD 0x0(默认值为0x2)
说明:记得Win9x下有个bug,就是用可以用IGMP使别人蓝屏,修改注册表可以修正这个
bug.Win2000虽然没这个bug了,但IGMP并不是必要的,因此照样可以去掉.改成0后用
route print将看不到那个讨厌的224.0.0.0项了.
12.设置arp缓存老化时间设置
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices:TcpipParameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
说明:如果ArpCacheLife大于或等于ArpCacheMinReferencedLife,则引用或未引用的ARP缓存项在ArpCacheLife
秒后到期.如果ArpCacheLife小于阿ARPCacheMinReferencedLife,未引用项在ArpCacheLife秒后到期,而引用项
在ArpCacheMinReferencedLife秒后到期.每次将出站数据包发送到项的IP地址时,就会引用ARP缓存中的项。
13.禁止死网关监测技术
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices:TcpipParameters
EnableDeadGWDetect REG_DWORD 0x0(默认值为ox1)
说明:如果你设置了多个网关,那么你的机器在处理多个连接有困难时,就会自动改用备份网关.有时候这并不是
一项好主意,建议禁止死网关监测.
14.不支持路由功能
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices:TcpipParameters
IPEnableRouter REG_DWORD 0x0(默认值为0x0)
说明:把值设置为0x1可以使Win2000具备路由功能,由此带来不必要的问题.
15.做NAT时放大转换的对外端口最大值
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices:TcpipParameters
MaxUserPort REG_DWORD 5000-65534(十进制)(默认值0x1388--十进制为5000)
说明:当应用程序从系统请求可用的用户端口数时,该参数控制所使用的最大端口数.正常情况下,短期端口的分
配数量为1024-5000.将该参数设置到有效范围以外时,就会使用最接近的有效数值(5000或65534).使用NAT时建
议把值放大点.
16.修改MAC地址
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass
找到右窗口的说明为"网卡"的目录,
比如说是{4D36E972-E325-11CE-BFC1-08002BE10318}
展开之,在其下的0000,0001,0002...的分支中找到"DriverDesc"的键值为你网卡的说明,比如说"DriverDesc"的
值为"Intel(R) 82559 Fast Ethernet LAN on Motherboard"然后在右窗口新建一字符串值,名字为
"Networkaddress",内容为你想要的MAC值,比如说是"004040404040"然后重起计算机,ipconfig /all看看.
17. 系统默认banner的修改
IIS BANNER 的 DLL 文件放在C:WINNTSYSTEM32INETSRV 目录下面的,其中对应关系是:
WEB是:C:WINNTSYSTEM32INETSRVW3SVC.DLL
FTP是: C:WINNTSYSTEM32INETSRVFTPSVC2.DLL
SMTP是:C:WINNTSYSTEM32INETSRVSMTPSVC.DLL
注意:
在修改的时候请停止 IIS的服务,可以用 iisreset /stop 。
由于 2000系统后台的文件保护机制的作用,当系统一旦发现重要的 DLL文件被修改后就会尝试用
%SYSTEMROOT%system32dllcache 目录下的备份文件来进行恢复,所以在修改前我们还需要事先删除
%SYSTEMROOT%system32dllcache目录下的同名文件。