NFS 服务使用 UNIX UID 来识别一个用户,而无法直接使用授权对象。如要将授权对象翻译为一个 UID,则必须创建一个将用户授权对象映射到 UNIX UID 的资格表。下面的过程着重讨论配置一个 SEAM NFS 服务器,管理资格表以及为 NFS 装配的文件系统初始 Kerberos 安全模式所必需的任务。下表描述本节中所论述的任务。
表 3-3 配置 SEAM NFS 服务器任务图
任务 |
描述 |
如要了解操作指示,请转到 ... |
---|---|---|
配置一个 SEAM NFS 服务器 | 用来使一个服务器能够共享一个要求 Kerberos 鉴别的文件系统的步骤。 | "如何配置 SEAM NFS 服务器" |
更改资格表的后端机制 | 用来定义 gsscred 所使用的后端机制的步骤。. | "如何更改 gsscred 表的后端机制" |
创建一个资格表 | 用来生成一个资格表的步骤。 | "如何创建一个资格表" |
如何对将用户授权对象映射到 UNIX UID 的资格表进行更改。 | 用来更新资格表中的信息的步骤。 | "如何将单独一个条目添加到资格表" |
借助 Kerberos 鉴别来共享一个文件系统 | 用来共享一个带有安全模式的文件系统,从而要求 Kerberos 鉴别的步骤。 | "如何设置一个带有多重 Kerberos 安全模式的安全 NFS 环境" |
本过程要求主 KDC 业已配置。如要全面测试本进程,您需要多个客户机。使用下列配置参数:
区域名 = ACME.COM
DNS 域名 = acme.com
NFS 服务器 = denver.acme.com
admin principle = kws/admin
配置一个 SEAM NFS 服务器的先决条件。
SEAM 客户机软件必须得到安装。
可选: 安装 NTP 客户机或其它的时钟同步机制。
请参见 "使 KDC 和 SEAM 客户机之间时钟同步",了解关于 NTP 的信息。
启动 kadmin。
使用 SEAM 管理工具来添加一个授权对象,这在 "如何创建一个新的授权对象" 中有解释。下面的示例显示如何使用命令行来添加所要求的授权对象。您必须借助您在配置主 KDC 时所创建的 admin 授权对象名称中的一个进行登录。
denver # /usr/krb5/sbin/kadmin -p kws/admin 录入口令: <录入 kws/admin 口令> kadmin: |
创建服务器的NFS 服务授权对象。
kadmin: addprinc -randkey nfs/denver.acme.com 授权对象 "nfs/denver.acme.com" 被创建。 kadmin: |
可选: 为 NFS 服务器创建一个 root 授权对象。
kadmin: addprinc root/denver.acme.com 录入授权对象 root/denver.acme.com@ACME.COM 的口令: <键入口令> 重新录入授权对象 root/denver.acme.com@ACME.COM 的口令: <再次将其键入> 授权对象 "root/denver.acme.com@ACME.COM" 被创建。 kadmin: |
将服务器的 NFS 服务授权对象添加到服务器的密钥表。
kadmin: ktadd nfs/denver.acme.com kadmin: 授权对象 nfs/denver.acme.com 的条目, kvno 为 3,加密类型为 DES-CBC-CRC 被添加到密钥表 WRFILE:/etc/krb5/krb5.keytab kadmin: 退出 |
退出 kadmin
kadmin: 退出 |
创建 gsscred 表。
请参见 "如何创建一个资格表",了解更多的信息。
使用 Kerberos 安全模式来共享 NFS 文件系统。
请参见 "如何设置一个带有多重 Kerberos 安全模式的安全 NFS 环境",了解更多的信息。
在每个客户机上: 鉴别用户和 root 授权对象两者。
请参见 "设置 Root 鉴别来装配 NFS 文件系统",了解更多的信息。
在 NFS 服务器上变为超级用户。
编辑 /etc/gss/gsscred.conf 并更改机制。
可以使用下列后端机制之一: files、xfn_files、xfn_nis、xfn_nisplus或 xfn。其中每个机制的优势 "使用gsscred 表" 得到论述。
gsscred 资格表被 NFS 服务器用于将 SEAM 授权对象映射到一个 UID。为了让 NFS 客户机能够使用 Kerberos 鉴别,从一个 NFS 服务器装配文件系统,必须创建该表或使之可用。
在适当的服务器上变为超级用户。
您从哪个服务器运行该命令,以及您运行命令时所采用的 ID,取决于被选择用来支持 gsscred 表的后端机制。对于除 xfn_nisplus 之外的所有机制,您必须变为 root。
如果您的后端机制是 ... |
则 ... |
---|---|
files |
在 NFS 服务器上运行 |
xfn |
基于默认的 xfn 文件设定,选择主机 |
xfn_files |
在 NFS 服务器上运行 |
xfn_nis |
在 NIS 主 KDC 上运行 |
xfn_nisplus |
哪里可更改 NIS+ 数据,就可以在哪里运行。 |
可选: 如果 /var/fn 不存在,而您想使用 xfn 选项中的一个,就请创建一个初始 XFN 数据库。
# fnselect files# fncreate -t org -o org// |
使用 gsscred 来创建资格表。
命令借助 /etc/nsswitch.conf 中的 passwd 条目,从列出的所有来源收集信息。您可能会需要暂时去除 files 条目,如果您就不想要本地口令条目包含在资格表中的话。请参见 gsscred(1M) 手册页,了解更多的信息。
# gsscred -m kerberos_v5 -a |
本过程要求 gsscred 表业已安装在 NFS 服务器上。
在一个 NFS 服务器上变为超级用户。
使用 gsscred 来将一个条目添加到表。
# gsscred -m [mech] -n [name] -u [uid] -a |
mech |
要使用的安全机制。 |
name |
用户的授权对象名称,如 KDC 中所定义的。 |
uid |
用户的 UID,如口令数据库中所定义的。 |
-a |
将 UID 添加到授权对象名称映射。 |
下列示例为名为 sandy 的用户添加一个条目,该条目被映射到 UID 3736。 UID 如果没有包括在命令行上的话,就从口令文件进行抽取。
# gsscred -m kerberos_v5 -n sandy -u 3736 -a |
在 NFS 服务器上变为超级用户。
编辑 /etc/dfs/dfstab 文件并将 sec= 选项连同所要求的安全模式添加到适当的条目。
# share -F nfs -o [mode] [filesystem] |
mode |
共享时所要使用的安全模式。当使用多重安全模式时,列表中的第一个模式被 autofs 用作默认值。 |
filesystem |
到要共享的文件系统的路径。 |
试图从所命名的文件系统访问文件的所有的客户机,均要求 Kerberos 鉴别。如要完成访问文件,NFS 客户机上的用户授权对象和 root 授权对象两者均应得到鉴别。
检查以确保 NFS 服务正在服务器上运行。
如果这是您启动过的第一个共享命令或第一套共享命令,则很有可能 NFS 守候程序没在运行。下面一套命令杀死各个守候程序并重新启动它们。
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
可选: 如果正在使用 autofs,则请编辑 auto_master
数据,选择默认值以外的一个安全模式。
如果您并非使用 autofs 来访问文件系统,或者安全模式的默认选择可以接受,则您无需遵照执行本过程。
/home auto_home -nosuid,sec=krbi |
可选: 手动发出 mount 命令,使用一个非默认的模式来访问文件系统。
另外,您也可以使用 mount 命令来指定安全模式,但是这没有利用自动装配器:
# mount -F nfs -o sec=krb5p /export/home |
该示例要求 Kerberos 鉴别,然后才能访问文件。
# share -F nfs -o sec=krb5 /export/home |
在本示例中,所有三个 Kerberos 安全模式均被选择。如果在进行一个装配请求时没有指定任何的安全模式,则在所有 NFS V3 客户机上使用所列出的第一个模式 (这样的话,就是 krb5)。附加信息可以 "对share 命令的变更" 在中找到。
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |