原文作者:darnis
在Windows平台上如果你使用的是类NT系统,比如Windows NT/2000/XP/2003……,你可以把你的磁盘分区的格式设置为NTFS,从而得到NTFS的安全属性。为什么我们有必要使用NTFS?怎么使用NTFS?这是本文要回答的问题。
FAT、FAT32文件系统是DOS、Window95/98/ME的产物,FAT是一种兼容性(这点也是因为其出现得很早)很强的文件系统,包括Linux等其它OS都支持FAT,如果你经常有需要在不同操作系统之间进行数据交换的必要,估计你也不是本文阅读的对象(因为你知道的比我更多了,呵)。
我们都知道目前病毒、木马、流氓软件之类的东东是让人深恶痛绝,作为FAT文件系统,你只有依赖于防毒、防木马等专用工具来抵御侵扰,因为我看到很多同事,在2000/XP/2003上也同样在系统内安装一大堆杀毒、杀木马之类的软件,我对此不持反对意见,因为在没有熟悉NTFS的安全属性之前,这些工具是必须的(因为现在办公环境没有INTERNET基本是不可能的)。我始终深信这一点:一个好的NTFS安全属性配置,应该可以让你不用安装任何的防杀毒或者查杀木马的软件。虽然我目前还必须安装杀毒软件。
使用杀毒软件的用户都知道,这是要牺牲计算机性能来换得的安全性,而且通常国内好些杀毒软件会令你的操作系统变得奇慢无比,这是最让我无法忍受的一点(因为我穷,用的PC性能都不是当前最好的,要被这些辅助性工具瓜分PC性能实在觉得很不划算)。
使用NTFS做安全属性配置,能够实现病毒的抵御,使系统处在病毒无法感染的环境下,同时由于NTFS是类NT系统与生俱来的,只是我们会不会使用的问题。当然,已经被感染的情况下,NTFS是不能帮你杀毒的,它只能抵御感染,NTFS不是杀毒工具,它只是一种具有安全属性的文件系统格式而已。
下面来说说,如何在类NT系统中获得NTFS分区。通常情况下,我们在安装Window时,它会提醒你,安装系统的盘是按什么格式(FAT32还是NTFS)进行格式化,如果你在安装的时候已经选择了NTFS,那么恭喜你,你已经跨入了安全防御的第一步。如果你没有选择成NTFS,或者需要把其它分区变成NTFS,不用担心,系统为你准备了工具convert命令,你可以在Windows已经运行的情况下,点击“开始”?“运行”(快捷键 win+R)输入 cmd,回车之后我们来到命令行窗口,这时我们可以输入类似下面的命令:
Convert c: /FS:NTFS
如果你的C盘是系统盘,或者你要转换为NTFS的盘正在被使用(盘上有文件被打开),系统会提示你下次启动时,它会自动执行转换工作,如果你要转换的分区(分区在Bill的系统上就叫X盘啦)没有任何的使用,转换工作可以立即执行,这是无损的,不用担心数据会丢失。如果你用PQMagic进行分区格式转换,你自己要注意备份数据啊。还有建议你不要把NTFS反转成FAT,因为我被害过啊,转换不成,文件全搞丢了,是用的PQMagic,估计是当时功能有限,convert命令好像是不支持反转成FAT的,反正你可以试试,用软件就是这点好,可以多动手测试,不怕浪费只要你有时间,我老本行搞机械就不行啦,设计一个东西不行的话,那就是资金浪费啦,呵,题外话。
得到了NTFS的盘,我们就可以通过右健点击该盘上任意文件、文件夹甚至盘符你在属性对话框中你可以看到“安全”属性页(什么你没有看到安全页,那你肯定XP及以上系统而且使用了简单共享,请在资源管理器“工具”?“文件夹选项”中“查看”页把“使用简单共享”这项的选择去掉就OK,还没有?那你是不是用了XP HOME版了啊?唉那我记得好像XP HOME对这一功能支持有限,用PRO吧!),会有类似于如下的画面:
图 安全属性页
看到了吧,名称列表框列出了所有当前对象的可访问对象(用户)列表,如果不在列表框的有可能不能访问该对象(如果没有添加Everyone);下面的权限内容也是我们研究的对象。在做进一步的设置之前我们先来说说NTFS的一些使用原则(纯属个人使用经验,不对的请使用指正)。
原则一,NTFS安全属性的拒绝权限优先于允许权限。也就是说,你同一个用户你在不同的两个组中,一个组你设置的允许删除,而另一个组你又设置拒绝删除,那么它的综合权限是拒绝删除。这一点你在设置拒绝的时候,往往系统会善意地提醒你,你需要知道这意味什么,因为如果你不小心为系统盘设置了everyone完全拒绝,那意味着什么呢?我没有做过测试,估计是系统没搞了,不过你级段够高的话,估计还是可以有办法来修正。我的经验告诉我,everyone不要做拒绝设置,除非你明白这是在干什么。
原则二,不要随意用管理员的身份登录使用系统。这里说的管理员并不是单纯地说是Administrator这个用户,而是在你的安全属性表中你给予了最大权限的用户。那……我岂不是很不自由?为了性能,而且你真正需要做系统维护(安装、卸载……)时间应该是很少的,建议你多用 run as。
我们在实际进行安全属性设置和使用系统时都应该牢记以上两点,安全意识你自己必须永不懈怠。要知道安全始于防范,再安全的系统,如果连维护使用者都不注意安全的话,根本不存在安全的系统,毕竟计算机不是人啊,她工作需要你为她指定路线。
说了这么半天,NTFS怎么防毒啊?别急下面的内容我就一步一步教你怎么把系统做到防毒、防木马、防……,防不了利用OS BUG的入侵(所以Bill才需要不断改进,不断地发补丁)。
通常情况下,我们最需要防的是系统盘的Winnt(2000)/Windows(XP/2003)和Program Files这两个文件夹,因为我们平常的活动基本集中在这两个文件夹中,虽然你感觉不到。一般病毒感染,也都往你Winnt和Winnt\System32下面作怪,要么生成文件,要么修改你的系统文件,在我遇到过的情况中,木马基本100%都往winnt及winnt\System32下面植入它的程序,病毒就比较泛滥,只要是EXE不管哪儿都有可能被感染,甚至不是EXE也一样感染。我们就以Winnt目录为例,其它就雷同了。
这里先作一些约定,系统盘是C:盘。先增加用户组 Public,BHS(你中意的名称啊)。再增加一个使用系统的用户darnis(你中意的名称呵,这是我的En. Name),他归属于 Power Users、BHS用户组,以后你就用 darnis这个用户登录系统了啊。进行权限设置时应确保你登录的用户具备设置该对象权限的权限,有点绕,反正你要有权限设置才能进行下面的工作。
通常情况下,如果是2000我们由FAT转成NTFS时,系统盘通常是everyone 完全控制,这意味着跟FAT差不多,还没有进行任何的安全限制。我们利用安全属性的继承性,先为整个系统盘定义一些共用的安全属性,通常我会把C盘上权限进行限制,然后在需要开放权限的文件或者文件夹上开放权限给特定的用户,这叫宁可错杀一千也不可放过一个,有点黑,?。这安全属性要是可以导出来就好了,就是我还没有发现怎么导出来,我下面还是一个一个地贴一下安全属性,以便于你看清楚,怎么实施。
我们先把Administrators、System、Public、Power Users、BHS、Guests添加到用户列表中,看起来像下图所示。
图 C盘安全属性
这个对话框拉不长,名称列表里面还有Public和System以及Power Users。在这一页上我们可以预先进行一些权限设置,以方便我们细调。选中 Administrators 在权限中选中完全控制的允许项,System一样也是允许完全控制,把Guests和Public用户组的完全控制的拒绝项选中,这就意味着归属于Guests和Public用户组的用户不能访问C盘。下面为BHS用户组指定初步的权限把写入的拒绝项选中,选中读取及运行和列出文件夹目录、读取这三项的允许选中看起来就像下图。
图 BHS用户组的安全属性
这里everyone我们需要减少它的权限选项如下图所示。
图 everyone安全属性
再来设置Power Users的权限,如下图。
图 Power Users组权限
这样初步的安全设置就可以了。哈,可以防毒了!…… 别急,还要继续这只是初步的。我们继续点击“高级…”按钮,进入安全属性的细部调整。
点击高级之后看起来就像下图。
图 安全属性高级对话框
这样子看起来是不是更人性化一些呢(呵,有锁标呢),这里面我们主要设置“权限”页的内容。需要做细调的在首先是BHS的拒绝属性。选中拒绝类型的BHS(就是前面有锁的那个BHS行啦),再点“查看/编辑”,这时看起来就像下图一样。
图 BHS用户组的权限详细情况
核对一下你的BHS拒绝权限是不是跟我这边一致,当然你也可以不一致?,这里把创建文件/写入数据以及相关写入、删除等操作全部拒绝就是要防止当前使用系统的用户操作不会有意或者无意地破坏系统文件(因为你的登录用户归属于这个组)。
在BHS组的拒绝调整完成后,我们再来调整Power Users组的权限。调整后的Power Users组的权限看起来如下图所示。
图 Power Users组权限详细情况
Power Users组我们只设定允许权限,没有拒绝。
确认所有设置之后我们可以做一些简单的测试,看我们的权限设置是否成功。首先换登录用户为darnis,然后在C盘上新建一个目录,会得到如下图的提示。
图 新建目录测试结果
再来尝试删除一下文件,会得到如下图所示的提示。
图 删除文件测试结果
这样我们的目的结果达到,保护了C盘根目录的安全。这样就行了啊?这么简单?回答是别急,你再验证一下容易被病毒和木马感染的 Winnt和System32这两个目录。结果一样,恭喜你中奖了,实际上也许会不一样,跟没有设置安全属性一样,可以新建目录,可以删除文件。晕了,那是怎么回事?其实是这样,Bill出于系统管理的需要,通常会自己设定Winnt和Program Files以及 Documents and Settings的相关属性,以方便不同用户使用时的管理。我估计他是考虑到不同用户安装应用程序时会往Winnt及Program Files文件夹中拷贝或者更新文件,但是这是有安全隐患的,特别是现在的流氓软件根本你还不知道在安装它,结果就安装上了,汗死了,而且无法卸载。这里只需要做一些简单的设置你就可以把Bill为你“人性化”考虑的设置给同化掉。
右击Winnt目录,安全属性对话框跟C盘的看起来应该差不多,注意安全页的最下方多了一项选项“允许将来自父系的可继承权限传播给该对象”,同样的选项在高级框中也出现了。我们这一步在高级对话框中进行设置。这时我们把“允许将来自父系的可继承权限传播给该对象”勾选住,然后在权限项目列表中删除不必要的安全选项,实际上按拒绝优先的原则,我们可以不用管了,因为BHS的拒绝已经被从C盘的权限从“传播”到了C:\Winnt。在高级设置框中“允许将来自父系的可继承权限传播给该对象”的下面是“重置所有子对象的权限并允许传播可继承权限”把这个选项勾选住后,按“应用”,这时会出现下图所示的设置进程指示图。
图 重置所有子对象的权限进程指示
如果在应用过程中出现提示你可以按你实际情况进行回答,一般情况下为了保证安全被应用,都选择“继续”。
这样Winnt及子目录的所有权限都设置好了,再来做测试,你就会发现跟在C盘根目录下一样,都拒绝操作了。呵,至此,算是大功告成。其它需要增加安全性的地方,你再根据你自己的需要来增加安全设置,操作过程可以按上述的过程。
实际上,上述的操作都是为了规避恶意的代码在系统盘上留下作恶工具,也就起到了阻止病毒和木马入侵的作用。当然,黑客的攻击,也许这是不起作用的,因为他们利用了你操作系统的BUG,它可能取得系统的管理员权限,这时他是可以作任何事情的,所以你需要及时地打安全补丁,以避免遭受黑客的攻击。
防范是做好了,但是问题也来了。
1.我如何安装应用程序啊?
简单的答复是使用管理员登录进行安装,后再换回到普通用户进行使用。如果有些应用程序它有临时文件需要放到安装目录下,而安装目录又位于安全管制范围,那么你可以为它开放权限,简单的做法是从安全列表中删除 BHS 的安全控制(操作上应用先把“允许将来自父系的可继承权限传播给该对象”项取消选择,询问的时候选择“复制”,这样这后才可以删除)。这样这个用户又是从属于Power Users的,那么没有被拒绝(BHS没了),而允许又被开放(Power Users允许了),综合权限就是允许做相应的操作,如果你担心病毒侵扰,你可以再把执行文件单独设置拒绝权限,以达到不可侵扰的目的。
另外一些小的应用程序安装如果你嫌烦的话,你可以按住Shift键再右击安装程序的执行文件,你选择“运行方式……”,这时会弹出登录为对话框,这里你输入管理员帐号,这个安装过程就可以按管理员身份进行安装了。这种方式要有有效,需要系统服务中Run as 服务要在启动状态才行,通常情况下,也是启动的。
2.如果我重装了系统,以前我其它盘也设置了安全权限,这时以前的用户组全变成一串字符(SID)了,而且糟糕的是我只给他开放了权限,其它任何用户都不可访问,这该怎么办啊?数据很重要的!
关于这个问题你也不用担心。Bill为你考虑了很多,就是重新安装过的话,你可以使用管理员身份把这个文件或者文件夹先把所有权获取,再进行安全属性设置就可以了。当然如果你加了密,那……我没有那样做过,帮不了你,一般我也不会对一些文件进行加密,如果你的文件确实很机密,估计你会有其它的解决之道。
如何取得所有权?这也是通过安全属性页的高级对话框里面进行操作的。
图 安全属性之所有者
你选中Administrators再把下面“替换子容器及对象的所有者”选中,估计选中在应用的时候会有很多提示,如果最终执行不下去,你就可以一级一级(目录)地来,先把当前目录的所有者取到再确定之后,再来设置权限,设置的时候都把子容器选中,不行再重复,当然重复是指到下一级目录进行(别笨笨地只在当前目录做啊,根据提示来)。
如果已经是目录的所有者,那么你就可以重新设置它的权限。当然子目录有可能还不行,就按上面说的再递归操作吧,估计可以编个程序来做,不过我对WIN32API不熟,做不了呵。
3.如果中了毒,怎么也清不了病毒,连杀毒软件也清不了该怎么办啊?
针对这一点我有另一篇说明,请参考
http://blog.csdn.net/darnis/archive/2006/10/23/1346509.aspx
还有什么其它问题我们一起研究。呵,
Email: darnis@21cn.com
MSN: darnis@21cn.com
QQ: 44738541