当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > 确保你的分布式Windows应用的安全

安全防护
为Windows 2003安全—层层设防(3)
为Windows 2003安全—层层设防(4)
修改IIS的Banner隐藏操作系统版本
以毒攻毒!IIS Banner巧伪装
四招加强Windows 2003安全性
深入剖析EFS(2)
设置Active Directory域(1)
设置Active Directory域(2)
Rootkit分析(1)
Rootkit分析(2)
Rootkit分析(3)
Windows域信任关系建立全攻略
关于网站木马的解释(1)
关于网站木马的解释(2)
hdsi2.0 sql注入部分抓包(1)
hdsi2.0 sql注入部分抓包(2)
hdsi2.0 sql注入部分抓包(3)
hdsi2.0 sql注入部分抓包(4)
建造永不被杀的80端口后门(1)
建造永不被杀的80端口后门(2)

安全防护 中的 确保你的分布式Windows应用的安全


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 38 ::
收藏到网摘: n/a

在Windows环境下服务器监控软件的选择这篇文章中我们讨论了监视你基于Windows的分布式应用与服务器的问题。除了运行这些应用时实施监控之外,保护这些应用和维持这些应用的安全运行是同等重要的。因此,让我们研究一下系统管理员在设置和运行基于Windows的分布式应用时应该知道的一些事情。

身份识别

一般会使用这两种方法之一来保证安全的访问一个应用的一部分或者全部。你可以创建一个用户名和口令的数据表并且把那个表存储在SQL服务器等数据库中,或者你将使用Windows活动目录或者本地SAM账户用于身份识别。

在IIS中的摘要识别

当把用户名和口令存储在数据库中时,应用会向用户要求用户名和口令,并且根据数据库中的用户表验证这个信息的合法性。网络浏览器把用户认证信息(用户名和密码)发送到处理这些信息的ASP脚本。ASP脚本要求SQL服务器查找用户名和口令以验证用户。这种方法一般用于互联网或者外部网接入。这些用户一般都是你的机构以外的人员,也许是你的商业合作伙伴。

当使用基于Windows活动目录的身份识别或者本地安全接入管理器(SAM)身份识别(比如说不存在Windows域时),用户可以访问一个包含ASP脚本的网页。这个脚本则访问SQL服务器来寻求认证。而SQL服务器将认证请求重新定向到域控制器或者本地服务器的SAM帐号。这种方式一般当访问者是你的机构内部人员时使用。

如果微软SQL服务器正在作为一个域成员的一台服务器上运行,SQL服务器将首先检查域名控制器来识别用户的身份。如果不行的话,SQL服务器将检查本地服务器的SAM。使用活动目录是最好的,因为它把用户账户和组都集中在你所有的服务器都可以访问的一个地方。另一个好处是,如果他们登录其工作站的账户是在那台服务器中或者在那个域名中的话,你的用户就不需要第二个用户名和口令来访问应用程序。

其它身份识别的方法

除了在IIS中集成的Windows和基本的身份识别之外,还有对访问一个网站的用户进行身份识别的其它方法。你能够做的一件事情是把一个用户证书映射到本地Windows或者域名用户账户。当用户使用那个证书进行连接时,IIS(5.0或者以上版本)使用这个映射的账户登录这个用户,这些账户证书要用来访问这些资源。

另一个替代的方法(用于Windows 2000或者以上版本以及IIS 5.0或者以上版本)是摘要验证。当你使用摘要验证时,这个浏览器创建一种与其它信息合在一起的混合版本的用户名和口令。这些证书是不容易解密的。但是,域名控制器能够把这种混合的信息与存储在域名控制器中的未加密的信息进行比较。用这种方法,摘要验证让浏览器和服务器不用发送未加密的口令就能够识别用户的身份。为了使用摘要验证,浏览器必须是IE 5.5以上版本,IIS服务器必须是活动目录域的一部分。

授权

授权可以简单地解释为批准访问资源。这也许意味着批准你已经设置予以授权的用户或者组拥有“读”或者“读/写”的权限。一般来说,这些授权适用于你的基于网络的应用程序所在的文件夹。这也许意味着在DCOM或者ASP.NET组件中配置模拟的设置,特别是如果你的用户或者客户是来自你的机构外部的或者是内部网与外部网混合的用户。这也许还意味着在SQL服务器中配置某些具体的设置。我们将在下面介绍这种SQL服务器。

SQL服务器方面的任务:角色与许可

标准SQL服务器角色

你可以设置一个Windows用户或者组作为SQL服务器登录用户,然后以各种方法使用那个登录。一种方法是把SQL服务器登录(Windows用户或者组)作为有权访问数据库的一个SQL服务器角色的一部分。要为一个角色增加现有的登录,可采取下列步骤:

1、打开企业管理器。

2、打开数据库文件夹。

3、打开你要增加登录的数据库。

4、为这个数据库选择一个任务文件夹。

5、用鼠标右键点击你要增加登录的任务并且选择属性。

6、点击增加,选择要增加的登录,然后点击“OK”。

7、点击“OK”关闭这个任务属性,设置结束。

例如,如果你使用这些步骤为db_datawriter数据库任务增加一个登录,SQL数据库现在就能够识别在那个组中的用户,并且允许他们读取数据和向上面第三步中选择的数据库中写入数据。你可以打开SQL服务器登录的属性,在数据库访问页上清空“Northwind ”条目,在这个组中的用户仍然可以访问那个数据库,因为他们仍在db_datareader和db_datawriter任务中。然而,这个组没有插入、更新或者删除的权限,因为你没有给予他们这些权限。你可以创建另一个登录,并把这个登录分配给提供更多的权限(如db_owner)的另一个任务。

存储过程授权

存储过程许可

如果你不仅仅是允许一个登录访问整个数据库,而是需要更多地控制安全问题,在你创建这个登录的时候或者根据个性化的许可增加你自己的任务的时候,你可以编辑你选择的任务选项。你创建的任务能够限制或者批准访问具体的表格,甚至是具体的栏目。

在许多应用程序环境中的最佳做法是授权用户或者任务具有参与操作数据库的存储过程的权限,而不允许他们直接访问真正的数据库:

1、打开企业管理器。

2、打开数据库文件夹。

3、打开你要增加这个权限的数据库。

4、选择那个数据库的存储过程文件夹然后选择属性。

5、点击批准按钮。

6、在用户/数据库任务栏目之下,选择你希望给予权限的账户。

7、点击适当的栏目(例如,点击“Exec”允许这个账户在那个存储过程中执行批准的权限)。

8、双击“OK”关闭存储过程属性,完成这个设置。

现在,我们已经介绍了在基于Windows的分布式应用程序环境中的身份识别和授权。在另一篇文章中,我们将介绍保证IIS安全、以及微软SQL服务器安全的一些最佳做法。