一、这样配置的好处?
不知大家有没有听过旁注?我简单的解释一下吧:有个人想黑掉A站点,但找来找去都没发现可利用的漏洞,无意中他发现与A同服务器上还有个B站点,并且在B站点上找到了可利用的漏洞,于是他将木马从B站中上传至服务器,如果服务器权限配置不当,那么现在他就可以黑掉服务器上的所有站点了!如果我们为每个站点都建立一个用户,并设置该用户只有访问本站点的权限,那么就能将访问权限控制在每个站点文件夹内,旁注问题也就解决了。
二、准备工作
1、运行环境:Win2K 服务器版 + IIS 5.0
2、文件系统:各分区文件系统为NTFS
3、站点文件夹:E盘下建立两个文件夹web001和web002
4、新建站点:IIS中新建两个站点web001和web002,站点文件夹分别为E:\web001和E:\web002,都指定IP为192.168.0.146,端口分别为101和102。
OK,在IE中分别输入http://192.168.0.146:101和http://192.168.0.146:102测试两站点是否建立成功。
三、配置过程
1、建立用户组和用户
新建一用户组webs,以后所有站点用户全部隶属于该组,以便于权限分配。
建立用户web01,注意要钩选"密码永不过期"(否则背后会出现"HTTP 401.1 - 未授权:登录失败"),并设置其只隶属于webs用户组。同样在建一个用户web02。
2、各分区NTFS权限设置
打开各分区的安全选项卡依次给各分区授于administrator和system完全控制权限,并设置webs组完全拒绝权限。
3、站点文件夹NTFS权限设置
打开E:\web01文件夹属性窗口,选择安全选项卡,先去掉"允许将来自父系的可继承权限传播给该对象"前的钩,经弹出的对话框中选择删除继承权限。
最终确保administrator、system和web01对该文件夹都有完全控制权限。
E:\web02文件夹也一样设置。
4、设置各站点的匿名访问用户
在IIS中打开web01站点属性,选择目录安全性→匿名访问和验证控制→编辑,去掉"集成Windows验证"前的钩,再编辑匿名访问使用的帐号,设置匿名访问帐号为web01(web02站点也一样设置)。
四、测试
将老兵写的站长助手放至web02站点中进行测试,经测试除站点文件可以浏览外,其他分区均不能访问。
多站点IIS用户安全权限设置图解教程 http://www./article/30836.htm
这里举例4个不同类型脚本的虚拟主机 权限设置例子
主机头
主机脚本
硬盘目录
IIS用户名
硬盘权限
应用程序池
主目录
应用程序配置
www.1.com
HTM
D:\www.1.com\
IUSR_1.com
Administrators(完全控制)
IUSR_1.com(读)
可共用
读取/纯脚本
启用父路径
www.2.com
ASP
D:\www.2.com\
IUSR_1.com
Administrators(完全控制)
IUSR_2.com(读/写)
可共用
读取/纯脚本
启用父路径
www.3.com
NET
D:\www.3.com\
IUSR_1.com
Administrators(完全控制)
IWAM_3.com(读/写)
IUSR_3.com(读/写)
独立池
读取/纯脚本
启用父路径
www.4.com
PHP
D:\www.4.com\
IUSR_1.com
Administrators(完全控制)
IWAM_4.com(读/写)
IUSR_4.com(读/写)
独立池
读取/纯脚本
启用父路径
其中 IWAM_3.com 和 IWAM_4.com 分别是各自独立应用程序池标识中的启动帐户
主机脚本类型
应用程序扩展名 (就是文件后缀名)对应主机脚本,只需要加载以下的应用程序扩展
HTM
STM | SHTM | SHTML | MDB
ASP
ASP | ASA | MDB
NET
ASPX | ASAX | ASCX| ASHX | ASMX | AXD | VSDISCO | REM | SOAP | CONFIG |
CS |CSPROJ | VB | VBPROJ | WEBINFO | LICX | RESX | RESOURCES | MDB
PHP
PHP | PHP3 | PHP4
MDB是共用映射,下面用红色表示
应用程序扩展
映射文件
执行动作
STM=.stm
C:\WINDOWS\system32\inetsrv\ssinc.dll
GET,POST
SHTM=.shtm
C:\WINDOWS\system32\inetsrv\ssinc.dll
GET,POST
SHTML=.shtml
C:\WINDOWS\system32\inetsrv\ssinc.dll
GET,POST
ASP=.asp
C:\WINDOWS\system32\inetsrv\asp.dll
GET,HEAD,POST,TRACE
ASA=.asa
C:\WINDOWS\system32\inetsrv\asp.dll
GET,HEAD,POST,TRACE
ASPX=.aspx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
ASAX=.asax
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
ASCX=.ascx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
ASHX=.ashx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
ASMX=.asmx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
AXD=.axd
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
VSDISCO=.vsdisco
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
REM=.rem
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
SOAP=.soap
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
CONFIG=.config
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
CS=.cs
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
CSPROJ=.csproj
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
VB=.vb
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
VBPROJ=.vbproj
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
WEBINFO=.webinfo
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
LICX=.licx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
RESX=.resx
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
RESOURCES=.resources
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
GET,HEAD,POST,DEBUG
PHP=.php
C:\php5\php5isapi.dll
GET,HEAD,POST
PHP3=.php3
C:\php5\php5isapi.dll
GET,HEAD,POST
PHP4=.php4
C:\php5\php5isapi.dll
GET,HEAD,POST
MDB=.mdb
C:\WINDOWS\system32\inetsrv\ssinc.dll
GET,POST
ASP.NET 进程帐户所需的 NTFS 权限目录
所需权限
Temporary ASP.NET Files%windir%\Microsoft.NET\Framework\{版本}Temporary ASP.NET Files
进程帐户和模拟标识:
看下面详细权限
临时目录 (%temp%)
进程帐户
完全控制
.NET Framework 目录%windir%\Microsoft.NET\Framework\{版本}
进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
.NET Framework 配置目录%windir%\Microsoft.NET\Framework\{版本}\CONFIG
进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
网站根目录
C:\inetpub\wwwroot
或默认网站指向的路径
进程帐户:
读取
系统根目录
%windir%\system32
进程帐户:
读取
全局程序集高速缓存
%windir%\assembly
进程帐户和模拟标识:
读取
内容目录
C:\inetpub\wwwroot\YourWebApp
(一般来说不用默认目录,管理员可根据实际情况调整比如D:\wwwroot)
进程帐户:
读取
列出文件夹内容
读取
注意 对于 .NET Framework 1.0,直到文件系统根目录的所有父目录也都需要上述权限。父目录包括:
C:\
C:\inetpub\
C:\inetpub\wwwroot\
硬盘或文件夹: C:\WINDOWS\Microsoft.NET\Framework\版本\Temporary ASP.NET Files
主要权限部分:
其他权限部分:
Administrators
完全控制
ASP.NET 计算机帐户
读取和运行
该文件夹,子文件夹及文件
该文件夹,子文件夹及文件
<继承于E:\>
<继承于C:\windows>
CREATOR OWNER
完全控制
ASP.NET 计算机帐户
写入/删除
只有子文件夹及文件
该文件夹,子文件夹及文件
<继承于E:\>
<不是继承的>
SYSTEM
完全控制
IIS_WPG
读取和运行
该文件夹,子文件夹及文件
该文件夹,子文件夹及文件
<继承于E:\>
<继承于C:\windows>
IUSR_XXX
或某个虚拟主机用户组
列出文件夹/读取数据 :拒绝
IIS_WPG
写入/删除
该文件夹,子文件夹及文件
该文件夹,子文件夹及文件
<不是继承的>
<不是继承的>
Guests
列出文件夹/读取数据 :拒绝
LOCAL SERVICE
读取和运行
该文件夹,子文件夹及文件
该文件夹,子文件夹及文件
<不是继承的>
<继承于C:\windows>
USERS
读取和运行
LOCAL SERVICE
写入/删除
该文件夹,子文件夹及文件
该文件夹,子文件夹及文件
<继承于C:\windows>
<不是继承的>
NETWORK SERVICE
读取和运行
该文件夹,子文件夹及文件
<继承于C:\windows>
NETWORK SERVICE
写入/删除
该文件夹,子文件夹及文件
<不是继承的>
删除了调用shell,注册表,COM组件的破坏权限
use master
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_dropextendedproc 'Sp_OACreate'
EXEC sp_dropextendedproc 'Sp_OADestroy'
EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
EXEC sp_dropextendedproc 'Sp_OAGetProperty'
EXEC sp_dropextendedproc 'Sp_OAMethod'
EXEC sp_dropextendedproc 'Sp_OASetProperty'
EXEC sp_dropextendedproc 'Sp_OAStop'
EXEC sp_dropextendedproc 'Xp_regaddmultistring'
EXEC sp_dropextendedproc 'Xp_regdeletekey'
EXEC sp_dropextendedproc 'Xp_regdeletevalue'
EXEC sp_dropextendedproc 'Xp_regenumvalues'
EXEC sp_dropextendedproc 'Xp_regread'
EXEC sp_dropextendedproc 'Xp_regremovemultistring'
EXEC sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
全部复制到"SQL查询分析器"
点击菜单上的--"查询"--"执行",就会将有安全问题的SQL过程删除(以上是7i24的正版用户的技术支持)
更改默认SA空密码.数据库链接不要使用SA帐户.单数据库单独设使用帐户.只给public和db_owner权限.
数据库不要放在默认的位置.
SQL不要安装在PROGRAM FILE目录下面.
最近的SQL2000补丁是SP4
MSSQL2000安全设置图文教程 http://www./article/26016.htm
Win2003 MSSQL以普通用户运行安全设置篇 http://www./article/23217.htm