在 NFS 环境中,认证表示 NFS 服务器可以用来接受或拒绝 NFS 用户机安装 NFS 共享目录之要求的任何安全性机制。您可以为您的环境中的每个 NFS 共享和安装指定个别的认证设置。认证可以以计算器名称、网络群组和/或 DNS 网域为基础。
AUTH_SYS -- 用户的 UNIX uid 和 gid 在网络上不须经过加密(未加密的)通过,亦不须得到 NFS 服务器的授权。这是最简单的安全性方法,不需要额外的管理,并且是 Solaris NFS 版本 2 用户机和服务器使用的缺省。
AUTH_DES -- 使用分布和加密的公共和私人密钥数据库(类似 PGP)在用户和服务器之间产生安全性异动。这个方法仅在 NIS、NIS+ 和「安全 RPC」环境中得到支持。「数据加密标准」(DES)加密功能使用 56 位密钥来加密密钥。如果有两个具身份的用户(或主要人物)知道相同的 DES 密钥,他们可以私下通讯,并使用该密钥来编密和解密文字。
使用 DES 认证是以传送系统使用一般密钥加密当前时间(接收系统就可以解密和根据它当前的时间进行检查)的能力为基础的。请确定同步化用户机和服务器上的时间。
公共和私人密钥都保存在 NIS 或 NIS+ 数据库。 NIS 将那些密钥保存在 publickey 映射中,NIS+ 则将那些密钥保存在 cred 表中。这些文件包含所有潜在用户的公共和私人密钥。系统管理员必须负责设置 NIS 或 NIS+ 表并未每个用户产生共享密钥和私人密钥。私人密钥是用用户的口令加密保存的。这样就仅有该用户知道私人密钥。
AUTH_KERB -- Kerberos 是 Massachusetts Institute of Technology 开发的认证系统。Kerberos 使用 DES 加密(请参数上述的说明)在登录系统时认证用户。认证以传送系统使用一般密钥加密当前时间(接收系统就可以解密和根据它当前的时间进行检查)的能力为基础的。
Kerberos 是利用认证用户的登录口令作业的。用户输入 kinit 指令,此指令要求来自 Kerberos 服务器在该会话期间(或八小时,缺省的会话时间)有效的票。当用户注销时,就可以销毁该票(使用 kdestroy 指令)。
就像 AUTH_DES 认证一样,AUTH_KERB 仅受到 NIS、NIS+ 和「安全 RPC」环境的支持。和 AUTH_DES 不一样的是, AUTH_KERB 不是分布式系统 -- 也就是说,特定环境的所有认证数据都守护在一部计算器上。当那部计算器可能被镜像或备份,用户就必须让某个特定服务器认证。相比之下,在 AUTH_DES 的分布式模型中,数个认证服务器上都有认证表。
AUTH_NONE -- 空认证。使用 AUTH_NONE 的 NFS 用户机没有标识身份,所以是利用 NFS 服务器映射为匿名的用户 nobody。使用和 Solaris NFS 服务器用来共享文件系统不一样的安全性模式的用户机,其安全性模式会映射成 AUTH_NONE。 如果文件系统与 AUTH_NONE 共享,来自用户机的用户会映射到匿名的用户。AUTH_NONE 得到 NFS 共享的支持,但是不受到 NFS 安装或自动安装的支持。
认证是两部份的程序:NFS 服务器(也称为 NFS 主机)-- 共享目录的服务器 -- 必须支持某个特定的认证方法,而 NFS 用户机 -- 安装目录端 -- 必须经过配置以使用那个相同的方法。例如,要让用户机能够使用 AUTH_SYS 成功地安装目录,用户机和服务器都必须为 AUTH_SYS 配置才可以。
一般的 NFS 用户机认证设置 -- 基本上,用户机上定义的方法清单 -- 保存在用户机计算器上的 /etc/nfssec.conf 文件中。这些设置已经使用一个或数个远程认证服务器上的加密设置加以,特别是在使用 AUTH_DES 或 AUTH_KERB 时。
如果用户机或服务器没有经过配置以使用特定的方法,而用户机尝试使用该方法来安装共享的目录,该用户机就会以未认证者被处理。未认证用户机是根据您在「共享属性」对话框中的「高级」标记上指定的「用户 ID」(uid)被提供访问特权的。依照缺省,这个 uid 是 UID_NOBODY,通常仅可以提供非常有限的共享目录访问权。
您可以配置让 NFS 用户机和服务器使用多重认证方法。如果没有任何方法被指定的话,/etc/nfssec.conf 中指定的缺省方法(通常是 AUTH_SYS)就会自动被使用。
对于每个认证方法,「Solaris 管理主控台」的「安装」和「共享」工具都可以让您指定所有尝试用相同方法安装共享目录的用户机都会使用的缺省「只读」或「读/写」权限。例如,您可以为所有的 AUTH_SYS 用户机指定「读/写」,但是仅为所有的 AUTH_DES 用户机指定「只读」。缺省的访问特权以及缺省的例外,都可以在「增加共享目录」向导中的「高级」路径或「共享属性」对话框的「访问」标记上指定。
另外,您也可以为每个方法创建一个「自定访问清单」,此清单可以指定个别用户机类型的访问特权。在「安装」和「共享」工具中,您可以用「增加共享目录」向导中的「高级」路径或在「共享属性」对话框「访问」标记的「增加用户机」子对话框创建「自定访问清单」。
当您在「自定访问清单」增加用户机时,您使用的语法会决定增加的用户机类型。特别是:
主机名称 -- 主机(服务器)的名称。如果有服务器专为 nsswitch.conf hosts 项目中的 DNS 命名配置的话,任何服务器名称都必须以完全合格的 DNS 名称出现。
网络群组 -- 网络群组包含许多服务器的名称。如果有服务器专为 nsswitch.conf hosts 项目中的 DNS 命名配置的话,网络群组中的任何服务器名称都必须以完全合格的 DNS 名称出现。
DNS 后缀 -- 要使用网域成员资格,服务器必须使用 DNS 来将服务器名称解释成 IP 地址;也就使说,/etc/nsswitch.conf 文件中的hosts项目指定 dns 在 nis 或 nisplus 前面,因为仅有 DNS 会返回服务器的完整网域名称。其它像 NIS 或 NIS+ 之类的名称服务不可以用来在服务器上解释服务器名称,因为将 IP 地址映射到服务器时,它们不会返回网域信息。例如,在 NIS 或 NIS+ 中,IP 地址 129.144.45.9 可能只会被映射到 myserver,而在 DNS 中,相同的地址可能会被映射到 myserver.mydomain.mycompany.com。
DNS 后缀是前缀点与服务器名称和网络群组区分开的。例如,.mydomain.mycompany.com。一个点可以用来符合没有后缀的服务器名称。例如:
.
符合 mydomain 但是与 mydomain.mycompany.com 不符合。您可以使用此功能来符合通过 NIS 和 NIS+ 解释,而不是 DNS 解释的服务器。
网络 -- 网络或子网络元件的前面有(@)符号。它可以是名称或有点的地址。如果是名称,便会自动转换成有点的地址。例如:
@mynet
等于:
@129.144 或 @129.144.0.0
网络后缀认为八字节对齐的网络掩码是由地址低顺序部份中的零八字节决定的。如果网络前缀不是字节对齐的,语法就可以允许明确地在斜线(/)分隔符号后指定掩码长度。例如:
@mynet/17 或 rw=@129.144.132/17
在此,掩码是对应 IP 地址中,相连位最左边的数字。
前缀的减号(-)拒绝访问清单中某个项目的访问。此清单会依照顺序被寻找,直到找到授予或拒绝访问的相符项目,或到达清单的最后为止。例如,如果服务器 terra 在 engineering 网络群组之中,那麽:
-terra:engineering
拒绝访问 terra,但是:
engineering:-terra
则是授予 terra 的访问权。