我们今天继续来详细讨论Windows安全和php+iis+mysql的整体安全。我们学习本文的目的是达到万网、新网等专业级个人或者是企业服务器级别安全,这里面有非常非常多的小技巧,希望大家能够吸收。环境的搭建请参考本文的第一部分。废话不多话,开始进入我们今天让***见了都头疼的windows变态安全配置。 一、NTFS权限的简单介绍
+ v& M$ J: r1 t9 g! ]" H1.NTFS介绍
; \! K2 |" P5 S7 n, Y我为什么会把NTFS作为第一部分讲解是有原因的,主要是因为Windows的文件或者目录权限都是利用NTFS的功能来实现访问规则等。
1 f! G, }$ X# w首先我们来简单介绍一下NTFS, NTFS (New Technology File System)是 Windows NT 操作环境和 Windows NT 高级服务器网络操作系统环境的文件系统。NTFS 的目标是提供:可靠性,通过可恢复能力(事件跟踪)和热定位的容错特征实现;增加功能性的一个平台;对 POSIX 需求的支持;消除 FAT 和 HPFS 文件系统中的限制。
- E- _2 U1 Y. k% E+ eNTFS 提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性。NTFS 支持大硬盘和在多个硬盘上存储文件(称为跨越分区)。例如,一个大公司的数据库可能大得必须跨越不同的硬盘。NTFS 提供内置安全性特征,它控制文件的隶属关系和访问。从 DOS 或其他操作系统上不能直接访问 NTFS 分区上的文件。如果要在DOS下读写NTFS分区文件的话可以借助第三方软件;现如今,Linux 系统上已可以使用 NTFS-3G 进行对 NTFS 分区的完美读写,不必担心数据丢失。这是Windows NT 安全性系统的一部分,但是,只有在使用 NTFS 时才是这样。0 F. Y: D# ?8 r9 S8 E) h5 V) F5 Z
2.使用Convert转换Fat32分区为NTFS分区7 _( T" \, ?8 k0 F9 A
如果您的服务器是使用的FAT32的话,那我强烈建议你修改成NTFS的。如果您把系统安装在了C盘并且是FAT32的话,那么默认这台服务器上所有的用户都具有修改权限,说白了也就是说任何人都能把你C盘重要的文件删除或者修改。这样的情况大家当然是不希望看到了。所以我们这里需要把fat32修改成NTFS的磁盘格式。6 M5 W" x/ ^7 }  b8 X
我们这里使用的命令是convert如图1。这里是它的基本语法,很好理解。我们这里把C盘的Fat32分区修改成NTFS。如图2这里输入Y就开始自动转换了。
3 E7 E& w7 V4 k1 d) U7 o. Q, u4 V1 u

图1 使用convert 转换磁盘分区
6 _+ O5 m& s% F2 A2 F' I* k
这里提示一下,windows 2003开始安装的时候最好用NTFS快速格式化,不要使用FAT32。避免麻烦。 # ~- E* [+ J+ d7 Y# Z

. |( [' z. q0 L" X* ^) g' j
图2 使用convert命令将Fat32分区转换成NTFS格式

二、NTFS详解之磁盘配额
) q8 F9 f1 a, }6 g1 W1.NTFS磁盘配额介绍+ }& C) ]; ]9 ?6 z: ^/ d$ K5 x. }
首先我们看一下NTFS比Fat32多的功能,如图3和4。我们可以看到明显的区别,NTFS添加了非常多的功能。主要功能有安全,磁盘配额等。这里我们重点讲解的是安全和磁盘配额。
: X2 ~- L0 ]' M  Z% B5 U) Z' W& a, c; E" B5 @
 

图3 NTFS分区磁盘功能


/ R$ e& S8 e; h1 h9 V

图4 FAT32分区磁盘功能


# H1 m) _4 z4 e9 j6 o我们还是先简单介绍一下磁盘配额,我们把安全最为重点放到后面再谈。先来了解一下磁盘配额的基本含义, 想象一下,如果任何人都可以随意占用服务器的硬盘空间,您的服务器硬盘能支撑多久?所以,限制和管理用户使用的硬盘空间是非常重要的,无论是文件服务、FTP服务还是E-mail服务,都要求对用户使用的磁盘容量进行有限地控制,以避免对资源的滥用。Windows 2003中的磁盘配额(Disk Quotas)能够简单高效地实现这个功能,相比其他配额软件它具有“原装”的优势。所谓磁盘配额就是管理员可以对本域中的每个用户所能使用的磁盘空间进行配额限制,即每个用户只能使用最大配额范围内的磁盘空间。磁盘配额监视个人用户卷的使用情况,因此,每个用户对磁盘空间的利用都不会影响同一卷上其他用户的磁盘配额。
* b& @3 s1 c$ _. o9 N% \2.启用磁盘配额
& y' f! c8 Z+ Y8 P0 ^默认情况下磁盘配额是关闭的,我们需要对磁盘配额开启和相关的配置。如图5所示。我们来简单介绍一下我们一般选将磁盘空间限制为您自己希望提供给普通客户或者是网站的大小,例如你想提供100M的空间,但是你又允许他超过20M的空间。这里你就可以设置成如图5这样的情况。警告等级其实就是你网站的容量如果超过了100M的话,你最大可以达到的最大数为120M。下面的2个选项就比较简单了,主要是日志记录功能了,如果您的网站是虚拟机的话这个功能比较有用。3

