提高网站IIS的安全性 作者:计算防毒知识

 

 
    没有任何系统是100%安全的,系统漏洞会不断地发现,这是因为黑客和系统管理员一样也在整天看着新闻组,收集着
这方面的信息。黑与反黑之间的战斗会永远进行下去。
    如果你采用IIS的缺省设置,那你在这场较量中就已经处于下风。Windows NT缺省下被安装为一个开放的服务器, 即
使是菜鸟hacker也能得手。但只要你做下面几个简单步骤,情况就会有很大改善。虽不敢说攻无不克,至少可以保护你的
数据不象小克的拉链门一样世人皆知。
    一个安全的系统要有多层保护。一般的计算机系统有三层保护,物理层,网络层,文件系统。物理层就是保护好计算
机硬件本身,硬盘,软盘不被偷走,这就不用我多说了。
    网络层是要保护与Internet和本地 LAN 的网络连接,主要是靠防火墙和端口的存取权限设置。最里面的是文件系统,
这也是大多数攻击的目标。下面我们主要也就讲这方面。
 
缺省设置的问题
 
    NT缺省设置成一个开放系统,文件系统是几乎完全没有安全设置的,网络上的任何用户都可以读写删除其中的文件。
这主要原因是NT中大量使用了 Everyone 组(更可怕是缺省给 full权限),理论上,地球上任何用户都属于everyone组。
相比之下,NetWare就设置为一个封闭的系统,安全性就好很多。为什么Microsoft要做这种蠢事?原因可能是给最大权限
可以减少许多因为权限问题带来的技术支持电话吧。(是这样吗?)IIS同样也有很多问题。安装IIS时,系统建立一个前
缀是IWAM_(早期版本是IUSR_)的帐户,该帐户属于Guest组,能够存取Guest组和 Everyone组权限下的所有文件。在缺省
安装下,90%的系统文件可以被该用户访问。
    看来解决方法就是删除所有的everyone组权限了,但实际上这样做行不通。因为IIS不仅要存取HTML文件, 还会调用
Script和ActiveX控件,还涉及到DLL的执行,全部取消Everyone组权限会使系统出现这样那样的问题。所以要使用一些系
统安全工具来一步步做。
 
系统安全工具
 
熟悉以下NT系统自带的安全工具是很重要的:
  User Manager(usrmgr.exe)
  IIS 4.0: Microsoft management console (MMC.EXE)
  IIS 3.0: Internet service manager (INETMGR.EXE)
  Registry editor (REGEDT32.EXE)
(介绍省略,不相信你没用过)
 
Command line ACL editor (CACLS.EXE)
    这个工具可能知道的人不多,也是NT自带,用于管理access control list(ACL)。
 
Control panel, system applet
    该工具用于管理系统环境变量。
 
步骤一:使用专用的Web组
    1 用user manager建立一个名为WWW的本地组
    2 将IWAM_账号从Guests组中删除,加入WWW组
    3 赋予WWW组“access this computer from the network”权限,让IIS能执行一个本地登录操作
    4 重起WWW服务
    5 在Web根目录下执行命令行操作:
    CACLS <DIR>*.* /T /E /C /G WWW:R
    参数 Meaning
    <DIR>*.* Web根目录。在 With IIS 4.0 中通常是 C:\Inetpub\WWWRoot.
    /T 作用于所有的目录和子目录
    /E 编辑ACL,不是替换
    /C 有错误停止执行.
    /G WWW:R 赋予WWW组Read权限
    这样Web目录下的所有文件都承认 WWW组的读权限了。别忘了在其他包含Web内容的目录下执行这个命令(主要是虚拟
目录)
 
步骤二:删除Everyone组
    完成以上操作后,Internet用户只能看所允许的文件了。但这还不够,因为everyone组还存在,现在需要将everyone
组从计算机中的所有文件中清除出去。但清除everyone组不象想象的那么简单。缺省下,许多Microsoft DLL文件在ACL中
之只列了everyone组。如果一杆子打到底,这些DLL文件就无人可以访问了。因为一删除everyone组,ACL就空了,空的AC
L意味着任何访问者都没有权限。执行以下命令:
    CACLS C:*.* /T /E /C /G Users:F /R Everyone
    参数 Meaning
    /G Users:F 赋予Users组所有权限
    /R Everyone 取消Everyone组所有权限
    这样可以保证ACL中不为空。然而这样做带来两个问题:本机完全开放给本地网络;变动太多的系统文件权限。 最好
的方法其实是找出那些文件只有everyone组权限,不幸地是Windows NT没有提供该功能,但有一些第三方工具能做到这个
功能。(原文中没有提到到底是哪些工具)如果有这些工具的话,该命令改为:
    CACLS C:*.* /T /E /C /R Everyone
 
步骤三:处理数据库
    如果你的系统包括数据库或ActiveX,例如搜索引擎,guest book什么的,那还需要执行步骤三。对于guest book,执
行:
    CACLS /T /E /C /G WWW:C
    参数 Meaning
    /G WWW:C 赋予 WWW 组change权限.
    这时,你可能会发现从Web上还是无法更新guest book,甚至连数据库读操作都无法执行。如果出现这种情况, 你一
定是使用了ODBC连接数据库。问题就出在ODBC的临时文件。当ODBC建立时,系统会建立一个临时文件记录锁定信息等。缺
省情况下,这些文件是存放在system下面。
2016-10-02 23:39
来源:www.antivirus-china.org.cn
3
热门推荐 更多
热点新闻 更多