跳到主要内容

如何处理安全类型未知的客户端

如果客户端的安全类型未在导出规则的访问参数中列出,您可以选择拒绝该客户端的访问,或在访问参数中使用 none 选项,将该客户端映射到匿名用户标识。

客户端的安全类型未在访问参数中列出的原因是,它使用另一种安全类型认证,或未认证(安全类型为 AUTH_NONE)。默认情况下,会自动拒绝此类客户端的访问。但是,可在访问参数中添加 none 选项。这样安全模式未列出的客户端将被映射到匿名用户标识。-anon 参数决定分配给这些客户端的用户标识。为 -anon 参数指定的用户标识必须为有效用户,为其配置的权限需适合匿名用户。

-anon 参数的有效值范围在 065535 之间。

分配给 -anon 的用户标识对客户端访问请求的处理结果
0 - 65533 客户端访问请求被映射到匿名用户标识,并获得为该用户配置的访问权限。
65534 客户端访问请求被映射到 nobody 用户,并获得为该用户配置的访问权限。这是默认设置。
65535 如果映射到此标识,且客户端的安全类型为 AUTH_NONE,将拒绝所有客户端的访问请求。

如果映射到此标识,且客户端为任何其他安全类型,将拒绝用户标识为 0 的客户端的访问请求。

如果使用 none 选项,请务必注意,只读参数会首先处理。为安全类型未列出的客户端配置导出规则时,请遵循以下准则:
只读包括 none读写包括 none安全类型未列出的客户端的访问权限
拒绝
拒绝,因为首先处理只读
作为匿名只读
作为匿名读写

示例

导出策略中包含一个导出规则和以下参数:

  • -protocol nfs3
  • -clientmatch 10.1.16.0/255.255.255.0
  • -rorule sys,none
  • -rwrule any
  • -anon 70

客户端 1 的 IP 地址为 10.1.16.207,使用 NFSv3 协议发送访问请求,并使用 Kerberos v5 认证过。

客户端 2 的 IP 地址为 10.1.16.211,使用 NFSv3 协议发送访问请求,并使用 AUTH_SYS 认证过。

客户端 #3 的 IP 地址为 10.1.16.234,使用 NFSv3 协议发送访问请求,未认证(即安全类型为 AUTH_NONE)。

客户端访问协议和 IP 地址与三个客户端均匹配。只读参数允许客户端使用自身的用户标识(利用 AUTH_SYS 进行认证)进行只读访问。只读参数允许使用任何其他安全类型认证的客户端作为匿名用户(用户标识为 70)进行只读访问。读写参数允许任何安全类型的读写访问,但在这种情况下仅适用于已由只读规则筛选出的客户端。

因此,客户端 #1 和 #3 只能作为匿名用户(用户标识为 70)进行读写访问。客户端 #2 可使用自身的用户标识进行读写访问。

示例

导出策略中包含一个导出规则和以下参数:

  • -protocol nfs3
  • -clientmatch 10.1.16.0/255.255.255.0
  • -rorule sys,none
  • -rwrule none
  • -anon 70

客户端 1 的 IP 地址为 10.1.16.207,使用 NFSv3 协议发送访问请求,并使用 Kerberos v5 认证过。

客户端 2 的 IP 地址为 10.1.16.211,使用 NFSv3 协议发送访问请求,并使用 AUTH_SYS 认证过。

客户端 #3 的 IP 地址为 10.1.16.234,使用 NFSv3 协议发送访问请求,未认证(即安全类型为 AUTH_NONE)。

客户端访问协议和 IP 地址与三个客户端均匹配。只读参数允许客户端使用自身的用户标识(利用 AUTH_SYS 进行认证)进行只读访问。只读参数允许使用任何其他安全类型认证的客户端作为匿名用户(用户标识为 70)进行只读访问。读写参数仅允许作为匿名用户进行读写访问。

因此,客户端 #1 和客户端 #3 只能作为匿名用户(用户标识为 70)进行读写访问。客户端 #2 可使用自身的用户标识进行只读访问,但会拒绝其进行读写访问。