zoukankan      html  css  js  c++  java
  • iis7以上版本权限控制

    IIS7.5中(仅win7,win2008 SP2,win2008 R2支持),应用程序池的运行帐号,除了指定为LocalService,LocalSystem,NetWorkService这三种基本类型外,还新 增了一种ApplicationPoolIdentify 

    win7的官方帮助上是这么说的:

    动态创建“应用程序池标识”帐户,因此,此帐户对于您的应用程序来说是最安全的。

    也就是说"ApplicationPoolIdentity"帐号是系统动态创建的“虚拟”帐号(说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的) 

    如何验证该帐号确实是存在的的?打开任务管理器,观察一下:

    w3wp.exe即iis进程,上图中高亮部分表明该iis进程正在以帐号luckty运行(注意这里的luckty即为上图中的应用程序池名称)


    好了,搞清楚这个有什么用?

    先来做一个测试,比如我们在iis里新建一个站点,主目录设置为c:2,应用程序池就指定刚才图中的luckty

    假如我们在该站点的default.aspx.cs里写入这样一行代码 :

    File.AppendAllText("C:\TestDir\1.txt",DateTime.Now.ToString());

    前提是c盘必须先建一个目录TestDir,同时除Administrator,System保留完全控制权外,其它帐号的权限都删除掉

    运行后,会提示异常: 对路径“C:TestDir1.txt”的访问被拒绝。

    原因很明显:该站点运行时是以应用程序池(luckty)对应的虚拟帐号运行的,而这个虚拟帐号不具备c:TestDir的访问权限

    这种情况在web服务器(iis6)安全配置中很常见,比如我们把图片上传目录,常常放在主目录之外,同时以虚拟目录形式挂于站点之下,另外在IIS6中不指定该目录任何执行权限 ,这样即使有人非法上传了asp/aspx木马上去,也无法运行搞不成破坏!

    言 归正传,要想让那一行测试代码正常运行,解决办法很简单,把虚拟帐号的权限加入文件夹安全权限中即可,但是问题来了:这个虚拟帐号我们是不可见的,如果你 直接添加名为luckty的用户到文件夹安全帐号里,根本通不过(提示找不到luckty用户),说明这个虚拟帐号名称并不是"luckty"


    关键:手动输入 IIS AppPoolluckty (即IIS AppPool应用程序池名),再确定,这回ok了.


    当然除了用"IIS AppPool应用程序池名"外,windows内部还有一个特殊的用户组Authenticated Users,把这个组加入TestDir的安全权限帐号里也可以,不过个人觉得没有"IIS AppPool应用程序池名"来得精确.


    结束语:
    IIS7.5的虚拟帐号设计确实很棒,想想传统IIS6的时候,为了把同一服务器上的各站点权限分开(以防止木马捣乱), 不得不创建一堆iuser_XXX,iwam_XXX帐号并指定密码,再一个个站点分配过去,累死人!而虚拟帐号设计则让这类管理轻松多了,也不用担心密 码过于简单或过期问题。So,还在等什么,赶紧升级到win7/win2008 R2吧!

     转载:http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html

    设置完后再设置

    选择网站>IIS>身份验证>匿名身份验证>应用程序池标志

    https://www.cnblogs.com/wawahaha/p/4328858.html

    http://www.cnblogs.com/wanernet/archive/2013/06/15/3137060.html

    https://blog.csdn.net/wdx1632/article/details/70243971

    IIS7.5中(仅win7,win2008 SP2,win2008 R2支持),应用程序池的运行帐号,除了指定为LocalService,LocalSystem,NetWorkService这三种基本类型外,还新 增了一种ApplicationPoolIdentify 

    win7的官方帮助上是这么说的:

    动态创建“应用程序池标识”帐户,因此,此帐户对于您的应用程序来说是最安全的。

    也就是说"ApplicationPoolIdentity"帐号是系统动态创建的“虚拟”帐号(说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的) 

    如何验证该帐号确实是存在的的?打开任务管理器,观察一下:

    w3wp.exe即iis进程,上图中高亮部分表明该iis进程正在以帐号luckty运行(注意这里的luckty即为上图中的应用程序池名称)


    好了,搞清楚这个有什么用?

    先来做一个测试,比如我们在iis里新建一个站点,主目录设置为c:2,应用程序池就指定刚才图中的luckty

    假如我们在该站点的default.aspx.cs里写入这样一行代码 :

    File.AppendAllText("C:\TestDir\1.txt",DateTime.Now.ToString());

    前提是c盘必须先建一个目录TestDir,同时除Administrator,System保留完全控制权外,其它帐号的权限都删除掉

    运行后,会提示异常: 对路径“C:TestDir1.txt”的访问被拒绝。

    原因很明显:该站点运行时是以应用程序池(luckty)对应的虚拟帐号运行的,而这个虚拟帐号不具备c:TestDir的访问权限

    这种情况在web服务器(iis6)安全配置中很常见,比如我们把图片上传目录,常常放在主目录之外,同时以虚拟目录形式挂于站点之下,另外在IIS6中不指定该目录任何执行权限 ,这样即使有人非法上传了asp/aspx木马上去,也无法运行搞不成破坏!

    言 归正传,要想让那一行测试代码正常运行,解决办法很简单,把虚拟帐号的权限加入文件夹安全权限中即可,但是问题来了:这个虚拟帐号我们是不可见的,如果你 直接添加名为luckty的用户到文件夹安全帐号里,根本通不过(提示找不到luckty用户),说明这个虚拟帐号名称并不是"luckty"


    关键:手动输入 IIS AppPoolluckty (即IIS AppPool应用程序池名),再确定,这回ok了.


    当然除了用"IIS AppPool应用程序池名"外,windows内部还有一个特殊的用户组Authenticated Users,把这个组加入TestDir的安全权限帐号里也可以,不过个人觉得没有"IIS AppPool应用程序池名"来得精确.


    结束语:
    IIS7.5的虚拟帐号设计确实很棒,想想传统IIS6的时候,为了把同一服务器上的各站点权限分开(以防止木马捣乱), 不得不创建一堆iuser_XXX,iwam_XXX帐号并指定密码,再一个个站点分配过去,累死人!而虚拟帐号设计则让这类管理轻松多了,也不用担心密 码过于简单或过期问题。So,还在等什么,赶紧升级到win7/win2008 R2吧!

     转载:http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html

    设置完后再设置

    选择网站>IIS>身份验证>匿名身份验证>应用程序池标志

    WIN2008 R2+IIS7.5 权限设置

    代码写完, 发布,上服务器了。

    头痛的是第一次接触IIS7.5,一堆的网站目录权限设置,network_service,IUSER等等。还得都给所有权限。顿时崩溃了。

    无意间朋友给了篇园子里的文章

    IIS7.5中神秘的ApplicationPoolIdentity

    顿时舒畅。由于设置过程中有点点小问题,上篇文章描述不是太仔细。

    现在重新整理发下。

    废话不说,上图

    请注意:本文只适合win7,win2008 SP2,win2008 R2支持及以上

    第一步:选择应用池,高级

    SBGNI~C3AJ6~ZNGZ@6%K]41

    第二步:

    image

    第三步:选择站点》身份认证

    image

    匿名身份认证,编辑

    image

    image

    第四步:设置网站目录权限

    image

    请注意:这里必须手工输入 IIS AppPoolws09(即:IIS AppPool应用程序池名)

    ok,全部搞定

    经测试,文件读写,删除,编辑,目录读写、删除、编辑,无任何问题。

    注意:多个应用池,需要在网站目录中设置多个虚拟账号

    Windows Server 2008 R2 WEB 服务器安全设置指南(三)之文件夹权限设置

    系统目录

    确保所有盘符都是NTFS格式,如果不是,可以用命令 convert d:/fs:ntfs 转换为NTFS格式。

    所有磁盘根目录只给system和administrators权限,其它删除。

    这里写图片描述

    其中系统盘符会有几个提示,直接确定就可以了。在做这步操作之前,你的运行环境软件必须都安装好以后才能做。不然可能会导致软件安装错误,记住一点所有安全性的操作设置都必须在软件安装完以后才能进行。 
    这里写图片描述 
    站点目录 
    这里写图片描述 
    每个网站对应一个目录,并为这个网站目录加上IUSR和IIS_IUSRS权限,都只给“列出文件夹内容”和“读取”权限。

    例如我在D盘根目录下创建了一个wwwroot的目录,再在里面创建了一个blog.postcha.com的目录,这个目录里面放的是我的网站程序。其中wwwroot只要继存d盘的权限即可,而blog.postcha.com这个目录,我们需要再添加二个权限,即IUSR和IIS_IUSRS。

    wwwroot权限:

    这里写图片描述 
    站点目录权限: 
    这里写图片描述

    一般的网站都有上传文件、图片功能,而用户上传的文件都是不可信的。所以还要对上传目录作单独设置。上传目录还需要给IIS_IUSRS组再添加“修改”、“写入”权限。

    这里写图片描述

    经过上面这样设置承在一个执行权限,一旦用户上传了恶意文件,我们的服务器就沦陷了,但是我们这里又不能不给,所以我们还要配合IIS来再设置一下。

    在iis7以上版本里,这个设置非常的方便。打开IIS管理器,找到站点,选中上传目录,在中间栏IIS下双击打开“处理程序映射”,再选择“编辑功能权限”,把“脚本”前面的勾掉就可以了。

    这里写图片描述

    好了,我们打开upload文件夹看一下,是不是多了一个web.config。

    web.config里的内容如下:

  • 相关阅读:
    python 2
    Python 1 practice
    python 1
    Python多线程_笔记
    背景自适应不会随浏览器界面放大速效而改变
    平行四边形定理
    动态规划3(区间+树形)
    素数快速生成
    设CPU共有16根地址线,8根数据线,,,
    贪心+huffman编码+模拟退火+分治
  • 原文地址:https://www.cnblogs.com/Alex80/p/14473703.html
Copyright © 2011-2022 走看看