一个ASP.NET虚拟主机安全漏洞的解决方案
Inetinfo.exe
NNTP
Inetinfo.exe
Inetinfo.exe
SMTP
Inetinfo.exe
Inetinfo.exe
由此可见,我们只能使用工作进程隔离模式解决.net的安全问题。
默认情况下,IIS 6.0在工作进程隔离模式下运行,如图五所示。在这种模式中,对于每一个Web应用,IIS 6.0都用一个独立的w3wp.exe的实例来运行它。w3wp.exe也称为工作进程(Worker Process),或W3Core。
可靠性和安全性。可靠性的提高是因为一个Web应用的故障不会影响到其他Web应用,也不会影响http.sys,每一个Web应用由W3SVC单独地监视其健康状况。安全性的提高是由于应用程序不再象IIS 5.0和IIS 4.0的进程内应用那样用System帐户运行,默认情况下,w3wp.exe的所有实例都在一个权限有限的“网络服务”帐户下运行,如图六所示,必要时,还可以将工作进程配置成用其他用户帐户运行。
对,这里,这里就是我们解决的核心。
我们把每一个网站都分配一个独立的应用程序池,并赋予不同的权限。不就能解决这个问题了吗?
具体如何做呢,下面我就针对建立一个网站来做一个示范:
首先,我们为网站创建两个用户(一个是app_test_user、密码为appuser,一个是iis_test_user、密码为iisuser)
1. 打开 计算机管理器
2. 单击控制台树中的用户→计算机管理→系统工具→本地用户和组→用户
3. 单击“操作”菜单上的“新用户”输入用户名为。app_test_user、密码为appuser
4. 在对话框中键入适当的信息。
5. 选中复选框:
用户不能更改密码
密码永不过期
6. 单击“创建”,然后单击“关闭”。
按照此方法在创建iis_test_user账户
然后分别把app_test_user添加到iis_wpg组,把iis_test_user添加到Guests组。删除其他组。
然后,建立相应的应用程序池。
依次打开Internet 信息服务→本地计算机→应用程序池→新建→应用程序池
新建一个名字为test的应用程序池
编辑test应用程序池的属性→标示→配置→用户名→浏览→把用户名改为我们刚才建立的app_test_user并输入相应的密码
其次建立相应的网站。
依次打开Internet 信息服务→本地计算机→网站→新建→test的网站,目录为d:\test →编辑test网站的属性→主目录→应用程序池→app_test_user →目录安全性→身份验证和访问控制→编辑,选择我们刚才建立的iis_test_user,并输入相应的密码iisuser→保存并退出。
最后设定服务器的安全。
C:只给administrators和system完全控制的权利,删除掉其他所有的权限,不替换子目录
C:\Documents and Settings继承父项,并替换子目录。
C:\Program Files继承父项,并替换子目录,并把C:\Program Files\Common Files\Microsoft Shared继承属性删除并复制现有属性,增加users的读取权限并替换子目录(这样做是为了能够让asp,asp.net使用access等数据库)。
C:\win
《一个ASP.NET虚拟主机安全漏洞的解决方案(第3页)》