这两天在论坛上又看到有网友提问,"能不能利用一些比较简单地方法实现对文件服务器上的私人文件/文件夹的保护呢?因为不想让别的用户浏览到自己的共享文件夹中的某些个文件!".
 
  应对这种需求时,文件服务器管理员在平常一般都会采用在文件服务器上共享出来的大目录下新建子目录然后修改NTFS权限来实现.但是对于普通域用户,他们想更为灵活和简单地掌控自己文件档案的安全性和隐私性的话,权限的叠加或者设置对他们而言就有些难以掌握了.
 
  其实,对于大量采用Windows XP作为客户端,Windows server 2003以上作为文件服务器操作系统并且有域环境的企业来说,让用户可以使用EFS对自己存储在远程服务器上的私有资料进行加密就成为了一种可供选择的方案.毕竟EFS对于用户操作的透明性和简易性比较于其他方案是有很大优势的.
 
  下面我们就一起来看一下如何配置使得用户可以使用EFS对远程文件服务器上的文件加密.
 
  相信看过我之前博文<域环境下如何保护重要资料文件的安全---EFS加密(上下篇)>的朋友对于域环境中的EFS使用已经有了一些共识:本地计算机上使用EFS加密操作真的好简单.在要加密的档案上右键,选择"常规"-->;"属性"-->;"高级"-->;"加密内容以便保护数据"就完事了,同样的做法直接搬到远程文件服务器上呢?
 
  这里我使用一个名称为"cfo"的普通域用户账号登陆客户端(IP:172.16.0.201),先对他在文件服务器(IP:172.16.0.101,FQDN:contoso-sccm.contoso.com)上要访问的共享文件夹(共享名test, cfo对其拥有完全控制权限)做一个磁盘映射,然后对其中的档案试图进行EFS加密,可以看到,
clip_image002
图1
会直接提示"应用属性时出错",试图加密失败.
 
  其实动手之前稍微想一下,失败是必然的事情,远程服务器没有得到用户的信任和授权,同时也并不拥有用户的证书和密钥(如果您对证书及密钥的概念不是很理解请详细阅读我之前的博文),怎么可能就这样轻而易举地代替用户实现加密.
 
  所以我们需要先对远程服务器进行委派的动作.
 
  来到域控上,
  打开"Active Directory用户和计算机",找到文件服务器的机器名,右键选择"属性",然后点击"委派"选项卡,选择"仅信任此计算机来委派指定的服务",跟着单击"添加",然后单击"用户和计算机",浏览到文件服务器后点击"确定",这时会出现一个"可用服务"列表,选择添加其中的"cifs"和"protectedstorage"服务.完成操作后需要将文件服务器进行一次重启.
clip_image004
图2
完成了委派的操作,就相当于对服务器进行了授权,允许它代表用户执行某种(或全部的)服务.下边需要做的就是让文件服务器拥有域用户的证书和密钥.关于这一步,有两种做法,
一 ,直接在文件服务器上使用域用户账号登录一次,并且随便加密一个文件,这样就可以生成域用户的证书和密钥了.第二种做法是在域用户拥有用户漫游配置文件(Roaming Users Profile)的情况下,直接将RUP 下载到文件服务器上对应的位置即可.(此步图略,并且由于本人的实验环境问题,选择了第一种方式获得的用户证书及密钥).
 
  做完了以上的操作,我们再在客户端试着用EFS来加密远程服务器上的共享文档看看.
 
  咦,竟然还是图1的报错. 这时我们不妨到文件服务器上看看有没有相关的信息.
 
  来到文件服务器上执行eventvwr.msc打开事件查看器,可以看到有这么一条报错信息:
clip_image006
图3
  这是因为EFS不支持NTLM身份验证协议,而只能使用Kerberos协议.
 
  那怎么看到客户端上登录的账号是采用了什么身份验证协议访问的网络共享呢?
  这个在事件查看器上也是有记录的:
clip_image008
图4
可以看到cfo是使用的NTLM协议来进行身份验证的.
 
  为了让他转为使用Kerberos协议,我们需要重新以\\FQDN方式来定位到共享文件夹再进行磁盘映射.请记住: 为了Kerberos的正常工作,所有通信都必须都使用完全限定的域名 (FQDN)。
  所以请保证你域内的DNS服务器运行正常.
  同样,在转为使用Kerberos协议进行身份验证后,事件日志中也会有相应的记录:
clip_image010
图5
  我们再来试试对远程服务器上的文件加密:
clip_image012
图6
  可以看到,终于能够在远程 服务器上使用EFS方式对文件加密了.
 
  总结一下使用EFS的委派模式对远程服务器上文件加密的大体步骤:
1.在域控上对远程服务器进行信任委派并重启(安全起见只委派两个服务即可,不再复述,详见正文内容)
2.在远程服务器上生成用户的profile及private key(两种方法,不再复述, 详见正文内容)
3.使用\\FQDN名称访问到共享文件夹并做磁盘映射到本地(必须)
 
  最后仍有几点需要说明:
1. 对于将要使用远程服务器的EFS加密的域用户,务必在其账号属性中清除"敏感帐户,不能被委派"复选框.
2.远程加密不支持跨林的委派服务器模式,要使用此方案,被委派的服务器须和用户帐号在同一个域内.
3. EFS只能加密存储在磁碟上的数据.在网络中传输数据时数据仍是没有被加密的.所以为了保证在网络传输时的数据安全,你可能需要使用IPsec或者EFS over WebDAV模式.
4. 在有多名用户对某个文件夹都拥有足够权限的时候,其中一个用户使用EFS来加密了某些个文件都会导致别的用户都无法再访问这些文件.鉴于此, 请规划好远程EFS加密的使用并且对用户说明正确的使用场景.为了以防万一,也请将EFS域恢复代理提早设置妥当.
5.虽然域内可以使用自签名( self-signed)的用户证书,但对于涉及到证书的最佳实践还是建立CA服务器以获得和活动目录结合的PKI环境.