|
我曾经在下一代的微软服务器产品Windows
.NET Server 2003的Beta版上工作过,我很期待看到它的最终发行版。Win.NET
Server对很多人来说是一个非常有价值的升级,但是我翘首以待最终发行版能够满足这三个心愿。在过去几年中,我听到了数以千计的网络管理员多次表达过
“但愿NT(或者Windows
2000或者.NET
Server)能够…”
时不时地,微软服务器操作系统的新版本会针对那些变化多端的基本心愿满足一到两个,但是很多心愿还有待实现。为了印证这一传统,下面列举我最常听到的三个特定的心愿。
心愿一:隐藏起那些用户不能访问的对象
比如我有一个共享,\\srv1\user,包含着一些用户根目录。比如Jack有一个在\\srv1\users\jack中的根目录,而Sue有一个在\\srv1\users\sue中的根目录。NTFS的权限能够限制Jack不能去访问Sue的根目录,反之也一样。但是即使Sue不能进入Jack的根目录,她仍然可以看到Jack的根目录。她可以看到该目录的存在的事实,使得管理员感到担心。如果Sue不能够看到Jack有一个根目录,那么她将较少可能地去攻击Jack的文件。
很多网管员问过我,如何能够把文件夹的安全性进一步向前推进,使得每个用户的根目录对其他用户来说是完全看不到的。比如,如果Sue执行一个"dir
\\srv1\users"命令,她应该只能看到她自己的目录。Win.NET
Server没有提供一个限制用户看到其他用户目录的方法,但是应该提供。想要攻击你看不到的,是比较困难的。Win.NET
Server需要“使得没有访问权限的任何人都看不到”的文件、目录和其他对象的一个权限。
心愿二:一次点击就可以把用户从网络上断开
现在把用户弄掉还是很太困难的。在1973年,当我刚刚开始在计算机上工作,网络是很集中化的---那些傻终端挂在大型机或者小型机上。当一个公司开除某人,管理员可以很简单而快速地删除或者停止一个以前雇员的用户帐号。只要在键盘上敲击几下,管理员就可以把用户从系统中踢走。
现代网络变得更加分布式了。你仍然可以简单快速地删除或者停止某人的用户帐号。但是要把某个用户到网络的连接进行断开,却不是那么容易,因为你现在不再拥有一个连接,而是有大量的连接。大部分用户认为他们只是登陆到了域中,实际上我们常常登陆到几个服务器和服务。比如,同一时间我有在两个文件服务器、一个数据服务器和一个邮件服务器上的活动登陆。要把我从网络上踢下来,网管员需要知道我现在连接到了什么服务器和服务,然后断开那些连接。除非一些特别小的网络,这普遍是一件很难的事。微软需要在操作系统上增加一个“踢出网络”的向导。
现在我假设你可以在一个最新的网络上,通过把所有的登录设置为Kerberos,并且每三分钟过期一次Kerberos
Ticket的方法,来断开一个用户的连接。这样的话,当用户访问每一个服务器的时候,服务器不再像原来间隔10个小时(活动目录的缺省设置值)要求一次再验证,而是加快了频率。一旦你删除了用户帐号,下一次的再验证就会失败。但这并不是一种现实的做法,因为再验证的网络流量会使得网络不堪重负。考虑再三,我也建议不要用这种几分钟的Kerberos
Ticket生命周期来达到第二个心愿---网络上的效果会很差。我想我们还是需要那个向导。
心愿三:限制同时的多点登录数
一个同时的多点登录从来没有让我感到生死攸关,但是总有管理员问起这件事。很多人是在Novell的世界中学会网络的,在那里我听说你可以很容易地限制一个用户在同一时间只能登陆到一台计算机。就像上述断开用户一样,微软的操作系统的分布式本质也有代价:你不能告诉一个用户:“在你从目前登陆的这台PC上注销之前,你不能到登录到更多的工作站上”。
但是还是有一个绕过去的方法---使用一个资源包中的工具来强制一个客户只能做一次登录---但是这有些麻烦,需要设立一个SQL服务器的数据库并且配置好。但愿微软的管理界面Active
Directory Users and Computers能够在一个用户帐号上简单地打个勾,就来打开或者关闭同时登录能力。
微软什么时候能够实现我们的心愿呢?本着对微软公正的态度,我知道这样做需要一些时间。这三个心愿请求看起来都很合乎情理,甚至显得简单。(这情形就像是,“嘿,我们想让税务系统变得简单,我们可以仅仅创建单一税率,然后…)但是去实施我上述的任何一个建议都将是困难的。实现第一个心愿,微软需要在它的操作系统安全性上进行一些很基础的改动。实现第二个第三个心愿,该公司需要在安全性改进上走得更远,增加一些新的Token和Ticket的审计和跟踪功能。上述任何改变,都将是很大的努力,我们可能不得不等时间长一些。
|