一、NTFS权限的简单介绍
1.NTFS介绍
我为什么会把NTFS作为第一部分讲解是有原因的,主要是因为Windows的文件或者目录权限都是利用NTFS的功能来实现访问规则等。
首先我们来简单介绍一下NTFS, NTFS (New Technology File System)是 Windows NT 操作环境和 Windows NT 高级服务器网络操作系统环境的文件系统。NTFS 的目标是提供:可靠性,通过可恢复能力(事件跟踪)和热定位的容错特征实现;增加功能性的一个平台;对 POSIX 需求的支持;消除 FAT 和 HPFS 文件系统中的限制。
NTFS 提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性。NTFS 支持大硬盘和在多个硬盘上存储文件(称为跨越分区)。例如,一个大公司的数据库可能大得必须跨越不同的硬盘。NTFS 提供内置安全性特征,它控制文件的隶属关系和访问。从 DOS 或其他操作系统上不能直接访问 NTFS 分区上的文件。如果要在DOS下读写NTFS分区文件的话可以借助第三方软件;现如今,Linux 系统上已可以使用 NTFS-3G 进行对 NTFS 分区的完美读写,不必担心数据丢失。这是Windows NT 安全性系统的一部分,但是,只有在使用 NTFS 时才是这样。
2.使用Convert转换Fat32分区为NTFS分区
如果您的服务器是使用的FAT32的话,那我强烈建议你修改成NTFS的。如果您把系统安装在了C盘并且是FAT32的话,那么默认这台服务器上所有的用户都具有修改权限,说白了也就是说任何人都能把你C盘重要的文件删除或者修改。这样的情况大家当然是不希望看到了。所以我们这里需要把fat32修改成NTFS的磁盘格式。
我们这里使用的命令是convert如图1。这里是它的基本语法,很好理解。我们这里把C盘的Fat32分区修改成NTFS。如图2这里输入Y就开始自动转换了。
图1 使用convert 转换磁盘分区
这里提示一下,windows 2003开始安装的时候最好用NTFS快速格式化,不要使用FAT32。避免麻烦。
图2 使用convert命令将Fat32分区转换成NTFS格式
二、NTFS详解之磁盘配额
1.NTFS磁盘配额介绍
首先我们看一下NTFS比Fat32多的功能,如图3和4。我们可以看到明显的区别,NTFS添加了非常多的功能。主要功能有安全,磁盘配额等。这里我们重点讲解的是安全和磁盘配额。
图3 NTFS分区磁盘功能
图4 FAT32分区磁盘功能
我们还是先简单介绍一下磁盘配额,我们把安全最为重点放到后面再谈。先来了解一下磁盘配额的基本含义, 想象一下,如果任何人都可以随意占用服务器的硬盘空间,您的服务器硬盘能支撑多久?所以,限制和管理用户使用的硬盘空间是非常重要的,无论是文件服务、FTP服务还是E-mail服务,都要求对用户使用的磁盘容量进行有限地控制,以避免对资源的滥用。Windows 2003中的磁盘配额(Disk Quotas)能够简单高效地实现这个功能,相比其他配额软件它具有“原装”的优势。所谓磁盘配额就是管理员可以对本域中的每个用户所能使用的磁盘空间进行配额限制,即每个用户只能使用最大配额范围内的磁盘空间。磁盘配额监视个人用户卷的使用情况,因此,每个用户对磁盘空间的利用都不会影响同一卷上其他用户的磁盘配额。
#p#副标题#e#2.启用磁盘配额
默认情况下磁盘配额是关闭的,我们需要对磁盘配额开启和相关的配置。如图5所示。我们来简单介绍一下我们一般选将磁盘空间限制为您自己希望提供给普通客户或者是网站的大小,例如你想提供100M的空间,但是你又允许他超过20M的空间。这里你就可以设置成如图5这样的情况。警告等级其实就是你网站的容量如果超过了100M的话,你最大可以达到的最大数为120M。下面的2个选项就比较简单了,主要是日志记录功能了,如果您的网站是虚拟机的话这个功能比较有用。
图5 启用磁盘配额管理
3.使用磁盘配额阻止黑客入侵
下面我讲一个重点的而且非常实用的方法来阻止黑客把木马程序或者后门程序传到服务器上。当然这个是有前提的,如果您公司的网站是企业网站,也就是说更新不频繁的情况下,可以使用这个绝对好的方法来阻止黑客上传文件等。
首先大家回头看图5中的划红线的部分“拒绝将磁盘空间给超过配额限制的用户”这个选项,同时把将磁盘空间限制为1kb,同时设置将警告空间限制为1kb,然后把最下面的用户超出配额限制时记录事件和用户超过警告时记录事件这两个选项。 这样如果系统中有其他用户超出了分区的警告等级和配额限制,系统将把这些事件自动记录到系统日志当中,非常有利于管理员对系统分区空间的监控。
如图6,图7所示,我们可以看到没有启用限额的和启用磁盘配额以后的区别,启用磁盘配额以后我们的硬盘这时用户已经无法向这个分区中写入大于配额的文件。并且这个配置对于系统中所有的用户生效,包括Administrators组中的用户。
图6 未启用磁盘配额
图7 启用磁盘配额管理
如图8我们可以看到administrator也不能写入文件了。我们不是启动日志记录功能了嘛?我们这里来看看一下警告,我们右键单击我的电脑,从弹出的对话框中选择管理,然后依次展开“系统工具” -> “事件查看器” -> “系统”,查看日志记录如图9所示。
图8 管理员也无法复制文件
图9 使用事件管理器查看事件
技巧:
(1)当然这里也有个小技巧,我们知道启动IIS需要的帐号是IUSR_计算机名,如果我们建立网站的话对应的访问者应该也是这个帐号,所以这里我们可以设置成IUSR_计算机名这个用户不能写入文件,但是其他用户能够写入文件。
(2)这里的技巧是,我们开启ftp服务,然后给ftp一个普通的帐号和密码,然后我们把web服务器的对应的目录的读写权限给这个普通用户,然后我们利用磁盘配额的功能让这个用户可以写入。这样就达到了一个非常高的安全性了。怎么做呢,跟我来其实很简单,如图10我们选择配额项,再配额项中我们选择配额 -> 新建配额项然后弹出用户选择窗口,我们选择我们的ftp用户ftpuser然后把磁盘空间限制设置成100MB,如图11所示。然后同理选择IUSR_计算机这个帐号,把磁盘限额的空间设置成1kb。到这里,我们一个非常变态的设置就算基本上完成了。我们再来说一下这样做的目的,我们利用IIS提供的WEB服务器的启动权限是IUSR_计算机这个用户,也就是普通用户访问的话就是利用这个帐号来访问的。同时我们不希望访问用户利用黑客手段对我的服务器进行文件的上传等操作,这个时候我就利用磁盘配额的功能,添加了一个ftpuser的帐号,这个帐号对web目录可以利用ftp的软件来进行自己服务器的维护工作。这样就达到了非常高的安全标准。
图10配置磁盘配额给Ftp用户
图11 为ftpuser设置访问磁盘空间大小
三、NTFS详解之windows权限
1.NTFS访问规则控制
NTFS的另外一个非常重要的功能是对磁盘或者文件和文件夹的访问规则控制,也即windows的权限。Windows的权限大体上可以分为完全控制,修改,读取和运行,列出文件夹目录,读取,写入,特别的权限。同时权限又有4个特性,继承性、累加性、优先性、交叉性。我们首先来了解一下基本的概念,然后下面我们就开始配置Windows的变态权限配置了。
2.NTFS的七种中权限
(1)完全控制权限
“完全控制”就是对目录拥有不受限制的完全访问。地位就像Administrators在所有组中的地位一样。选中了“完全控制”,下面的五项属性将被自动被选中。
(2)修改权限
“修改“则像Power users,选中了“修改”,下面的四项属性将被自动被选中。下面的任何一项没有被选中时,“修改”条件将不再成立。
(3)读取和运行权限
“读取和运行”就是允许读取和运行在目录下的任何文件,“列出文件夹目录”和“读取”是“读取和运行”的必要条件。
(4)列出文件夹目录权限
“列出文件夹目录”是指只能浏览该卷或目录下的子目录,不能读取,也不能运行。
#p#副标题#e#(5)读取权限
“读取”是能够读取该卷或目录下的数据。
(6)写入权限
“写入”就是能往该卷或目录下写入数据。
(7)特别的权限
“特别的权限“则是对以上的六种权限进行了细分。
3.NTFS的特性
(1)权限具有继承性
权限的继承性就是下级文件夹的权限设置在未重设之前是继承其上一级文件的权限设置的,更明确地说就是如果一个用户对某一文件夹具有“读取”的权限,那这个用户对这个文件夹的下级文件夹同样具有“读取”的权限,除非打断这种继承关系,重新设置。但要注意的是这仅是对静态的文件权限来讲,对于文件或文件夹的移动或复制,其权限的继承性依照如下原则进行。
① 在同一NTFS分区间复制或移动
在同一NTFS分区间复制到不同文件夹时,它的访问权限是和原文件或文件夹的访问权限不一样。但在同一NTFS分区间移动一个文件或文件夹其访问权限保持不变,继承原先未移动前的访问的权限。
② 在不同NTFS分区间复制或移动
在不同NTFS分区间复制文件或文件夹访问权限会随之改变,复制的文件不是继承原权限,而是继承目标(新)文件夹的访问权限。同样如果是在不同NTFS分区间移动文件或文件夹则访问权限随着移动而改变,也继承移动后所在文件夹的权限。
③ 从NTFS分区复制或移动到FAT格式分区
因为FAT格式的文件或文件夹根本没有权限设置项,所以原来文件或文件夹也就不再有访问权限配置了。
(2)权限具有累加性
NTFS文件或文件夹的权限的累加性具体表现在以下几个方面。
① 工作组权限由组中各用户权限累加决定
如一个组Group1中有两个用户User1、User2,他们同时对某文件或文件夹的访问权限分别为“只读”型的和“写入”型的,那么组Group1对该文件或文件夹的访问权限就为User1和User2的访问权限之和,实际上是取其最大的那个,即“只读”+“写入”=“写入”。
② 用户权限由所属组权限的累加决定
如一个用户User1同属于组Group1和Group2,而Group1对某一文件或文件夹的访问权限为“只读”型的,而Group2对这一文件或文件夹的访问权限为“完全控制”型的,则用户User1对该文件或文件夹的访问权限为两个组权限累加所得,即“只读”+“完全控制”=“完全控制”。
(3)权限的优先性
权限的这一特性又包含两种子特性,其一是文件的访问权限优先文件夹的权限,也就是说文件权限可以越过文件夹的权限,不顾上一级文件夹的设置。另一特性就是“拒绝”权限优先其他权限,也就是说“拒绝”权限可以越过所有其他权限,一旦选择了“拒绝”权限,则其他权限也就不能起任何作用,相当于没有设置,下面就具体讲一下这两种子特性。
① 文件权限优先文件夹权限
如果一用户USER1对文件夹Folder A的访问权限为只读类型的,在这个文件夹下面有一个File1文件,可以对这个文件File1设置权限为“完全控制”型,而不顾它的上一级文件Folder A的权限设置情况。
② “拒绝”权限优先其他权限
如果一个用户User1同属于组Group1和组Group2,其中组Group1对一个文件File1(或文件夹)的访问权限为“完全控制”,而用户Group2对这个文件File1的访问权限设置为“拒绝访问”,根据这个特性User1对文件File1的访问权限为“拒绝访问”类型,而不管工作组Group1对这个文件设置什么权限。
(4)访问权限和共享权限的交叉性
当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限,且所设权限不一致时,它的取舍原则是取两个权限的交集,也即最严格、最小的那种权限。如文件夹Folder A为用户User1设置的共享权限为“只读”,同时文件夹Folder A为用户User1设置的访问权限为“完全控制”,那么用户User1的最终访问权限为“只读”。当然这个文件夹只能是在NTFS文件格式的分区中,如是FAT格式的分区中也就不存在“访问权限”了,因为FAT文件格式的文件夹没有本地访问权限的设置。(以上内容参考http://book.51cto.com/art/200709/56993.htm)了解了上面的这些基础以后我们就可以进行下面的配置了。
#p#副标题#e#四、变态windows权限配置
1.常见提权方法
如果想把Windows权限配置的变态,主要是必须了解现在常见的提权方法,网上有很多提权方法和视频,我们这里就不多说了。
2.设置用户的磁盘权限
介绍具体的权限前我们看一下普通的磁盘的权限,如图12所示。这里包括了Everyone和Users账户,他们的权限是可以查看目录的内容,这里必须禁止,因为我们的系统盘的内容不希望被其他的人看到,这里我们把Everyone和Users用户删掉我们只留下Administrator和SYSTEM。同理我们把D,E,F盘都设置成这样的权限。注意,这里我的服务器只有4个磁盘所以设置成了4个,如果你的磁盘有多个的话一定要把所有的磁盘都设置成跟C盘一样的权限。这里重点提示,除了web目录有些目录设置成可写以外,其他地方绝对不允许有可写目录的出现,当然这里有个例外就是c:windowstemp目录,因为很多程序需要把文件上传到这里,不过没关系,我会讲解如何详细配置c:windowstemp的。
图 12 普通磁盘用户的权限
3. 设置“c: Documents and Settings”的权限
然后我们设置“c: Documents and Settings”的权限,我们同样只保留administrator和SYSTEM权限,这里注意,虽然我们设置了“Documents and Settings”目录的权限,但是对于目录下的文件权限我们可以看到还是具有自己的权限,如图13所示,所以这里我们还需要继续修改。在Documents and Settings下面的Administrator我们可以看到默认权限只有administrator,administrators和SYSTEM,所以这里不需要修改了。
图13 设置“c: Documents and Settings”的权限
我们继续看All Users目录,如图13所示,默认权限不小,我们还是只保留Administrator和SYSTEM。了解了上面的步骤以后我们依次对All Users下面的所有目录(注意这里是所有目录)都只保留Administrator和system权限。
4.设置“c:program and files”目录权限
同理c:program and files也只保留administrator和system权限。但是我们必须把common这个目录设置成如图14所示的权限。
图14 设置“c:program and files”目录权限
5.设置inetsrv目录权限
这里有个重点,如果服务器安装了IIS的话,会在c:windowssystem32目录下创建一个inetsrv的目录,这里有个文件夹叫ASP Compiled Templates如图15所示,我们可以看到IIS的启动用户IUSR_计算机名的用户的权限具有完全控制权限,因为这个目录很少有人注意,所以一直成为提权的杀手锏。我们必须要把这个目录的IUSR_计算机名这个用户删掉。
图15 删除IIS_WPG完全控制权限
6.设置“c:windowstemp目录”权限
下面也是比较重要的c:windowstemp目录的设置了,其实这个目录的设置需要考虑的因素非常多,例如第一点许多应用程序把上传的临时目录设置成这里,所以这个目录必须有可写权限,但是如果设置成可写的话,黑客能够再这里上传cmd.exe等程序来进行提权。第二点,有一些服务器的虚拟管理软件例如hzhost默认把session写入到这里,这样就造成了安全隐患,因为session中可能包括虚拟机的用户和密码,所以读权限也有谨慎的设置。第三这里也是系统的临时文件夹,很多程序的运行依赖这里。
所以权衡上面的利弊,我们需要根据具体的情况具体配置了,我们这里配置的原则是企业或者个人服务器,没有安装hzhost等软件的情况。我们设置成如图16这样的权限,我们把所有用户删除保留Administrator和system然后我们添加Everyone修改,读取及运行,列出文件目录,读取,写入权限。
图16设置“c:windowstemp目录”权限
到这里,我们就算完成了NTFS的基本配置了,这样设置的安全性会大大的提高。我们第三部分会介绍web目录权限配置和php的安全配置。我们下一讲再见。谢谢大家,更多内容可以到antian365.com论坛查看。