Windows 2012相对于前几个版本而已,做出了大量的改进,尤其体现在安全性和虚拟化方面。Dynamic Access Control ( 动态访问控制)是微软在文件服务器的访问控制上的新功能,极大的提高了安全性和灵活性。经过一天的研究学习,豆子发现这个功能给我带来了极大的惊喜。
(一)简单概述
Windows,传统的文件访问控制是通过share和NTFS 来实现的,这种方式已经运行了10几年了。这种访问控制的方式可以实现日常的工作需求,但是有很多问题没有能够解决。这种传统的方式一个很大的弊端就是不够灵活和非常冗余。尤其是在大企业里面,一个部门里面可能还分个三六九等,每一个访问权限都必须创建一个对应的组,这样一来,一个文件夹上面的组可能层层嵌套,数量随着时间迅速增加,在豆子的公司AD里面,文件服务器上创建的组至少有上千个~;另外一个问题是,仅仅通过NTFS和Share控制访问权限,很难控制用户是从哪里访问的。用户可能从网吧,家里,公司,旅馆任何地方访问,而这些远程访问的机器的安全性是很难得到保障的。还有一个问题是,如果有人无意中将高度机密的文件拖到了公共的文件夹中,那么所有能够访问这个文件夹的用户都有可能造成泄密。最后,访问的审计也并不那么简单直观,比如说,对于管理员来说,有的时候需要了解过去12个小时,到底谁访问了这些文件等等。
以上的这些不足,在Dynamic Access Control里面都得到了解决。DAC的访问控制不是通过组,而是通过attribute来实现的。所有的AD对象,包括用户,组,计算机创建的时候都有大量的attribute设置,比如deparment, country,location 等等。这些属性都是在AD schema里面定义的,如果需要更多的attribute,用户可以进行扩展。通过定义这些属性,我可以设定比如 位于悉尼的IT部门的用户可以从成都分公司的计算机上访问高度机密的文件。这个例子里面,悉尼,IT就是用户的属性,成都分公司 就是计算机的属性,高度机密,则可以视作文件的属性。
值得一提的是,DAC并不是用来替代传统的Share+NTFS, 他是一套并行的安全访问机制。换句话说,如果配置了DAC,那么用户的访问权限必须同时满足DAC和Share/NTFS才算通过。
下面来看看豆子的配置实例
我的实验环境很简单,就是一个windows 2012 的DC和windows 2012 的文件服务器。我设定只有来自澳洲的用户可以访问中等机密程度的文档。
(二)实验步骤
简单的说,我需要配置一条Central Access Policy的组策略,推送到文件服务器上。我需要做到以下几个分支操作:
Claim types(定义一些用户和计算机的属性)
Resource Properties ( 定义文件夹的属性)
Resource Properties list (把定义的文件夹属性放在一个集合里面)
文件服务器更新以上定义,就可以在文件的classification里面查看自己的标签(例如访问等级等等)了
Central Access Rule 利用前面定义的属性来定义一条或者多条规则
Central Access Policy 把上一步定义的1条或者多条规则放入一个Policy集合里面
配置GPO,发布Central Access Policy
文件服务器上在对应的共享文件夹上选择对应的Central Access Policy
登陆DC,打开Active Directory Administrative Center。值得一提的是ADAC在windows 2008 就有了,不过因为大部分功能和ADUC重复了,相当鸡肋。 2012里面他的功能大幅度加强了。
首先我们来 claim types
这里我选中c,他代表的是国家名字的简写。如果你不确定你想找的属性名字,可以去这里查询
http://msdn.microsoft.com/en-us/library/windows/desktop/ms675090(v=vs.85).aspx
然后OK即可
下一步我们需要定义新的resource properties,这个相当于一个标签,你可以把这个标签贴在对应的文件上从而和其他的文件进行区别
我取了个名字叫做 Importance (重要性),然后给他定义了3个等级 high, meidum, low
保存之后返回 resource properties, 就可以看见刚才自定义的Importance了。可以看见,默认预定义的标签已经有很多了。为了使用对应的标签,需要右击然后选择enable,这里豆子enable了Department和Importance两个标签
为了让文件服务器使用这个标签,我们需要在文件服务器上用管理权限执行以下更新命令
然后你就可以在文件服务器的文件上Classificaion上看见自定义的标签了
Classification是windows 2012里面才出现的新玩意,你也可以在File Server Resource Manager上配置本地的标签。注意Scope,global代表的是我在DC上配置的,会同步到所有的文件服务器,而local只是局限于该文件服务器本身。
下一步,我们需要配置实际的Central Access Rule了
我取了个名字叫做 Country rule, 并定义了Target resource 和 Current Permission
这个rule的基本含义就是 来自AU (澳洲)的用户,对重要等级为中等的文件,具有Modify的权限。
最后,创建一个Central Access Policy,把自定义的rule添加即可
下一步我们需要配置GPO来推送这个Central Access Rule
我在文件服务器所在的OU创建了一个新的GPO,
Computer Configuration/Policies/Windows Settings/Security Settings/File System/Central Access Policy 上添加前面创建的Central Access Rule
Computer Configuration/Policies/Windows Settings/Security Settings/Advanced Audit Policy Configuration/Audit Policies/Object Access. 上配置audit file share 和audit central access policy staging
然后在Default Domain Controllers GPO的Computer Configuration/Policies/Administrative Templates/System/KDC enable KDC
最后,去文件服务器的共享文件上,激活对应的Rule
大功告成。现在可以创建几个用户测试一下了。
我创建了两个用户,唯一的属性区别是国家不一样
然后共享文件夹的Share/NTFS 权限设置如下
最后我们来看看访问权限如何,先看看kevin,他所在的组允许他有读和运行的权利,然后CAG允许他modify的权利,两者的交集,他只有读和运行的权利。
然后看看Mac,尽管他所在的组有读取和运行的权利,但是CAG限制了他的国家,所以他没有任何读写权利。
由此可见,实验成功!
限于水平和经验,欢迎指出不足之处!