3.使用磁盘配额阻止******
; W, t5 _8 @5 i7 q) N5 r* [* Q下面我讲一个重点的而且非常实用的方法来阻止***把***程序或者后门程序传到服务器上。当然这个是有前提的,如果您公司的网站是企业网站,也就是说更新不频繁的情况下,可以使用这个绝对好的方法来阻止***上传文件等。
5 f6 U  g3 r1 e$ y首先大家回头看图5中的划红线的部分“拒绝将磁盘空间给超过配额限制的用户”这个选项,同时把将磁盘空间限制为1kb,同时设置将警告空间限制为1kb,然后把最下面的用户超出配额限制时记录事件和用户超过警告时记录事件这两个选项。 这样如果系统中有其他用户超出了分区的警告等级和配额限制,系统将把这些事件自动记录到系统日志当中,非常有利于管理员对系统分区空间的监控。( ?& \6 X8 w* o% {. t
如图6,图7所示,我们可以看到没有启用限额的和启用磁盘配额以后的区别,启用磁盘配额以后我们的硬盘这时用户已经无法向这个分区中写入大于配额的文件。并且这个配置对于系统中所有的用户生效,包括Administrators组中的用户。% _6 A3 b0 z$ i" ~

图6 未启用磁盘配额
4 y# b  x* ]. w+ s6 z2 K7 n7 P! I
图7 启用磁盘配额管理
3 w- }4 |8 ^, b4 z# O; Y
如图8我们可以看到administrator也不能写入文件了。我们不是启动日志记录功能了嘛?我们这里来看看一下警告,我们右键单击我的电脑,从弹出的对话框中选择管理,然后依次展开“系统工具” -> “事件查看器” -> “系统”,查看日志记录如图9所示。
" u. b/ C6 l" u" K2 L& i; Z) s. W( e0 b8 @" W' I+ `% l
图8 管理员也无法复制文件
4 q" J3 w- X- G0 N& ~9 ?; \  o1 ]
图9 使用事件管理器查看事件
技巧: . q' Q2 P6 F- b* p: N) j* I2 C6 X
(1)当然这里也有个小技巧,我们知道启动IIS需要的帐号是IUSR_计算机名,如果我们建立网站的话对应的访问者应该也是这个帐号,所以这里我们可以设置成IUSR_计算机名这个用户不能写入文件,但是其他用户能够写入文件。
3 u6 s# M$ x) |$ T(2)这里的技巧是,我们开启ftp服务,然后给ftp一个普通的帐号和密码,然后我们把web服务器的对应的目录的读写权限给这个普通用户,然后我们利用磁盘配额的功能让这个用户可以写入。这样就达到了一个非常高的安全性了。怎么做呢,跟我来其实很简单,如图10我们选择配额项,再配额项中我们选择配额 -> 新建配额项然后弹出用户选择窗口,我们选择我们的ftp用户ftpuser然后把磁盘空间限制设置成100MB,如图11所示。然后同理选择IUSR_计算机这个帐号,把磁盘限额的空间设置成1kb。到这里,我们一个非常变态的设置就算基本上完成了。我们再来说一下这样做的目的,我们利用IIS提供的WEB服务器的启动权限是IUSR_计算机这个用户,也就是普通用户访问的话就是利用这个帐号来访问的。同时我们不希望访问用户利用***手段对我的服务器进行文件的上传等操作,这个时候我就利用磁盘配额的功能,添加了一个ftpuser的帐号,这个帐号对web目录可以利用ftp的软件来进行自己服务器的维护工作。这样就达到了非常高的安全标准。
, n; f* M8 X2 T" ^: S- y8 W # }: x5 _, }* M
图10配置磁盘配额给Ftp用户

5 p. C9 X8 [# y# x
图11 为ftpuser设置访问磁盘空间大小
三、NTFS详解之windows权限
. m, E9 l7 D9 e# G8 x: |+ E5 o/ i, r' m 1.NTFS访问规则控制
; }; R; q( B! NNTFS的另外一个非常重要的功能是对磁盘或者文件和文件夹的访问规则控制,也即windows的权限。Windows的权限大体上可以分为完全控制,修改,读取和运行,列出文件夹目录,读取,写入,特别的权限。同时权限又有4个特性,继承性、累加性、优先性、交叉性。我们首先来了解一下基本的概念,然后下面我们就开始配置Windows的变态权限配置了。 ! m0 M2 A# l6 `$ m, S+ _3 ]% N
2.NTFS的七种中权限 7 q- p; P! i4 h; a) ^$ O
(1)完全控制权限 6 w1 \% }$ k7 k0 z
“完全控制”就是对目录拥有不受限制的完全访问。地位就像Administrators在所有组中的地位一样。选中了“完全控制”,下面的五项属性将被自动被选中。 * p7 h5 L7 B5 p* s( Y
(2)修改权限
+ q$ w+ e5 J+ J& L“修改“则像Power users,选中了“修改”,下面的四项属性将被自动被选中。下面的任何一项没有被选中时,“修改”条件将不再成立。
8 c9 Q6 {6 J6 n  N2 k (3)读取和运行权限 $ L$ R% }' @/ P- r0 c$ W5 B, e* [
“读取和运行”就是允许读取和运行在目录下的任何文件,“列出文件夹目录”和“读取”是“读取和运行”的必要条件。 5 d2 K% |8 s4 p0 R/ `
(4)列出文件夹目录权限 8 E& j" g; Y/ ?( [; o% k
“列出文件夹目录”是指只能浏览该卷或目录下的子目录,不能读取,也不能运行。
: m) c( t& S$ M4 T( g6 \% ] (5)读取权限   ~6 d# a5 Q+ f- [5 S3 ^/ Z1 V  ]
“读取”是能够读取该卷或目录下的数据。 8 o5 Q6 H& T3 o( E+ z8 m
(6)写入权限 4 {9 {# ]- K3 w* C
“写入”就是能往该卷或目录下写入数据。
  z2 S3 s8 g- C" [1 K2 J (7)特别的权限 % t. H4 I5 Z8 c: P
“特别的权限“则是对以上的六种权限进行了细分。