我在网上找到一点资料,可能对你有用,看一下.
=======
windows下权限设置详解
随着动网论坛的广泛应用和动网上传漏洞的被发现以及sql注入式攻击越来越多的被使用,webshell让防火墙形同虚设,一台即使打了所有微软补丁、只让80端口对外开放的web服务器也逃不过被黑的命运。难道我们真的无能为力了吗?其实,只要你弄明白了ntfs系统下的权限设置问题,我们可以对crackers们说:no!
要打造一台安全的web服务器,那么这台服务器就一定要使用ntfs和windows nt/2000/2003。众所周知,windows是一个支持多用户、多任务的操作系统,这是权限设置的基础,一切权限设置都是基于用户和进程而言的,不同的用户在访问这台计算机时,将会有不同的权限。dos是个单任务、单用户的操作系统。但是我们能说dos没有权限吗?不能!当我们打开一台装有dos操作系统的计算机的时候,我们就拥有了这个操作系统的管理员权限,而且,这个权限无处不在。所以,我们只能说dos不支持权限的设置,不能说它没有权限。随着人们安全意识的提高,权限设置随着ntfs的发布诞生了。
windows nt里,用户被分成许多组,组和组之间都有不同的权限,当然,一个组的用户和用户之间也可以有不同的权限。下面我们来谈谈nt中常见的用户组。
administrators,管理员组,默认情况下,administrators中的用户对计算机/域有不受限制的完全访问权。分配给该组的默认权限允许对整个系统进行完全控制。所以,只有受信任的人员才可成为该组的成员。
power users,高级用户组,power users 可以执行除了为 administrators 组保留的任务外的其他任何操作系统任务。分配给 power users 组的默认权限允许 power users 组的成员修改整个计算机的设置。但power users 不具有将自己添加到 administrators 组的权限。在权限设置中,这个组的权限是仅次于administrators的。
users:普通用户组,这个组的用户无法进行有意或无意的改动。因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序。users 组是最安全的组,因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料。users 组提供了一个最安全的程序运行环境。在经过 ntfs 格式化的卷上,默认安全设置旨在禁止该组的成员危及操作系统和已安装程序的完整性。用户不能修改系统注册表设置、操作系统文件或程序文件。users 可以关闭工作站,但不能关闭服务器。users 可以创建本地组,但只能修改自己创建的本地组。
guests:来宾组,按默认值,来宾跟普通users的成员有同等访问权,但来宾帐户的限制更多。
everyone:顾名思义,所有的用户,这个计算机上的所有用户都属于这个组。
其实还有一个组也很常见,它拥有和administrators一样、甚至比其还高的权限,但是这个组不允许任何用户的加入,在察看用户组的时候,它也不会被显示出来,它就是system组。系统和系统级的服务正常运行所需要的权限都是靠它赋予的。由于该组只有这一个用户system,也许把该组归为用户的行列更为贴切。
权限是有高低之分的,有高权限的用户可以对低权限的用户进行操作,但除了administrators之外,其他组的用户不能访问 ntfs 卷上的其他用户资料,除非他们获得了这些用户的授权。而低权限的用户无法对高权限的用户进行任何操作。
我们平常使用计算机的过程当中不会感觉到有权限在阻挠你去做某件事情,这是因为我们在使用计算机的时候都用的是administrators中的用户登陆的。这样有利也有弊,利当然是你能去做你想做的任何一件事情而不会遇到权限的限制。弊就是以 administrators 组成员的身份运行计算机将使系统容易受到特洛伊木马、病毒及其他安全风险的威胁。访问 internet 站点或打开电子邮件附件的简单行动都可能破坏系统。不熟悉的 internet 站点或电子邮件附件可能有特洛伊木马代码,这些代码可以下载到系统并被执行。如果以本地计算机的管理员身份登录,特洛伊木马可能使用管理访问权重新格式化您的硬盘,造成不可估量的损失,所以在没有必要的情况下,最好不用administrators中的用户登陆。administrators中有一个在系统安装时就创建的默认用户----administrator,administrator 帐户具有对服务器的完全控制权限,并可以根据需要向用户指派用户权利和访问控制权限。因此强烈建议将此帐户设置为使用强密码。永远也不可以从 administrators 组删除 administrator 帐户,但可以重命名或禁用该帐户。由于大家都知道“管理员”存在于许多版本的 windows 上,所以重命名或禁用此帐户将使恶意用户尝试并访问该帐户变得更为困难。对于一个好的服务器管理员来说,他们通常都会重命名或禁用此帐户。guests用户组下,也有一个默认用户----guest,但是在默认情况下,它是被禁用的。如果没有特别必要,无须启用此账户。我们可以通过“控制面板”--“管理工具”--“计算机管理”--“用户和用户组”来查看用户组及该组下的用户。
我们用鼠标右键单击一个ntfs卷或ntfs卷下的一个目录,选择“属性”--“安全”就可以对一个卷,或者一个卷下面的目录进行权限设置,此时我们会看到以下七种权限:完全控制、修改、读取和运行、列出文件夹目录、读取、写入、和特别的权限。“完全控制”就是对此卷或目录拥有不受限制的完全访问。地位就像administrators在所有组中的地位一样。选中了“完全控制”,下面的五项属性将被自动被选中。“修改”则像power users,选中了“修改”,下面的四项属性将被自动被选中。下面的任何一项没有被选中时,“修改”条件将不再成立。“读取和运行”就是允许读取和运行在这个卷或目录下的任何文件,“列出文件夹目录”和“读取”是“读取和运行”的必要条件。“列出文件夹目录”是指只能浏览该卷或目录下的子目录,不能读取,也不能运行。“读取”是能够读取该卷或目录下的数据。“写入”就是能往该卷或目录下写入数据。而“特别”则是对以上的六种权限进行了细分。读者可以自行对“特别”进行更深的研究,鄙人在此就不过多赘述了。
下面我们对一台刚刚安装好操作系统和服务软件的web服务器系统和其权限进行全面的刨析。服务器采用windows 2000 server版,安装好了sp4及各种补丁。web服务软件则是用了windows 2000自带的iis 5.0,删除了一切不必要的映射。整个硬盘分为四个ntfs卷,c盘为系统卷,只安装了系统和驱动程序;d盘为软件卷,该服务器上所有安装的软件都在d盘中;e盘是web程序卷,网站程序都在该卷下的www目录中;f盘是网站数据卷,网站系统调用的所有数据都存放在该卷的wwwdatabase目录下。这样的分类还算是比较符合一台安全服务器的标准了。希望各个新手管理员能合理给你的服务器数据进行分类,这样不光是查找起来方便,更重要的是这样大大的增强了服务器的安全性,因为我们可以根据需要给每个卷或者每个目录都设置不同的权限,一旦发生了网络安全事故,也可以把损失降到最低。当然,也可以把网站的数据分布在不同的服务器上,使之成为一个服务器群,每个服务器都拥有不同的用户名和密码并提供不同的服务,这样做的安全性更高。不过愿意这样做的人都有一个特点----有钱:)。好了,言归正传,该服务器的数据库为ms-sql,ms-sql的服务软件sql2000安装在d:\ms-sqlserver2k目录下,给sa账户设置好了足够强度的密码,安装好了sp3补丁。为了方便网页制作员对网页进行管理,该网站还开通了ftp服务,ftp服务软件使用的是serv-u 5.1.0.0,安装在d:\ftpservice\serv-u目录下。杀毒软件和防火墙用的分别是norton antivirus和blackice,路径分别为d:\nortonav和d:\firewall\blackice,病毒库已经升级到最新,防火墙规则库定义只有80端口和21端口对外开放。网站的内容是采用动网7.0的论坛,网站程序在e:\www\bbs下。细心的读者可能已经注意到了,安装这些服务软件的路径我都没有采用默认的路径或者是仅仅更改盘符的默认路径,这也是安全上的需要,因为一个黑客如果通过某些途径进入了你的服务器,但并没有获得管理员权限,他首先做的事情将是查看你开放了哪些服务以及安装了哪些软件,因为他需要通过这些来提升他的权限。一个难以猜解的路径加上好的权限设置将把他阻挡在外。相信经过这样配置的web服务器已经足够抵挡大部分学艺不精的黑客了。读者可能又会问了:“这根本没用到权限设置嘛!我把其他都安全工作都做好了,权限设置还有必要吗?”当然有!智者千虑还必有一失呢,就算你现在已经把系统安全做的完美无缺,你也要知道新的安全漏洞总是在被不断的发现。权限将是你的最后一道防线!那我们现在就来对这台没有经过任何权限设置,全部采用windows默认权限的服务器进行一次模拟攻击,看看其是否真的固若金汤。
假设服务器外网域名为[imga]
http://www.gdjyj.com.cn/jyjbbs/pic/url.gif[/imga]
http://www.webserver.com,用扫描软件对其进行扫描后发现开放www和ftp服务,并发现其服务软件使用的是iis 5.0和serv-u 5.1,用一些针对他们的溢出工具后发现无效,遂放弃直接远程溢出的想法。打开网站页面,发现使用的是动网的论坛系统,于是在其域名后面加个/upfile.asp,发现有文件上传漏洞,便抓包,把修改过的asp木马用nc提交,提示上传成功,成功得到webshell,打开刚刚上传的asp木马,发现有ms-sql、norton antivirus和blackice在运行,判断是防火墙上做了限制,把sql服务端口屏蔽了。通过asp木马查看到了norton antivirus和blackice的pid,又通过asp木马上传了一个能杀掉进程的文件,运行后杀掉了norton antivirus和blackice。再扫描,发现1433端口开放了,到此,便有很多种途径获得管理员权限了,可以查看网站目录下的conn.asp得到sql的用户名密码,再登陆进sql执行添加用户,提管理员权限。也可以抓serv-u下的servudaemon.ini修改后上传,得到系统管理员权限。还可以传本地溢出serv-u的工具直接添加用户到administrators等等。大家可以看到,一旦黑客找到了切入点,在没有权限限制的情况下,黑客将一帆风顺的取得管理员权限。
那我们现在就来看看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来解释执行的,所以它的执行并不需要运行的权限。
经过上面的讲解以后,你一定对权限有了一个初步了了解了吧?想更深入的了解权限,那么权限的一些特性你就不能不知道了,权限是具有继承性、累加性 、优先性、交叉性的。
继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的。这里还有一种情况要说明一下,在分区内复制目录或文件的时候,复制过去的目录和文件将拥有它现在所处位置的上一级目录权限设置。但在分区内移动目录或文件的时候,移动过去的目录和文件将拥有它原先的权限设置。
累加是说如一个组group1中有两个用户user1、user2,他们同时对某文件或目录的访问权限分别为“读取”和“写入”,那么组group1对该文件或目录的访问权限就为user1和user2的访问权限之和,实际上是取其最大的那个,即“读取”+“写入”=“写入”。 又如一个用户user1同属于组group1和group2,而group1对某一文件或目录的访问权限为“只读”型的,而group2对这一文件或文件夹的访问权限为“完全控制”型的,则用户user1对该文件或文件夹的访问权限为两个组权限累加所得,即:“只读”+“完全控制”=“完全控制”。
优先性,权限的这一特性又包含两种子特性,其一是文件的访问权限优先目录的权限,也就是说文件权限可以越过目录的权限,不顾上一级文件夹的设置。另一特性就是“拒绝”权限优先其它权限,也就是说“拒绝”权限可以越过其它所有其它权限,一旦选择了“拒绝”权限,则其它权限也就不能取任何作用,相当于没有设置。
交叉性是指当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限,且所设权限不一致时,它的取舍原则是取两个权限的交集,也即最严格、最小的那种权限。如目录a为用户user1设置的共享权限为“只读”,同时目录a为用户user1设置的访问权限为“完全控制”,那用户user1的最终访问权限为“只读”。
权限设置的问题我就说到这了,在最后我还想给各位读者提醒一下,权限的设置必须在ntfs分区中才能实现的,fat32是不支持权限设置的。同时还想给各位管理员们一些建议:
1.养成良好的习惯,给服务器硬盘分区的时候分类明确些,在不使用服务器的时候将服务器锁定,经常更新各种补丁和升级杀毒软件。
2.设置足够强度的密码,这是老生常谈了,但总有管理员设置弱密码甚至空密码。
3.尽量不要把各种软件安装在默认的路径下
4.在英文水平不是问题的情况下,尽量安装英文版操作系统。
5.切忌在服务器上乱装软件或不必要的服务。
6.牢记:没有永远安全的系统,经常更新你的知识。
一. 权限的由来
远方的某个山脚下,有一片被森林包围的草原,草原边上居住着一群以牧羊为生的牧民。草原边缘的森林里,生存着各种动物,包括野狼。
由于羊群是牧民们的主要生活来源,它们的价值便显得特别珍贵,为了防止羊的跑失和野兽的袭击,每户牧民都用栅栏把自己的羊群圈了起来,只留下一道小门,以便每天傍晚供羊群外出到一定范围的草原上活动,实现了一定规模的保护和管理效果。
最初,野狼只知道在森林里逮兔子等野生动物生存,没有发现远处草原边上的羊群,因此,在一段时间里实现了彼此和平相处,直到有一天,一只为了追逐兔子而凑巧跑到了森林边缘的狼,用它那灵敏的鼻子嗅到了远处那隐隐约约的烤羊肉香味。
当晚,突然出现的狼群袭击了草原上大部分牧民饲养的羊,它们完全无视牧民们修筑的仅仅能拦住羊群的矮小栅栏,轻轻一跃便突破了这道防线……虽然闻讯而来的牧民们合作击退了狼群,但是羊群已经遭到了一定的损失。
事后,牧民们明白了栅栏不是仅仅用来防止羊群逃脱的城墙,各户牧民都在忙着加高加固了栅栏……
如今使用Windows 2000/XP等操作系统的用户,或多或少都会听说过“权限”(Privilege)这个概念,但是真正理解它的家庭用户,也许并不会太多,那么,什么是“权限”呢?对于一般的用户而言,我们可以把它理解为系统对用户能够执行的功能操作所设立的额外限制,用于进一步约束计算机用户能操作的系统功能和内容访问范围,或者说,权限是指某个特定的用户具有特定的系统资源使用权力。
掌握了“Ring级别”概念的读者也许会问,在如今盛行的80386保护模式中,处理器不是已经为指令执行做了一个“运行级别”的限制了吗?而且我们也知道,面对用户操作的Ring 3级别相对于系统内核运行的Ring 0级别来说,能直接处理的事务已经被大幅度缩减了,为什么还要对运行在“权限少得可怜”的Ring 3层次上的操作系统人机交互界面上另外建立起一套用于进一步限制用户操作的“权限”概念呢?这是因为,前者针对的是机器能执行的指令代码权限,而后者要针对的对象,是坐在计算机面前的用户。
对计算机来说,系统执行的代码可能会对它造成危害,因此处理器产生了Ring的概念,把“裸露在外”的一部分用于人机交互的操作界面限制起来,避免它一时头脑发热发出有害指令;而对于操作界面部分而言,用户的每一步操作仍然有可能伤害到它自己和底层系统——尽管它自身已经被禁止执行许多有害代码,但是一些不能禁止的功能却依然在对这层安全体系作出威胁,例如格式化操作、删除修改文件等,这些操作在计算机看来,只是“不严重”的磁盘文件处理功能,然而它忽略了一点,操作系统自身就是驻留在磁盘介质上的文件!因此,为了保护自己,操作系统需要在Ring 3笼子限制的操作界面基础上,再产生一个专门用来限制用户的栅栏,这就是现在我们要讨论的权限,它是为限制用户而存在的,而且限制对每个用户并不是一样的,在这个思想的引导下,有些用户能操作的范围相对大些,有些只能操作属于自己的文件,有些甚至什么也不能做……
正因为如此,计算机用户才有了分类:管理员、普通用户、受限用户、来宾等……
还记得古老的Windows 9x和MS-DOS吗?它们仅仅拥有基本的Ring权限保护(实模式的DOS甚至连Ring分级都没有),在这个系统架构里,所有用户的权力都是一样的,任何人都是管理员,系统没有为环境安全提供一点保障——它连实际有用的登录界面都没有提供,仅仅有个随便按ESC都能正常进入系统并进行任何操作的“伪登录”限制而已。对这样的系统而言,不熟悉电脑的用户经常一不小心就把系统毁掉了,而且病毒木马自然也不会放过如此“松软”的一块蛋糕,在如今这个提倡信息安全的时代里,Windows 9x成了名副其实的鸡肋系统,最终淡出人们的视线,取而代之的是由Windows NT家族发展而来的Windows 2000和Windows XP,此外还有近年来致力向桌面用户发展的Linux系统等,它们才是能够满足这个安全危机时代里个人隐私和数据安全等要求的系统。
Win2000/XP系统是微软Windows NT技术的产物,是基于服务器安全环境思想来构建的纯32位系统。NT技术没有辜负微软的开发,它稳定,安全,提供了比较完善的多用户环境,最重要的是,它实现了系统权限的指派,从而杜绝了由Win9x时代带来的不安全操作习惯可能引发的大部分严重后果。
二. 权限的指派
1.普通权限
虽然Win2000/XP等系统提供了“权限”的功能,但是这样就又带来一个新问题:权限如何分配才是合理的?如果所有人拥有的权限都一样,那么就等于所有人都没有权限的限制,那和使用Win9x有什么区别?幸好,系统默认就为我们设置好了“权限组”(Group),只需把用户加进相应的组即可拥有由这个组赋予的操作权限,这种做法就称为权限的指派。
默认情况下,系统为用户分了6个组,并给每个组赋予不同的操作权限,依次为:管理员组(Administrators)、高权限用户组(Power Users)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制组(Replicator)、来宾用户组(Guests),其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。
系统默认的分组是依照一定的管理凭据指派权限的,而不是胡乱产生,管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。
这是系统给各个组指派的权限说明,细心的用户也许会发现,为什么里面描述的“不能处理其他用户的文件”这一条规则并不成立呢,我可以访问所有文件啊,只是不能对系统设置作出修改而已,难道是权限设定自身存在问题?实际上,NT技术的一部分功能必须依赖于特有的“NTFS”(NT文件系统)分区才能实现,文件操作的权限指派就是最敏感的一部分,而大部分家庭用户的分区为FAT32格式,它并不支持NT技术的安全功能,因此在这样的文件系统分区上,连来宾用户都能随意浏览修改系统管理员建立的文件(限制写入操作的共享访问除外),但这并不代表系统权限不起作用,我们只要把分区改为NTFS即可。
2.特殊权限
除了上面提到的6个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是:SYSTEM(系统)、Everyone(所有人)、CREATOR OWNER(创建者)等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。(图.特殊权限成员)
前面我提到管理员分组的权限时并没有用“全部”来形容,秘密就在此,不要相信系统描述的“有不受限制的完全访问权”,它不会傻到把自己完全交给人类,管理员分组同样受到一定的限制,只是没那么明显罢了,真正拥有“完全访问权”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。
“所有人”权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予“Everyone”权限的文件,包括来宾组成员。
被标记为“创建者”权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。
但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。
无论是普通权限还是特殊权限,它们都可以“叠加”使用,“叠加”就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组,那么现在这个账户便同时拥有两个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。
3.NTFS与权限
在前面我提到了NTFS文件系统,自己安装过Win2000/XP的用户应该会注意到安装过程中出现的“转换分区格式为NTFS”的选择,那么什么是NTFS?
NTFS是一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,只有使用NT技术的系统对它直接提供支持,也就是说,如果系统崩溃了,用户将无法使用外面流行的普通光盘启动工具修复系统,因此,是使用传统的FAT32还是NTFS,一直是个倍受争议的话题,但如果用户要使用完全的系统权限功能,或者要安装作为服务器使用,建议最好还是使用NTFS分区格式。
与FAT32分区相比,NTFS分区多了一个“安全”特性,在里面,用户可以进一步设置相关的文件访问权限,而且前面提到的相关用户组指派的文件权限也只有在NTFS格式分区上才能体现出来。例如,来宾组的用户再也不能随便访问到NTFS格式分区的任意一个文件了,这样可以减少系统遭受一般由网站服务器带来的入侵损失,因为IIS账户对系统的访问权限仅仅是来宾级别而已,如果入侵者不能提升权限,那么他这次的入侵可以算是白忙了。
使用NTFS分区的时候,用户才会察觉到系统给管理员组用户设定的限制:一些文件即使是管理员也无法访问,因为它是SYSTEM成员建立的,并且设定了权限。