设为首页 收藏本站
查看: 752|回复: 0

[经验分享] FW:介绍 IIS 7.5 的应用程序集区与新增的「虚拟账户」特性

[复制链接]

尚未签到

发表于 2015-8-15 09:41:13 | 显示全部楼层 |阅读模式
  一篇比较详细探讨IIS 7.5下面账户安全的文章,值得学习一下。
  
  原文链接:
  http://blog.miniasp.com/post/2009/09/Introduce-IIS-75-Application-Pool-Identity-and-Virtual-Account.aspx
  来自于:The Will Will Web
  
  从 Windows 7 与 Windows Server 2008 R2 开始,新增了两种特殊的账户类型,分别是「受管理的服务账户(Managed service accounts)」与「虚拟账户(virtual accounts)」,可有效隔离各种网络服务以提升安全性,我今天会集中在讲解 IIS 7.5 与虚拟账户之间的实际运用与范例。
  要学会设定 IIS 一定要熟悉应用程序集区(Application Pool)与身份识别(Identity)的关系,我们都知道 IIS6 与 IIS7 默认的应用程序集区身份识别都是 NETWORK SERVICE 这个系统帐户,不过 NETWORK SERVICE 这个账户可不是只有 IIS 在用而已,还有许多其他系统中与网络有关的服务程序也是用 NETWORK SERVICE 这个身份在运作,例如:SQLEXPRESS 服务。
DSC0000.gif
  这也代表着就算 IIS 没有沦陷,只要有其他使用 NETWORK SERVICE 的网络服务沦陷的话,也会有可能连带影响 IIS 的运作。这样说你可能没感觉,我反过来说,如果 IIS 被植入木马程序,黑客可以大摇大摆的利用 NETWORK SERVICE 下载你的 SQLEXPRESS 数据库备份文件、删除备份档、删除或下载你暂时卸离的数据库、甚至于偷天换日将另一组数据库上传上去,让你完全不知发生何事。
  碍于时间与篇幅我没办法说太多,如果有机会我可以做很多现场的展示,包你大开眼界,信息安全这文件事真的是博大精深,不了解各种细节与原理的人永远是在雾里看花。
  有了「虚拟账户」的概念,各种不同的网络服务不需要再共享同一组 NETWORK SERVICE 身份识别,甚至于同一个 IIS 下个别不同的应用程序集区也可以用完全区隔开来的「虚拟帐户」执行 Web 应用程序,除了工作处理程序(Worker Process) (w3wp.exe) 执行的身份可以完全切开外,对于不同站台所操作的档案或目录也可以将 NTFS 权限的设定做有效区隔,让不同工作处理程序之间对系统或档案安全性的影响降至最低,非常的有意义!
  首先,我们先来看看 IIS 7.5 内建的 DefaultAppPool 应用程序集区的 [进阶设定]
DSC0001.gif
DSC0002.gif
  在这里你会看到 IIS 7.5 这次才新增的 ApplicationPoolIdentity 内建账户,而这就是为 IIS 7.5 特别订制的「虚拟账户」。
DSC0003.gif
  当我们的 ASP.NET 程序需要上传或写入档案到 Web Server 时,就必须要设定目录的 NTFS 权限让工作处理程序能够写入档案,在以往我们要设定的是 NETWORK SERVICE 账户,但现在要输入的却是一组特殊的「虚拟账户」,我们在档案总管设定权限时「虚拟账户」是无法被选取的,只能手动输入这组特殊的帐户名称,IIS 应用程序集区的虚拟帐户名称表示方式为:【IIS AppPool\应用程序集区名称】,例如内建的应用程序名称就称为: 【IIS AppPool\DefaultAppPool】,如果你新增了一个应用程序集区名为 MyAppPool 的话,虚拟账户的表示法就是:【IIS AppPool\MyAppPool】。
  如下图示,在设定 NTFS 权限选取使用者时需先手动输入虚拟账户账号
DSC0004.gif
  当按下 [检查名称] 或 [Check Names] 时,名称若出现「底线」就代表该「虚拟账户」是有效的:
DSC0005.gif
  最后,我们看一下 [任务管理器] 中呈现的工作处理程序(w3wp.exe) 的执行身份也是虚拟账户DefaultAppPool 这个身份。
DSC0006.gif
  我觉得虚拟账户这个概念实在是太棒了,以后在设定多个站台时也不需要新增一堆无意义的系统帐户或人工管理这堆系统帐户的密码与到期日,对于系统的可管理性也增强了,当你不需要虚拟账户时,也可以选择原本的 NetworkService 或自行指定账户执行。
  ---
  虚拟账户虽然在 Windows 7 与 Windows Server 2008 R2 才出现,但 Windows Server 2008 在更新到 Service Pack 2 (SP2) 之后也会支持虚拟账户的设定,只是经我实测后发现 Windows Server 2008 SP2 虽然有支持虚拟账户,在 IIS 7 的应用程序集区 [进阶设定] 窗口中也会看到 ApplicationPoolIdentity 的选项,但在档案总管中设定 NTFS 权限时却无法透过 [检查名称] 或 [Check Names] 按钮进行名称检查,因此你将无法透过 GUI 接口设定授权给虚拟帐户,只能透过 icacls 工具配置文件案或目录权限,使用范例如下:
  ‧设定 UploadFiles 目录授予 IIS AppPool\DefaultAppPool 虚拟帐户拥有完全控制(Full)权限
  icacls C:\Inetpub\wwwroot\UploadFiles /grant "IIS AppPool\DefaultAppPool":F
DSC0007.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-99205-1-1.html 上篇帖子: C# 操作iis (安装包操作IIS以及属性介绍) 下篇帖子: IIS World Wide Web Publishing Service (W3SVC)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表