导出策略如何在ONTAP中工作?
不可不使用
适用场景
ONTAP 9.
问题解答
导出策略
- 导出策略用于确定 在ONTAP中对NFS (以及可选的CIFS)卷的访问权限。
- 每个卷 都 与一个导出策略相关联。
- 每个 策略可以有多个规则。
- 每个策略必须至少具有一个有效规则才能授予访问权限。
- 如果导出策略没有导出策略规则、则会阻止对与其关联的任何卷进行访问。
- 新创建的SVM的默认策略没有导出策略规则、因此 在创建规则之前不允许访问数据。
- SVM中的每个卷都与一个
vserver's
导出策略相关联。默认情况下、它与vserver's
默认导出策略关联。 - 对卷的访问取决于与卷关联的导出策略中的导出策略规则。
- 访问卷不仅需要通过该卷的导出策略规则获得访问权限、而且还需要接合路径中的所有父卷。(因此、建议的SVM/Vserver根卷策略规则至少允许网络上客户端匹配为0.0.0.0/0的所有客户端进行读取访问。)
如果仅允许客户端通过与卷关联的策略进行访问、但接合路径中父卷的策略至少不允许此客户端进行读取访问、则此客户端仍将无法访问相关卷。
- 要查看每个卷关联的策略,请运行
volume show -fields policy
。
导出策略规则
- 每个规则都包括
- SVM
- 导出策略名称
- 应用此协议的客户端IP范围或地址
- 索引编号
- 只读规则
- 读写规则。
所需的规则标志如下:
- 客户端IP范围 - 客户端IP范围是特定地址或子网(如10.0.3.212或192.168.5.0/24)、主机名或网络组(如@netgroup)。如果要将导出策略应用于所有可能的IP4地址、请将客户端匹配设置为0.0.0.0/0。
- 索引编号 - 导出策略规则具有索引编号、并根据该编号从低到高逐个进行评估、 其中、第一条规则是使用适用场景a client IP。例如、如果某个导出策略的导出策略规则位于索引1、仅允许只读访问 192.168.0.0/16、则索引2或更高版本上的任何其他导出策略规则都会考虑 192.168.0.0/16范围内的IP地址或IP地址范围(例如子网192.168.5.0/24的读写规则) 不会产生任何影响。可以使用导出策略规则setindex命令更改规则索引。
- ro-Rule - ro-Rule指定要允许在 客户端匹配项中指定的相关客户端进行只读访问的安全模式。您可以使用逗号指定多种安全模式。RO 规则取代RW规则、因此、如果某个协议需要RW、则RO规则也必须包含RW。
选项:any -
包括 NTLM、 sys 和 krb5none -
none 是一个不常用的复杂选项、不应与never相混淆。(类似于none
7-模式导出规则)。见下文无一段。never -
指定任何客户端都不会获得只读访问权限krb5 -
指CIFS或NFS Kerberos身份验证ntlm -
指使用 NTLM 身份验证机制的CIFS客户端sys -
仅指 特定于NFS客户端的sys模式安全性
- RW -规则- RW-规则用于指定允许在 客户端匹配项中指定的相关客户端进行写入访问的安全模式。您可以使用逗号指定多种安全模式。RO 规则取代RW规则、因此、如果某个协议需要RW、则RO规则也必须包含RW。
选项:any
-
包括 NTLM、 sys 和 krb5none -
none 是一个不常用的复杂选项、不应与never相混淆。(类似于none
7-模式导出规则)。见下文无一段。never -
指定任何客户端都不会获得读写访问权限krb5 -
指CIFS或NFS Kerberos身份验证ntlm -
指使用 NTLM 身份验证机制的CIFS客户端sys -
仅指 特定于NFS客户端的sys模式安全性
可选规则标志如下:
- protocol —使用 协议 选项可以为CIFS 和NFS (以及不同版本的NFS)创建单独的规则。使用此选项、您可以为 子网配置一个CIFS访问规则、并为NFS配置另一个规则。例如,您可以允许 通过CIFS进行krb5写入访问,同时 通过NFS拒绝krb5访问,方法是为使用 krb5的不同协议设置一个单独的规则,使同一子网具有相同的子网。如果您不希望允许NFSv3、也可以强制进行NFSv4访问、反之亦然。
- anon — anon 选项用于设置anon用户的uid。
如果您希望在集群模式下输入NFS导出时root始终为root、请将超级用户设置为 sys (请参见下文)。如果要在RW或RO设置为security stylenone时将anon用户设置为与6554不同的uid 、请使用此anon选项。如果要完全阻止root访问(仍允许挂载)、可以将其设置为65535。 - superuser- 超级用户 选项允许您指定允许哪些安全模式的root用户保持root身份而不会强制转换为anon。您可以使用逗号指定多种安全模式。此选项优先于anon选项、因此此适用场景的任何客户端都将使其root用户保持root身份、即使anon设置为不同于0的值也是如此。
选项:any
-
包括 NTLM、sys 和 krb5none
-这是cDOT 8.2及更高版本中的默认设置。它会使root用户强制转换为anon值(默认值为6554)。。never -
这是cDOT 8.0和8.1中的默认设置、它会导致root用户强制转换为anon值(默认值6553)。此选项已在8.2中删除、因为它与none选项相同。krb5 -
指CIFS或NFS Kerberos身份验证。CIFS超级用户在集群模式中已弃用、但在某些情况下可能仍会使用。ntlm -
指使用 NTLM 身份验证机制的CIFS客户端。CIFS超级用户在集群模式中已弃用、但在某些情况下可能仍会使用。sys
-
仅指 特定于NFS客户端的sys模式安全性。这是禁用root强制转换的正确设置。
超级用户 选项可用于防止root用户对某些客户端变为匿名用户、同时仍允许anon设置应用于其他安全功能。除了上面的RO/RW安全性none示例之外、 对于anon=0、还可以使用它来区分krb5和sys: 如果要将NFS sys的root用户强制转换为匿名uid (如默认6554),但在 一条规则中将Kerberos NFS的root用户保留 为root,则可以将anon设置为6554,将superuser(超级用户)设置为 krb5。这样、只有在使用Kerberos身份验证时、root用户才会在输入导出时实际保持root用户身份。
这种情况非常少见、在大多数情况下、如果特定客户端匹配不需要root用户强制转换、则只需将super用户 设置为sys或sys、krb5即可。
对于RW和RO、"none"选项
指定对于所有尚未在此规则标志中指定的安全模式(如上所述、 可以使用逗号指定多种模式)、 访问的用户将获得匿名用户的ID。默认情况下、此ID为6554;但是、如果没有全局映射的ID、则可以使用 anon 选项进行更改。系统将根据用户映射到的UID的默认GID为此anon UID提供默认GID (此GID由vserver ns-switch设置中指定的名称服务确定、即使用本地unX-user和unX-group表或通过nis或LDAP名称服务确定)。当客户端通过NFS与RW进行通信并将ro设置为none时、客户端实际上不会共享任何UID或GID、这一点没有问题、因为集群会将所有用户映射到该anon uid
。这与 Data ONTAP 7-模式中的sec=none选项相对应。
要在ONTAP上创建导出规则、请参见 vserver导出策略规则创建
一个基本示例
如果对于默认策略、您希望通过sys和krb5对所有可能的客户端进行读写访问、并且不希望对任一协议执行root用户强制转换、则可以使用以下命令创建规则。
::> vserver export-policy rule create -policyname default -clientmatch 0.0.0.0/0 -rorule sys,krb5 -rwrule sys,krb5 -superuser sys,krb5
追加信息
不适用