我们平常使用计算机的过程当中不会感觉到有权限在阻挠你去做某件事情,这是因为我们在使用计算机的时候都用的是Administrators中的用户登陆的。这样有利也有弊,利当然是你能去做你想做的任何一件事情而不会遇到权限的限制。弊就是以 Administrators 组成员的身份运行计算机将使系统容易受到特洛伊木马、病毒及其他安全风险的威胁。访问 Internet 站点或打开电子邮件附件的简单行动都可能破坏系统。不熟悉的 Internet 站点或电子邮件附件可能有特洛伊木马代码,这些代码可以下载到系统并被执行。如果以本地计算机的管理员身份登录,特洛伊木马可能使用管理访问权重新格式化您的硬盘,造成不可估量的损失,所以在没有必要的情况下,最好不用Administrators中的用户登陆。Administrators中有一个在系统安装时就创建的默认用户----Administrator,Administrator 帐户具有对服务器的完全控制权限,并可以根据需要向用户指派用户权利和访问控制权限。因此强烈建议将此帐户设置为使用强密码。永远也不可以从 Administrators 组删除 Administrator 帐户,但可以重命名或禁用该帐户。由于大家都知道“管理员”存在于许多版本的 Windows 上,所以重命名或禁用此帐户将使恶意用户尝试并访问该帐户变得更为困难。对于一个好的服务器管理员来说,他们通常都会重命名或禁用此帐户。Guests用户组下,也有一个默认用户----Guest,但是在默认情况下,它是被禁用的。如果没有特别必要,无须启用此账户。我们可以通过“控制面板”--“管理工具”--“计算机管理”--“用户和用户组”来查看用户组及该组下的用户。
那我们现在就来看看Windows 2000的默认权限设置到底是怎样的。对于各个卷的根目录,默认给了Everyone组完全控制权。这意味着任何进入电脑的用户将不受限制的在这些根目录中为所欲为。系统卷下有三个目录比较特殊,系统默认给了他们有限制的权限,这三个目录是Documents and settings、Program files和Winnt。对于Documents and settings,默认的权限是这样分配的:Administrators拥有完全控制权;Everyone拥有读运,列和读权限;Power users拥有读运,列和读权限;SYSTEM同Administrators;Users拥有读运,列和读权限。对于Program files,Administrators拥有完全控制权;Creator owner拥有特殊权限;Power users有完全控制权;SYSTEM同Administrators;Terminal server users拥有完全控制权,Users有读运,列和读权限。对于Winnt,Administrators拥有完全控制权;Creator owner拥有特殊权限;Power users有完全控制权;SYSTEM同Administrators;Users有读运,列和读权限。而非系统卷下的所有目录都将继承其父目录的权限,也就是Everyone组完全控制权!
现在大家知道为什么我们刚刚在测试的时候能一帆风顺的取得管理员权限了吧?权限设置的太低了!一个人在访问网站的时候,将被自动赋予IUSR用户,它是隶属于Guest组的。本来权限不高,但是系统默认给的Everyone组完全控制权却让它“身价倍增”,到最后能得到Administrators了。那么,怎样设置权限给这台WEB服务器才算是安全的呢?大家要牢记一句话:“最少的服务+最小的权限=最大的安全”对于服务,不必要的话一定不要装,要知道服务的运行是SYSTEM级的哦,对于权限,本着够用就好的原则分配就是了。对于WEB服务器,就拿刚刚那台服务器来说,我是这样设置权限的,大家可以参考一下:各个卷的根目录、Documents and settings以及Program files,只给Administrator完全控制权,或者干脆直接把Program files给删除掉;给系统卷的根目录多加一个Everyone的读、写权;给e:\www目录,也就是网站目录读、写权。最后,还要把cmd.exe这个文件给挖出来,只给Administrator完全控制权。经过这样的设置后,再想通过我刚刚的方法入侵这台服务器就是不可能完成的任务了。可能这时候又有读者会问:“为什么要给系统卷的根目录一个Everyone的读、写权?网站中的ASP文件运行不需要运行权限吗?”问的好,有深度。是这样的,系统卷如果不给Everyone的读、写权的话,启动计算机的时候,计算机会报错,而且会提示虚拟内存不足。当然这也有个前提----虚拟内存是分配在系统盘的,如果把虚拟内存分配在其他卷上,那你就要给那个卷Everyone的读、写权。ASP文件的运行方式是在服务器上执行,只把执行的结果传回最终用户的浏览器,这没错,但ASP文件不是系统意义上的可执行文件,它是由WEB服务的提供者----IIS来解释执行的,所以它的执行并不需要运行的权限。