如何处理安全类型未知的客户端
如果客户端的安全类型未在导出规则的访问参数中列出,您可以选择拒绝该客户端的访问,或在访问参数中使用 none 选项,将该客户端映射到匿名用户标识。
客户端的安全类型未在访问参数中列出的原因是,它使用另一种安全类型认证,或未认证(安全类型为 AUTH_NONE)。默认情况下,会自动拒绝此类客户端的访问。但是,可在访问参数中添加 none 选项。这样安全模式未列出的客户端将被映射到匿名用户标识。-anon 参数决定分配给这些客户端的用户标识。为 -anon 参数指定的用户标识必须为有效用户,为其配置的权限需适合匿名用户。
-anon 参数的有效值范围在 0 到 65535 之间。
分配给 -anon 的用户标识 | 对客户端访问请求的处理结果 |
---|---|
0 - 65533 | 客户端访问请求被映射到匿名用户标识,并获得为该用户配置的访问权限。 |
65534 | 客户端访问请求被映射到 nobody 用户,并获得为该用户配置的访问权限。这是默认设置。 |
65535 | 如果映射到此标识,且客户端的安全类型为 AUTH_NONE,将拒绝所有客户端的访问请求。 如果映射到此标识,且客户端为任何其他安全类型,将拒绝用户标识为 0 的客户端的访问请求。 |
只读包括 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 可使用自身的用户标识进行只读访问,但会拒绝其进行读写访问。