凌峰创科服务平台

iis网站访问权限如何正确设置?

核心概念:IIS 权限的三个层次

在 IIS 中,网站的访问权限是分层设置的,理解这三个层次至关重要:

iis网站访问权限如何正确设置?-图1
(图片来源网络,侵删)
  1. 文件系统权限 (NTFS 权限):这是最底层、最安全的权限,它直接控制 Windows 操作系统级别的用户或用户组对网站文件夹和文件的访问能力。无论 IIS 如何设置,如果用户没有 NTFS 权限,就无法访问文件。
  2. IIS 网站级别权限:这是在 IIS 管理器中设置的权限,位于“功能视图” -> “请求筛选” -> “编辑功能设置”中,它控制一些基本的 Web 服务行为,如是否允许执行脚本、是否允许读取文件内容等。
  3. IIS 授权规则:这是最灵活、最精细的权限控制层,它位于“功能视图” -> “授权规则”中,你可以基于 URL、文件、HTTP 方法(如 GET, POST)以及用户/角色来创建允许或拒绝的规则,这些规则会覆盖 NTFS 权限和网站级别权限。

最佳实践建议优先使用 NTFS 权限进行基础设置,然后使用 IIS 授权规则进行更精细化的控制。


详细设置步骤

假设我们要设置一个名为 MyWebSite 的网站,其物理路径是 C:\inetpub\wwwroot\MyWebSite

第 1 步:设置 NTFS 文件系统权限

这是最基础的一步,决定了谁能在操作系统层面访问你的网站文件。

  1. 找到网站文件夹:在文件资源管理器中导航到你的网站物理路径,C:\inetpub\wwwroot\MyWebSite

    iis网站访问权限如何正确设置?-图2
    (图片来源网络,侵删)
  2. 右键点击文件夹 -> 属性

  3. 切换到 “安全” 选项卡。

  4. 添加用户/组

    • 点击 “编辑”,然后点击 “添加”
    • 在输入框中输入用户名或用户组,对于大多数网站,推荐使用 IIS_IUSRS 这个特殊的内置组,它代表了 IIS 的工作进程账户。
    • 点击 “检查名称”,如果找到会下划线显示,然后点击 “确定”
  5. 分配权限

    • 在组或用户名列表中,选中你刚刚添加的 IIS_IUSRS
    • 在下方的“权限”列表中,勾选允许的权限。
      • 读取:最基本的权限,允许用户查看文件(如 HTML、图片)。必须勾选。
      • 列出目录:允许用户浏览目录,如果目录下没有默认文档(如 index.html),会显示文件列表,通常建议勾选。
      • 写入:允许用户修改或创建文件。对于静态网站,不要勾选! 对于需要用户上传文件的网站(如博客、论坛),才需要勾选。
      • 读取和执行:通常与“读取”一起勾选,允许运行脚本(如 ASP.NET, PHP)。
      • 修改:比“写入”权限更高,允许删除和修改文件,一般不需要。
      • 完全控制:拥有所有权限。极其危险,请谨慎使用!

    推荐配置

    • 静态网站/只读内容IIS_IUSRS 用户只勾选 “读取”“读取和执行”
    • 允许用户上传IIS_IUSRS 用户勾选 “读取”“读取和执行”“写入”

第 2 步:设置 IIS 网站级别权限

这一步控制 IIS 处理请求的方式。

  1. 打开 IIS 管理器:可以通过服务器管理器 -> 工具 -> Internet Information Services (IIS) 管理器 打开。

  2. 选择你的网站:在左侧“连接”窗格中,展开服务器节点,然后点击你的网站(如 MyWebSite)。

  3. 打开请求筛选设置:在中间的“功能视图”中,找到并双击 “请求筛选”

  4. 编辑功能设置:在右侧的“操作”窗格中,点击 “编辑功能设置...”

  5. 配置权限

    • :默认勾选,表示允许读取文件内容,如果取消勾选,用户将无法访问任何文件。
    • 脚本:默认勾选,表示允许执行脚本(.asp, .aspx, .php 等),如果取消勾选,脚本文件将作为纯文本返回。
    • 执行:默认勾选,表示允许执行程序(如 .exe, .dll),如果只需要运行脚本而不执行程序,可以取消勾选。
    • 忽略跟踪斜杠:默认勾选,可以忽略 URL 末尾的 。

    推荐配置:对于大多数网站,保持默认设置即可。

第 3 步:配置身份验证和授权规则

这是实现“谁能访问”的核心部分,这里我们重点讲解最常用的两种身份验证方式。

1 身份验证

身份验证是“你是谁?”的过程,决定用户如何证明自己的身份。

  1. 在 IIS 管理器中选择你的网站。

  2. 在“功能视图”中,双击 “身份验证”

  3. 你会看到以下几种身份验证方式:

    • 匿名身份验证:最常见的方式,任何用户都可以访问网站,无需提供用户名和密码,IIS 会使用一个内置的账户(通常是 IUSR)来代表匿名用户访问文件。确保 NTFS 权限中 IUSRIIS_IUSRS 有“读取”权限。
    • 基本身份验证:浏览器会弹出登录框,要求输入用户名和密码,密码是 Base64 编码传输的,不安全,除非配合 SSL/TLS (HTTPS) 使用。
    • Windows 身份验证:使用 Windows 的用户账户进行验证,适用于企业内网,安全性高,但配置稍复杂。
    • 摘要式身份验证:比基本认证安全,密码经过哈希处理,但也需要配合 SSL/TLS。
    • .NET Passport 身份验证:一种已过时的微软账户认证方式。

    如何启用

    • 匿名访问:直接右键点击 “匿名身份验证” -> “启用”
    • 需要登录访问:禁用“匿名身份验证”,然后启用“基本身份验证”或“Windows 身份验证”。

2 授权规则

授权是“你被允许做什么?”的过程,基于身份验证的结果来允许或拒绝访问。

  1. 在 IIS 管理器中选择你的网站。

  2. 在“功能视图”中,双击 “授权规则”

  3. 默认情况下,可能会有一条规则 允许所有用户,这是匿名访问的根源。

    拒绝匿名用户,只允许特定用户访问

    1. 在右侧“操作”窗格中,点击 “添加允许/拒绝规则...”
    2. 选择 “拒绝”
    3. 角色:选择 “特定用户”
    4. 在输入框中输入要拒绝的用户名或组,ANONYMOUS LOGON (代表所有匿名用户)。
    5. 点击 “确定”
    6. (可选)再添加一条 “允许” 规则,指定允许访问的用户,adminAdministrators 组。

    只允许匿名用户访问特定文件夹,其他文件夹需要登录

    1. 确保网站的“匿名身份验证”是启用的。
    2. 在“授权规则”中,右键点击空白处,选择 “添加允许/拒绝规则...”
    3. 选择 “允许”
    4. 角色:选择 “所有用户”
    5. 路径:点击右侧的 按钮,选择需要允许匿名访问的文件夹,C:\inetpub\wwwroot\MyWebSite\public
    6. 点击 “确定”
    7. 这样,public 文件夹及其子文件夹下的内容可以被匿名访问,而网站根目录下的其他文件(如 admin 文件夹)则需要身份验证(需要你在其他地方配置)。

总结与最佳实践

| 权限类型

分享:
扫描分享到社交APP
上一篇
下一篇