跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 管理:安全服务 Oracle Solaris 11.1 Information Library (简体中文) |
10. Oracle Solaris 中的安全属性(参考信息)
运行 FTP 时如何使用带有 Kerberos 的通用安全服务
如何使用多种 Kerberos 安全模式设置安全的 NFS 环境
如何手动将 Kerberos 数据库传播到从 KDC 服务器
Kerberos 客户机包括网络上需要使用 Kerberos 服务的所有主机(不是 KDC 服务器)。本节介绍有关安装 Kerberos 客户机的过程,以及关于使用 root 验证来挂载 NFS 文件系统的特定信息。
以下任务列表涵盖有关设置 Kerberos 客户机的所有过程。每行都包含一个任务、关于执行该项任务的原因说明,以及指向该任务的链接。
|
此过程创建可在安装 Kerberos 客户机时使用的 kclient 配置文件。使用 kclient 配置文件可以降低键入错误的可能性。此外,与交互式过程相比,使用该配置文件可以减少用户干预。
kclient 配置文件样例与以下内容类似:
client# cat /net/denver.example.com/export/install/profile REALM EXAMPLE.COM KDC kdc1.example.com ADMIN clntconfig FILEPATH /net/denver.example.com/export/install/krb5.conf NFS 1 DNSLOOKUP none
开始之前
此过程使用安装配置文件。请参见如何创建 Kerberos 客户机安装配置文件。
要完成此任务,您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
要完成此过程,需要提供 clntconfig 主体的口令。
client# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
示例 21-8 使用命令行覆盖项自动配置 Kerberos 客户机
以下示例将覆盖在安装配置文件中设置的 DNSARG 和 KDC 参数。
# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile\ -d dns_fallback -k kdc2.example.com Starting client setup --------------------------------------------------- kdc1.example.com Setting up /etc/krb5/krb5.conf. Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> nfs/client.example.com entry ADDED to KDC database. nfs/client.example.com entry ADDED to keytab. host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE. client#
此过程使用 kclient 安装实用程序而非安装配置文件。在 Oracle Solaris 11 发行版中,kclient 实用程序不仅提高了易用性,也提高了与 Active Directory 服务器协作的能力。有关更多信息,请参见如何为 Active Directory 服务器配置 Kerberos 客户机。有关在早期版本上运行 kclient 的示例,请参见示例 21-10。
开始之前
要完成此任务,您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
需要提供以下信息:
Kerberos 领域名称
主 KDC 服务器主机名
KDC 从主机名
映射到本地领域的域
用于 Kerberos 验证的 PAM 服务名称和选项
如果此系统是一个未运行 Oracle Solaris 发行版的 KDC 服务器的客户机,则需要定义运行 KDC 的服务器类型。可用的服务器有:Microsoft Active Directory、MIT KDC 服务器、Heimdal KDC 服务器和 Shishi KDC 服务器。
如果将 DNS 用于 Kerberos 查找,需要输入您希望使用的 DNS 查找选项。有效的选项有:dns_lookup_kdc、dns_lookup_realm 和 dns_fallback。有关这些值的更多信息,请参见 krb5.conf(4) 手册页。
此信息将添加到 /etc/krb5/krb5.conf 配置文件中。
如果区域中存在从 KDC,则需要输入从 KDC 主机名。此信息用于在客户机配置文件中创建其他 KDC 项。
通常情况下不需要服务和主机密钥,除非客户机系统正在托管基于 Kerberos 的服务。
如果客户机是群集的成员,您需要提供该群集的逻辑名称。逻辑主机名可用于创建服务密钥,而后者是在群集中托管 Kerberos 服务所必需的。
此映射允许其他域存在于客户机的缺省领域。
当客户机使用 Kerberos 托管 NFS 服务时,需要创建 NFS 服务密钥。
这样,您可以设置哪个 PAM 服务使用 Kerberos 进行验证。您需要输入服务名称,以及一个标志来指示如何使用 Kerberos 验证。有效的标志选项包括:
first-首先使用 Kerberos 验证,并且当 Kerberos 验证失败时仅使用 UNIX
only-仅使用 Kerberos 验证
optional-有选择的使用 Kerberos 验证
借助此选项,可以指定在 kclient 的参数不足时,使用特定的配置信息。
示例 21-9 运行 kclient 安装实用程序
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Is this a client of a non-Solaris KDC ? [y/n]: n No action performed. Do you want to use DNS for kerberos lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Note, this system and the KDC's time must be within 5 minutes of each other for Kerberos to function. Both systems should run some form of time synchronization system like Network Time Protocol (NTP). Do you have any slave KDC(s) ? [y/n]: y Enter a comma-separated list of slave KDC host names: kdc2.example.com Will this client need service keys ? [y/n]: n No action performed. Is this client a member of a cluster that uses a logical host name ? [y/n]: n No action performed. Do you have multiple domains/hosts to map to realm ? [y/n]: y Enter a comma-separated list of domain/hosts to map to the default realm: engineering.example.com, \ example.com Setting up /etc/krb5/krb5.conf. Do you plan on doing Kerberized nfs ? [y/n]: y Do you want to update /etc/pam.conf ? [y/n]: y Enter a comma-separated list of PAM service names in the following format: service:{first|only|optional}: xscreensaver:first Configuring /etc/pam.conf. Do you want to copy over the master krb5.conf file ? [y/n]: n No action performed. --------------------------------------------------- Setup COMPLETE.
示例 21-10 在 Oracle Solaris 10 发行版中运行 kclient 安装实用程序
以下输出显示了 kclient 命令的运行结果。
client# /usr/sbin/kclient Starting client setup --------------------------------------------------- Do you want to use DNS for kerberos lookups ? [y/n]: n No action performed. Enter the Kerberos realm: EXAMPLE.COM Specify the KDC hostname for the above realm: kdc1.example.com Setting up /etc/krb5/krb5.conf. Enter the krb5 administrative principal to be used: clntconfig/admin Obtaining TGT for clntconfig/admin ... Password for clntconfig/admin@EXAMPLE.COM: <Type the password> Do you plan on doing Kerberized nfs ? [y/n]: n host/client.example.com entry ADDED to KDC database. host/client.example.com entry ADDED to keytab. Do you want to copy over the master krb5.conf file ? [y/n]: y Enter the pathname of the file to be copied: \ /net/denver.example.com/export/install/krb5.conf Copied /net/denver.example.com/export/install/krb5.conf. --------------------------------------------------- Setup COMPLETE ! #
此过程使用 kclient 安装实用程序而非安装配置文件。
开始之前
您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
client# sharectl set -p ddns_enable=true smb
-T 选项表示对 KDC 服务器类型的选择。在本例中,选择的是 Active Directory 服务器。
client# kclient -T ms_ad
缺省情况下,需要提供管理员主体的口令。
示例 21-11 使用 kclient 配置适用于 Active Directory 服务器的 Kerberos 客户机
以下输出显示了使用 ms_ad (Microsoft Active Directory) 服务器类型参数运行 kclient 命令的结果。此客户机将加入名为 EXAMPLE.COM 的 Active Directory 域。
client# /usr/sbin/kclient -T ms_ad Starting client setup --------------------------------------------------- Attempting to join 'CLIENT' to the 'EXAMPLE.COM' domain. Password for Administrator@EXAMPLE.COM: <Type the password> Forest name found: example.com Looking for local KDCs, DCs and global catalog servers (SVR RRs). Setting up /etc/krb5/krb5.conf Creating the machine account in AD via LDAP. --------------------------------------------------- Setup COMPLETE. #
此过程中使用以下配置参数:
领域名称 = EXAMPLE.COM
DNS 域名 = example.com
主 KDC = kdc1.example.com
从 KDC = kdc2.example.com
NFS 服务器 = denver.example.com
客户机 = client.example.com
admin 主体 = kws/admin
用户主体 = mre
联机帮助 URL = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
开始之前
您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
要从 Kerberos 缺省版本更改该文件,需要更改领域名称和服务器名称。还需要指定 gkadmin 帮助文件的路径。
kdc1 # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com } [domain_realm] .example.com = EXAMPLE.COM # # if the domain name and realm name are equivalent, # this entry is not needed # [logging] default = FILE:/var/krb5/kdc.log kdc = FILE:/var/krb5/kdc.log [appdefaults] gkadmin = { help_url = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
注 - 如果要限制加密类型,可以设置 default_tkt_enctypes 或 default_tgs_enctypes 行。请参阅使用 Kerberos 加密类型,了解关于限制加密类型的问题说明。
缺省情况下,Kerberos 领域到 KDC 的映射按如下顺序确定:
krb5.conf 中 realms 部分的定义
通过在 DNS 中查找 SRV 记录。
将 dns_lookup_kdc 或 dns_fallback 添加到 krb5.conf 文件的 libdefaults 部分,可以更改此行为。有关更多信息,请参见 krb5.conf(4) 手册页。请注意,始终会首先尝试引用。
缺省情况下,主机到领域的映射按如下顺序确定:
如果 KDC 支持引用,则 KDC 会通知客户机该主机属于哪个领域。
krb5.conf 文件中的 domain_realm 定义。
主机的 DNS 域名。
缺省领域。
将 dns_lookup_kdc 或 dns_fallback 添加到 krb5.conf 文件的 libdefaults 部分,可以更改此行为。有关更多信息,请参见 krb5.conf(4) 手册页。请注意,始终会首先尝试引用。
安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须与 KDC 服务器上的时间同步,最大时差不超过 krb5.conf 文件中 clockskew 关系定义的值。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。
可以使用图形化 Kerberos 管理工具添加主体,如如何创建新的 Kerberos 主体所述。为此,必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。不过,以下示例说明如何使用命令行添加所需的主体。
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
仅当尚未对与该主机关联的用户指定主体时,才需要创建用户主体。
kadmin: addprinc mre Enter password for principal mre@EXAMPLE.COM: <Type the password> Re-enter password for principal mre@EXAMPLE.COM: <Type it again> kadmin:
如果客户机需要具有对使用 NFS 服务挂载的远程文件系统的 root 访问权限,则必须执行此步骤。如果需要非交互式 root 访问权限(如以 root 身份运行 cron 作业),也必须执行该步骤。
如果客户机不需要对使用 NFS 服务挂载的远程文件系统的 root 访问权限,则可以跳过该步骤。root 主体应有两个组成部分,第二个部分是 Kerberos 客户机系统的主机名,以避免创建领域范围的 root 主体。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。
kadmin: addprinc -randkey root/client.example.com Principal "root/client.example.com" created. kadmin: ktadd root/client.example.com Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
远程访问服务使用 host 主体来提供验证。如果密钥表文件中尚无凭证,此主体允许 root 获取凭证。
kadmin: addprinc -randkey host/denver.example.com Principal "host/denver.example.com@EXAMPLE.COM" created. kadmin: ktadd host/denver.example.com Entry for principal host/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 host/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 host/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 host/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin:
仅当客户机需要使用 Kerberos 验证访问 NFS 文件系统时才需要执行该步骤。
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
编辑 /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
如未启用 svc:/network/dns/client:default 服务,请启用它。有关更多信息,请参见 resolv.conf(4) 手册页。
# svcadm restart network/rpc/gss
有关更多信息,请参见 warn.conf(4)手册页。
示例 21-12 使用非 Solaris KDC 设置 Kerberos 客户机
Kerberos 客户机可以设置为与非 Solaris KDC 一起工作。在这种情况下,必须在 /etc/krb5/krb5.conf 文件的 realms 部分中包括一行。该行会更改客户机与 Kerberos 口令更改服务器通信时使用的协议。该行的格式如下:
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com kpasswd_protocol = SET_CHANGE }
示例 21-13 主机和域名到 Kerberos 领域的映射的 DNS TXT 记录
@ IN SOA kdc1.example.com root.kdc1.example.com ( 1989020501 ;serial 10800 ;refresh 3600 ;retry 3600000 ;expire 86400 ) ;minimum IN NS kdc1.example.com. kdc1 IN A 192.146.86.20 kdc2 IN A 192.146.86.21 _kerberos.example.com. IN TXT "EXAMPLE.COM" _kerberos.kdc1.example.com. IN TXT "EXAMPLE.COM" _kerberos.kdc2.example.com. IN TXT "EXAMPLE.COM"
示例 21-14 Kerberos 服务器位置的 DNS SRV 记录
此示例分别为 KDC、admin 服务器和 kpasswd 服务器的位置定义记录。
@ IN SOA kdc1.example.com root.kdc1.example.com ( 1989020501 ;serial 10800 ;refresh 3600 ;retry 3600000 ;expire 86400 ) ;minimum IN NS kdc1.example.com. kdc1 IN A 192.146.86.20 kdc2 IN A 192.146.86.21 _kerberos._udp.EXAMPLE.COM IN SRV 0 0 88 kdc2.example.com _kerberos._tcp.EXAMPLE.COM IN SRV 0 0 88 kdc2.example.com _kerberos._udp.EXAMPLE.COM IN SRV 1 0 88 kdc1.example.com _kerberos._tcp.EXAMPLE.COM IN SRV 1 0 88 kdc1.example.com _kerberos-adm._tcp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com _kpasswd._udp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com
示例 21-15 配置 Solaris 客户机来使用多主 KDC
Microsoft Active Directory Kerberos 服务提供了一个在多个主服务器上运行的 KDC。要使 Solaris 客户机能够更新信息,需要对 /etc/krb5/krb5.conf 中的 admin_server 或 kpasswd_server 声明进行更新,以列出所有服务器。此示例显示了如何允许客户机在由 kdc1 与 kdc2 共享的 KDC 上更新信息。
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com admin_server = kdc2.example.com }
此过程禁用用于检查本地 /etc/krb5/krb5.keytab 文件中存储的主机主体的 KDC 是否即是颁发票证授予票证的 KDC 的安全检查。该检查目的在于防止 DNS 欺骗攻击。但是,对于某些客户机配置,主机主体可能不可用,因此需要禁用此项检查以允许客户机正常工作。以下是需要禁用此项检查的配置:
动态分配客户机 IP 地址。例如,DHCP 客户机。
客户机未配置为托管任何服务,所以没有创建主机主体。
未在客户机上储存主机密钥。
开始之前
您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
如果 verify_ap_req_nofail 选项设置为 false,则不会启用 TGT 验证过程。有关该选项的更多信息,请参见 krb5.conf(4) 手册页。
client # cat /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM verify_ap_req_nofail = false ...
注 - 可以在 krb5.conf 文件的 [libdefaults] 或 [realms] 部分中输入 verify_ap_req_nofail 选项。如果此选项位于 [libdefaults] 部分,则该设置用于所有领域。如果该选项位于 [realms] 部分,则该设置仅应用于所定义的领域。
通过此过程,客户机可以使用 root ID 特权访问要求 Kerberos 验证的 NFS 文件系统。特别是,使用如下选项共享 NFS 文件系统时:-o sec=krb5,root=client1.sun.com。
可以使用 GUI Kerberos 管理工具添加主体,如如何创建新的 Kerberos 主体所述。为此,必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。不过,以下示例说明如何使用命令行添加所需的主体。
denver # /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
此主体用于对要求 Kerberos 验证的 NFS 挂载的文件系统提供 root 等效访问权限。root 主体应有两个组成部分,第二个部分是 Kerberos 客户机系统的主机名,以避免创建领域范围的 root 主体。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。
kadmin: addprinc -randkey root/client.example.com Principal "root/client.example.com" created. kadmin:
如果添加了 root 主体,则必须执行此步骤,以便客户机对使用 NFS 服务挂载的文件系统具有 root 访问权限。如果需要非交互式 root 访问权限(如以 root 身份运行 cron 作业),也必须执行该步骤。
kadmin: ktadd root/client.example.com Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal root/client.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 主体的用户可以自动迁移到现有 Kerberos 领域。可以使用正在使用的服务的 PAM 框架,通过在 PAM 配置文件中将 pam_krb5_migrate 模块堆叠在该服务的验证栈中实现迁移。
在此示例中,将配置 gdm 和 other PAM 服务名称使其使用自动迁移。将使用以下配置参数:
领域名称 = EXAMPLE.COM
主 KDC = kdc1.example.com
托管迁移服务的计算机 = server1.example.com
迁移服务主体 = host/server1.example.com
开始之前
将 server1 设置为 EXAMPLE.COM 领域的 Kerberos 客户机。有关更多信息,请参见配置 Kerberos 客户机。
您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
server1 的 keytab 文件中的主机服务主体用于向主 KDC 服务器验证该服务器。
server1 # klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- ------------------------------------------------ 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM 3 host/server1.example.com@EXAMPLE.COM
# cat /etc/pam.d/gdm . . auth definitive pam_user_policy.so.1 auth requisite pam_authtok_get.so.1 auth required pam_dhkeys.so.1 auth sufficient pam_krb5.so.1 auth requisite pam_unix_auth.so.1 auth required pam_unix_cred.so.1 auth optional pam_krb5_migrate.so.1
可以将新建 Kerberos 帐户的口令截止时间设置为当前时间(现在),以便强制立即更改 Kerberos 口令。要将截止时间设置为当前时间,请将 expire_pw 选项添加到使用 pam_krb5_migrate 模块的行中。有关更多信息,请参见 pam_krb5_migrate(5) 手册页。
# cat /etc/pam.d/gdm . . auth optional pam_krb5_migrate.so.1 expire_pw
此添加操作使 Kerberos 中的口令失效,从而阻止访问。
# cat /etc/pam.d/other . . # # Default definition for Account management # Used when service name is not explicitly mentioned for account management # account requisite pam_roles.so.1 account definitive pam_user_policy.so.1 account required pam_krb5.so.1 account required pam_unix_account.so.1 account required pam_tsol_account.so.1 #
此添加操作使得口令在到期时得到更新。
# cat /etc/pam.d/other . . # # Default definition for Password management # password include pam_authtok_common password sufficient pam_krb5.so.1 password required pam_authtok_store.so.1
以下项将为所有用户(root 用户除外)授予对 host/server1.example.com 服务主体的迁移和查询特权。务必将不应被迁移的用户在 kadm5.acl 文件中以 U 特权列出。这些项必须位于 permit all 或 ui 项之前。有关更多信息,请参见 kadm5.acl(4) 手册页。
kdc1 # cat /etc/krb5/kadm5.acl host/server1.example.com@EXAMPLE.COM U root host/server1.example.com@EXAMPLE.COM ui * */admin@EXAMPLE.COM *
通过此步骤,kadmind 守护进程可以使用新的 kadm5.acl 项。
kdc1 # svcadm restart network/security/kadmin
通过以下项,kadmind 守护进程可以使用 k5migrate PAM 服务来验证需要迁移的帐户的 UNIX 用户口令。
# grep k5migrate /etc/pam.conf k5migrate auth required pam_unix_auth.so.1 k5migrate account required pam_unix_account.so.1
% /usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin:
在下面的示例中,add_policy 子命令用于创建名为 default 的策略。在 300 秒内的三次验证失败将触发 900 秒的帐户锁定。
kadmin: add_policy -maxfailure 3 -failurecountinterval "300 seconds"\ -lockoutduration "900 seconds" default
kadmin: quit
示例 21-16 解锁锁定的主体
在下面的示例中,将解锁用户主体:
/usr/sbin/kadmin -p kws/admin Enter password: <Type kws/admin password> kadmin: modify_principal -unlock principal
开始之前
您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限。
添加一个类似于以下内容的项,以在票证失效前 30 分钟续订 TGT,并且当续订成功或失败时,在用户终端上记录消息:
# cat /etc/krb5/warn.conf * renew:log terminal 30m
# svcadm restart network/security/ktkt_warn
示例 21-17 在服务器上配置 TGT 失效消息
以下示例显示了为 TGT 配置续订和消息系统的多种方法。
# cat /etc/krb5/warn.conf # # renew the TGT 30 minutes before expiration and send message to users terminal # gtb@EXAMPLE.COM renew:log terminal 30m # # send a warning message to a specific email address 20 minutes before TGT expiration # mre@EXAMPLE.COM mail 20m mre@example2.com # # renew the TGT 20 minutes before expiration and send an email message on failure # bricker@EXAMPLE.COM renew:log-failure mail 20m & # # catch-all: any principal not matched above will get an email warning * mail 20m &
示例 21-18 为用户配置 TGT 失效消息
除了在系统级别为每个用户配置一个项外,每个用户还可以配置一个名为 /var/user/$USER/krb-warn.conf 的单独的警告配置文件。例如:
% cat /var/user/gtb/krb-warn.conf gtb@EXAMPLE.COM renew:log mail 30m &