跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 11.1 管理:安全服务 Oracle Solaris 11.1 Information Library (简体中文) |
10. Oracle Solaris 中的安全属性(参考信息)
运行 FTP 时如何使用带有 Kerberos 的通用安全服务
如何为 Active Directory 服务器配置 Kerberos 客户机
如何以 root 用户身份访问受 Kerberos 保护的 NFS 文件系统
如何自动续订所有票证授予票证 (Ticket-Granting Ticket, TGT)
如何手动将 Kerberos 数据库传播到从 KDC 服务器
NFS 服务使用 UNIX 用户 ID (user ID, UID) 标识用户,但不能直接使用 GSS 凭证。要将凭证转换为 UID,可能需要创建将用户凭证映射到 UNIX UID 的凭证表。有关缺省凭证映射的更多信息,请参见将 GSS 凭证映射到 UNIX 凭证。本节中的过程重点介绍配置 Kerberos NFS 服务器、管理凭证表以及对 NFS 挂载的文件系统启动 Kerberos 安全模式所需执行的任务。以下任务列表描述了本节所包含的任务。
表 21-2 配置 Kerberos NFS 服务器(任务列表)
|
此过程中使用以下配置参数:
领域名称 = EXAMPLE.COM
DNS 域名 = example.com
NFS 服务器 = denver.example.com
admin 主体 = kws/admin
开始之前
您必须承担 NFS 服务器上的 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
必须配置主 KDC 服务器。要完全测试此过程,需要多个客户机。
安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须与 KDC 服务器上的时间同步,最大时差不超过 krb5.conf 文件中 clockskew 关系定义的值。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。
请按照配置 Kerberos 客户机中的说明操作。
可以使用图形化 Kerberos 管理工具添加主体,如如何创建新的 Kerberos 主体所述。为此,必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。不过,以下示例说明如何使用命令行添加所需的主体。
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。
对系统上可能用于访问 NFS 数据的每个唯一接口重复此步骤。如果主机有多个接口都具有唯一名称,则每个唯一名称必须具有自己的 NFS 服务主体。
kadmin: addprinc -randkey nfs/denver.example.com Principal "nfs/denver.example.com" created. kadmin:
对步骤 a 中创建的每个唯一服务主体重复此步骤。
kadmin: ktadd nfs/denver.example.com Entry for principal nfs/denver.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs/denver.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs/denver.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal nfs/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
kadmin: quit
通常,Kerberos 服务生成 GSS 凭证与 UNIX UID 之间的适当映射。缺省映射在将 GSS 凭证映射到 UNIX 凭证中介绍。如果缺省映射不满足要求,请参见如何创建凭证表了解更多信息。
有关更多信息,请参见如何使用多种 Kerberos 安全模式设置安全的 NFS 环境。
NFS 服务器使用 gsscred 凭证表将 Kerberos 凭证映射到 UID。缺省情况下,主体名称的基本部分与 UNIX 登录名匹配。要使 NFS 客户机通过 Kerberos 验证从 NFS 服务器挂载文件系统,如果缺省映射不满足要求,则必须创建此表。
开始之前
您必须承担 NFS 服务器上的 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
将机制更改为 files。
# gsscred -m kerberos_v5 -a
gsscred 命令从 svc:/system/name-service/switch:default 服务的 passwd 项列出的所有源中收集信息。如果您希望凭证表中不包含本地口令项,可能需要临时删除 files 项。有关更多信息,请参见 gsscred(1M) 手册页。
开始之前
此过程要求已在 NFS 服务器上创建了 gsscred 表。有关说明,请参见如何创建凭证表。
您必须承担 NFS 服务器上的 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
# gsscred -m mech [ -n name [ -u uid ]] -a
定义要使用的安全机制。
定义用户的主体名称,如 KDC 中所定义。
定义用户的 UID,如口令数据库中所定义。
将 UID 添加到主体名称映射。
示例 21-3 向凭证表中添加多组成部分主体
在以下示例中,将为名为 sandy/admin 的主体添加一个项,该主体映射到 UID 3736。
# gsscred -m kerberos_v5 -n sandy/admin -u 3736 -a
示例 21-4 向凭证表中添加其他域中的主体
在以下示例中,将为名为 sandy/admin@EXAMPLE.COM 的主体添加一个项,该主体映射到 UID 3736。
# gsscred -m kerberos_v5 -n sandy/admin@EXAMPLE.COM -u 3736 -a
此过程提供使用同一个口令文件的领域之间的正确凭证映射。在此示例中,领域 CORP.EXAMPLE.COM 和 SALES.EXAMPLE.COM 使用同一个口令文件。bob@CORP.EXAMPLE.COM 和 bob@SALES.EXAMPLE.COM 的凭证映射到同一个 UID。
开始之前
您必须承担客户机系统上的 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
# cat /etc/krb5/krb5.conf [libdefaults] default_realm = CORP.EXAMPLE.COM . [realms] CORP.EXAMPLE.COM = { . auth_to_local_realm = SALES.EXAMPLE.COM . }
示例 21-5 在使用同一个口令文件的各领域之间映射凭证
此示例提供使用同一个口令文件的领域之间的正确凭证映射。在此示例中,领域 CORP.EXAMPLE.COM 和 SALES.EXAMPLE.COM 使用同一个口令文件。bob@CORP.EXAMPLE.COM 和 bob@SALES.EXAMPLE.COM 的凭证映射到同一个 UID。在客户机系统上,向 krb5.conf 文件中添加项。
# cat /etc/krb5/krb5.conf [libdefaults] default_realm = CORP.EXAMPLE.COM . [realms] CORP.EXAMPLE.COM = { . auth_to_local_realm = SALES.EXAMPLE.COM . }
故障排除
有关凭证映射问题故障排除过程的帮助信息,请参见观察从 GSS 凭证到 UNIX 凭证的映射。
通过此过程,NFS 服务器可以使用不同的安全模式或方式提供安全的 NFS 访问。客户机与 NFS 服务器协商安全模式时,将使用该客户机有权访问的服务器所提供的第一种模式。此模式用于该 NFS 服务器共享的文件系统的所有后续客户机请求。
开始之前
您必须承担 NFS 服务器上的 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
klist 命令报告是否存在密钥表文件并显示主体。如果结果显示不存在密钥表文件或者不存在 NFS 服务主体,则您需要确认是否已完成如何配置 Kerberos NFS 服务器中的所有步骤。
# klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------------------------------------------------------- 3 nfs/denver.example.com@EXAMPLE.COM 3 nfs/denver.example.com@EXAMPLE.COM 3 nfs/denver.example.com@EXAMPLE.COM 3 nfs/denver.example.com@EXAMPLE.COM
编辑 /etc/nfssec.conf 文件并删除位于 Kerberos 安全模式前面的 "#"。
# cat /etc/nfssec.conf . . # # Uncomment the following lines to use Kerberos V5 with NFS # krb5 390003 kerberos_v5 default - # RPCSEC_GSS krb5i 390004 kerberos_v5 default integrity # RPCSEC_GSS krb5p 390005 kerberos_v5 default privacy # RPCSEC_GSS
share -F nfs -o sec=mode file-system
指定共享文件系统时要使用的安全模式。使用多种安全模式时,会将列表中的第一种模式用作缺省模式。
定义要共享的文件系统的路径。
尝试从指定的文件系统访问文件的所有客户机都需要进行 Kerberos 验证。要访问文件,应验证 NFS 客户机上的用户主体。
如果不使用自动挂载程序访问文件系统或者可以接受安全模式的缺省选择,则无需执行此过程。
file-system auto_home -nosuid,sec=mode
或者,可以使用 mount 命令指定安全模式,但此替代方法不会利用自动挂载程序。
# mount -F nfs -o sec=mode file-system
示例 21-6 使用一种 Kerberos 安全模式共享文件系统
在此示例中,Kerberos 验证必须成功,才能通过 NFS 服务访问文件。
# share -F nfs -o sec=krb5 /export/home
示例 21-7 使用多种 Kerberos 安全模式共享文件系统
在此示例中,选择了所有三种 Kerberos 安全模式。客户机与 NFS 服务器协商决定使用哪种模式。如果命令中的第一种模式失败,即将尝试下一种。有关更多信息,请参见 nfssec(5) 手册页。
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home