Sun 企业鉴别机制指南

配置 SEAM NFS 服务器

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 环境"

如何配置 SEAM NFS 服务器

本过程要求主 KDC 业已配置。如要全面测试本进程,您需要多个客户机。使用下列配置参数:

  1. 配置一个 SEAM NFS 服务器的先决条件。

    SEAM 客户机软件必须得到安装。

  2. 可选: 安装 NTP 客户机或其它的时钟同步机制。

    请参见 "使 KDC 和 SEAM 客户机之间时钟同步",了解关于 NTP 的信息。

  3. 启动 kadmin

    使用 SEAM 管理工具来添加一个授权对象,这在 "如何创建一个新的授权对象" 中有解释。下面的示例显示如何使用命令行来添加所要求的授权对象。您必须借助您在配置主 KDC 时所创建的 admin 授权对象名称中的一个进行登录。


    denver # /usr/krb5/sbin/kadmin -p kws/admin
    录入口令: <录入 kws/admin 口令>
    kadmin: 
    1. 创建服务器的NFS 服务授权对象。


      kadmin: addprinc -randkey nfs/denver.acme.com
      
      授权对象 "nfs/denver.acme.com" 被创建。 
      kadmin:
    2. 可选: 为 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: 
    3. 将服务器的 NFS 服务授权对象添加到服务器的密钥表。


      kadmin: ktadd nfs/denver.acme.com
      kadmin: 授权对象 nfs/denver.acme.com 的条目,
       kvno 为 3,加密类型为 DES-CBC-CRC 被添加到密钥表  
       WRFILE:/etc/krb5/krb5.keytab 
      kadmin: 退出
      
    4. 退出 kadmin


      kadmin: 退出
      
  4. 创建 gsscred 表。

    请参见 "如何创建一个资格表",了解更多的信息。

  5. 使用 Kerberos 安全模式来共享 NFS 文件系统。

    请参见 "如何设置一个带有多重 Kerberos 安全模式的安全 NFS 环境",了解更多的信息。

  6. 在每个客户机上: 鉴别用户和 root 授权对象两者。

    请参见 "设置 Root 鉴别来装配 NFS 文件系统",了解更多的信息。

如何更改 gsscred 表的后端机制

  1. 在 NFS 服务器上变为超级用户。

  2. 编辑 /etc/gss/gsscred.conf 并更改机制。

    可以使用下列后端机制之一: filesxfn_filesxfn_nisxfn_nisplusxfn。其中每个机制的优势 "使用gsscred 表" 得到论述。

如何创建一个资格表

gsscred 资格表被 NFS 服务器用于将 SEAM 授权对象映射到一个 UID。为了让 NFS 客户机能够使用 Kerberos 鉴别,从一个 NFS 服务器装配文件系统,必须创建该表或使之可用。

  1. 在适当的服务器上变为超级用户。

    您从哪个服务器运行该命令,以及您运行命令时所采用的 ID,取决于被选择用来支持 gsscred 表的后端机制。对于除 xfn_nisplus 之外的所有机制,您必须变为 root

    如果您的后端机制是 ... 

    则 ... 

    files

    在 NFS 服务器上运行 

    xfn

    基于默认的 xfn 文件设定,选择主机

    xfn_files

    在 NFS 服务器上运行 

    xfn_nis

    在 NIS 主 KDC 上运行 

    xfn_nisplus

    哪里可更改 NIS+ 数据,就可以在哪里运行。  

  2. 可选: 如果 /var/fn 不存在,而您想使用 xfn 选项中的一个,就请创建一个初始 XFN 数据库。


    # fnselect files# 
    fncreate -t org -o org//
    
  3. 使用 gsscred 来创建资格表。

    命令借助 /etc/nsswitch.conf 中的 passwd 条目,从列出的所有来源收集信息。您可能会需要暂时去除 files 条目,如果您就不想要本地口令条目包含在资格表中的话。请参见 gsscred(1M) 手册页,了解更多的信息。


    # gsscred -m kerberos_v5 -a
    

如何将单独一个条目添加到资格表

本过程要求 gsscred 表业已安装在 NFS 服务器上。

  1. 在一个 NFS 服务器上变为超级用户。

  2. 使用 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

如何设置一个带有多重 Kerberos 安全模式的安全 NFS 环境

  1. 在 NFS 服务器上变为超级用户。

  2. 编辑 /etc/dfs/dfstab 文件并将 sec= 选项连同所要求的安全模式添加到适当的条目。


    # share -F nfs -o [mode] [filesystem]
    

    mode

    共享时所要使用的安全模式。当使用多重安全模式时,列表中的第一个模式被 autofs 用作默认值。 

    filesystem

    到要共享的文件系统的路径。 

    试图从所命名的文件系统访问文件的所有的客户机,均要求 Kerberos 鉴别。如要完成访问文件,NFS 客户机上的用户授权对象和 root 授权对象两者均应得到鉴别。

  3. 检查以确保 NFS 服务正在服务器上运行。

    如果这是您启动过的第一个共享命令或第一套共享命令,则很有可能 NFS 守候程序没在运行。下面一套命令杀死各个守候程序并重新启动它们。


    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start
    
  4. 可选: 如果正在使用 autofs,则请编辑 auto_master 数据,选择默认值以外的一个安全模式。

    如果您并非使用 autofs 来访问文件系统,或者安全模式的默认选择可以接受,则您无需遵照执行本过程。


    /home	  auto_home  -nosuid,sec=krbi
  5. 可选: 手动发出 mount 命令,使用一个非默认的模式来访问文件系统。

    另外,您也可以使用 mount 命令来指定安全模式,但是这没有利用自动装配器:


    # mount -F nfs -o sec=krb5p /export/home
    

示例-共享一个带有一个 Kerberos 安全模式的文件系统

该示例要求 Kerberos 鉴别,然后才能访问文件。


# share -F nfs -o sec=krb5 /export/home

示例-共享一个带有多重 Kerberos 安全模式的文件系统

在本示例中,所有三个 Kerberos 安全模式均被选择。如果在进行一个装配请求时没有指定任何的安全模式,则在所有 NFS V3 客户机上使用所列出的第一个模式 (这样的话,就是 krb5)。附加信息可以 "对share 命令的变更" 在中找到。


# share -F nfs -o sec=krb5:krb5i:krb5p /export/home