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,他代表的是国家名字的简写。如果你不确定你想找的属性名字,可以去这里查询
然后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限制了他的国家,所以他没有任何读写权利。
由此可见,实验成功!
限于水平和经验,欢迎指出不足之处!