将“网络服务”帐户添加到管理员组

时间:2010-02-09 02:53:14

标签: security iis administrator

我的网络应用程序在Windows Server 2003下的IIS 6.0中运行,我们都知道在这种情况下,IIS使用用户帐户“网络服务”。

我碰巧必须允许某些用户在我的网页上执行某些操作,并且该操作需要管理员权限。

对我来说最懒惰的解决方案似乎是向管理员组添加“网络服务”,它确实有效。

我的问题是,这个解决方案是如何危险,以及它以何种方式损害我的网络服务器的安全性?

3 个答案:

答案 0 :(得分:5)

这通常是“一个坏主意”。如果这是面向公众的服务器,那么这是一个非常糟糕的主意。

你应该做什么,这就是我们处理这类问题的方法,沙盒是你需要在另一个进程中执行的特定管理任务,例如具有提升权限的Windows服务。

然后,我们在Windows服务中托管远程服务器,并通过命名管道或TCP / IP与服务进行通信(如果是机器到机器,则通过后端专用网络)。

有关详细信息,请参阅我为其他用户提供的有关类似问题的答案:

  

Windows User Account that executes only IIS7 Provisions

更好的方法是永远不要在Web应用程序和Windows服务之间进行直接通信,而是通过诸如作业或消息队列之类的中介。您的低权限应用程序会请求执行管理任务,提升的特权服务会从队列中读取这些任务并将其执行。

在这两种情况下,您都应该确保不要忽视每项任务的责任。即确保如果任务是在服务器上创建新的Windows帐户,则不要让新帐户获得超出其需要的权限。

答案 1 :(得分:2)

如果我要编写一些需要盒级管理员的Web功能,我会在自己的应用程序池中创建它自己的应用程序,尽可能严密地锁定该应用程序,为该应用程序池提供一个命名帐户(a域资源,如果在Active Directory上),然后在该框中授予该帐户管理员权限。将它保存在自己的应用程序池中会有效地将其锁定在常规应用程序中。

NT Authority / Network Service与您机器上的大量内容进行交互。我无法找到获得网络服务管理员权限的任何理由。

答案 2 :(得分:1)

在任何情况下都不要这样做。

如果您将网络服务添加到管理员组,则默认情况下,访问您的Web应用程序的所有匿名用户都将是管理员,并且潜在的损害程度很大。

根据你的问题

  
    

我碰巧必须允许某些用户在我的网页上执行某些操作,并且该操作需要管理员权限。

  

没关系 - 在该网页上使用Windows身份验证,并使用户成为普通的Windows管理员。现在,他们和所有其他管理员可以执行您已设置的任务。