01
2010
10

Windows2003安全WEB服务器设置(转载)

Windows2003操作系统自推出以后,以强大的服务器功能及简单易学的操作,在web、ftp等服务器架设方面赢得了很多人的支持。 现在一般的学校都建立有自己的站点,本文就我自己对学校web服务器的维护经验,就Win2003+IIS6+access数据库安全设置方面说说自己的认识,希望能抛砖引玉,共同进步。 一、基本的服务器安全设置 1、安装补丁 这一点的重要性我想不用我再说明了,有人认为自己的服务器不对公网发布,就内部使用,打不打补丁都无所谓,其实不然,要知道服务器是连接在网络上的,你不惹别人,别人惹你啊,第一时间安装补丁,可以有效的防止恶意、无意的攻击,特别是对一些溢出攻击,及时安装系统补丁可以说是唯一的避免方法。 好了,安装好操作系统之后,配置好网络后,2003安装上SP2,然后点击开始→Windows Update,安装所有的关键更新。(最好安装已经集成大部分系统补丁的版本,可以大大减少上网更新补丁的时间。) 2、安装杀毒软件 虽然杀毒软件有时候不能解决问题,但是杀毒软件可以避免了很多问题。别人就算攻破了你的服务器,上传了木马,杀毒软件的实时文件监控可以在第一时间将其杀掉。服务器上我一直在用瑞星,有人用其它的,这个无所谓,但一定要有一个。 不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀的,另外针对操作系统的溢出攻击,攻破系统后肯定会先把你的杀毒软件kill掉。 二、禁用不常用端口、开启windows自带防火墙、删除默认共享、关闭不用的服务 1、关掉不用的端口可以大大加强系统安全性,我的做法是web就开80口,ftp就开21口,其它的全关了,这儿可以用tcp/ip筛选也可以使用windows自带的防火墙,随便。(如右图)这儿相关的设置都比较简单,就不再多说了。 2、删除系统默认共享,实际上禁掉系统的135、139端口,这个也就无所谓了,实在想删除的话可以关闭IPC$和默认共享依赖的服务:server服务,到“控制面板”里的“管理工具”内,找到“服务”在到“server服务”(右击)进入“属性”,点击“常规”,在“启动类型”这一项中选择“已禁用”,这样就关闭了IPC$的默认共享。但是这就会产生一定的负面效应,一旦你关闭了了IPC$的默认共享,很多的server服务你就不能利用,同时也可能会发生你不能访问局域网内的其他电脑,请慎用!! 3、关闭系统中不用的服务,win2003系统默认开了不少没什么用的服务,给系统安全性带来一定的隐患,例如print、telnet等等,都可以关掉,这个在网上可以找到很多教程,这儿就不再多说了。 4、IIS设置 IIS (Internet信息服务器管理器) 在"主目录"选项设置以下: 读 允许 写 不允许 脚本资源访问 不允许 目录浏览 建议关闭 记录访问 建议关闭 索引资源 建议关闭 执行权限 推荐选择 “纯脚本” 5、审核策略设置 启动组策略管理器(gpedit.msc),在【计算机配置→windows设置→安全设置→本地策略→安全选项】中找到以下: 网络访问:可匿名访问的共享; 网络访问:可匿名访问的命名管道; 网络访问:可远程访问的注册表路径; 网络访问:可远程访问的注册表路径和子路径; 将以上四项全部删除 网络访问:不允许 SAM 账户的匿名枚举 网络访问:不允许 SAM 账户和共享的匿名枚举 网络访问:不允许存储网络身份验证的凭据或 .NET Passports 网络访问:限制匿名访问命名管道和共享 将以上四项通通设为“已启用” 至此,基本的服务器安全设置可以完成了,就静态站点而言,服务器的安全是很强的了,但现在基本上绝大多数站点都是采用的动态站点,如动网、动易等等,asp的应用很多,涉及到很多服务器组件(如fso、ADODB.Stream等等)的使用,单单的以上设置就显得不够了,举个例子来说,现在的黑客攻击基本上针对操作系统的很少,都是针对服务器上的动态站点来进行入侵的,站点的权限如果设置不当的话,会很容易的被人入侵站点从而拿到服务器的高级权限,服务器上的多个站点如果有一个存在漏洞的话,会影响到其它所有的站点甚至整个服务器,下面就站点的权限设置再详细说明一下。 二、站点权限设置 个人感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。 1、权限设置的原理 WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。 NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。 IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户”),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户”所具有的权限。 2、权限设置的思路 要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。 在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。 设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。 这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。 3、我的设置方法 我是先创建一个用户组,为每个站点创建一个用户,将这些用户都建在这个組里,然后设置这个组在各个分区没有权限或者完全拒绝,然后再设置各个IIS用户在各在的站点文件夹里的权限。这样就能保证以该用户访问站点的时候就只能在该站点下进行所有的操作。 这个过程其实是很简单的,只要搞清楚原理及思路。 三、改名或卸载不安全组件 服务器上的组件是把双面刃,它在为我们带来方便的同时也带来了不安全的因素。服务器组件可以对服务器的功能进行扩展,例如最最常见的FSO(Scripting.FileSystemObject )组件,它能够允许匿名访问用户对服务器进行文件的读写操作,这是论坛、动态网页的基础,但同时也使一些恶意行为有了可乘之机。 1、其实,只要做好了上面的站点权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。 最危险的组件是WSH(即Windows Scripting Host)和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。 2、谨慎决定是否卸载一个组件 组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。 3、卸载最不安全的组件 最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,(一、三两行为停用,二、四两行为删除) regsvr32/u C:\ WINDOWS \System32\wshom.ocx del C:\ WINDOWS \System32\wshom.ocx regsvr32/u C:\ WINDOWS \system32\shell32.dll del C:\ WINDOWS \system32\shell32.dll 然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现在探针中这三个都提示“×安全”了。 4、改名不安全组件 对某些不得不用,而又经常被恶意利用的组件可以采用改名的方法来解决,这样黑客探测的时候按默认名称是找不到该组件的,而服务器本身可以正常使用该组件,前提是别人不知道你改后的组件名。以下参照网上教程结合自己实际来说明一下。需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。 打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。 比如我们想做这样的更改13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001,Shell.application 改名为 Shell.application_hong那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。 下面是我修改后的代码(两个文件我合到一起了): Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}] @="Shell Automation Service" [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]@="C:\\WINDOWS\\system32\\shell32.dll" "ThreadingModel"="Apartment" [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID] @="Shell.Application_hong" [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}" [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]@="1.1" [HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]@="Shell.Application_hong" [HKEY_CLASSES_ROOT\Shell.Application_hong]@="Shell Automation Service" [HKEY_CLASSES_ROOT\Shell.Application_hong\CLSID]@="{13709620-C279-11CE-A49E-444553540001}" [HKEY_CLASSES_ROOT\Shell.Application_hong\CurVer]@="Shell.Application_hong" 把上面的内容保存为一个.reg文件运行一下,重启服务器后就可以完成Shell.application组件的重命名了,在探针中看来会显示Shell.application组件没有安装。 四、利用ASP漏洞攻击的常见方法及防范 一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。 如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。 作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。 以上就是我对win2003服务器上利用IIS搭建web服务的一些经验心得,在此写出,希望能对大家有所帮助。
推荐给朋友:
? 上一篇下一篇 ?

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。