在此过程中,将使用以下配置参数:
领域名称 = EXAMPLE.COM
DNS 域名 = example.com
主 KDC = kdc1.example.com
从 KDC = kdc2.example.com
客户机 = client.example.com
admin 主体 = kws/admin
用户主体 = mre
联机帮助 URL = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
调整该 URL 以指向“SEAM Administration Tool”部分,如SEAM Administration Tool 中的联机帮助 URL中所述。
成为超级用户。
编辑 Kerberos 配置文件 ( krb5.conf)。
要从 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://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956 |
如果要限制加密类型,可以设置 default_tkt_enctypes 或 default_tgs_enctypes 行。有关限制加密类型涉及的问题的说明,请参阅使用 Kerberos 加密类型。
(可选的)更改用于定位 KDC 的过程。
缺省情况下,使用主机和域名到 kerberos 领域的映射定位 KDC。可以通过将 dns_lookup_kdc、dns_lookup_realm 或 dns_fallback 添加到 krb5.conf 文件的 libdefaults 部分来更改此行为。有关更多信息,请参见 krb5.conf(4) 手册页。
(可选的)使用 NTP 或其他时钟同步机制将客户机时钟与主 KDC 时钟同步。
安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必需。但是,要成功验证,每个时钟必须处于 krb5.conf 文件的 libdefaults 部分中定义的缺省时间内。有关 NTP 的信息,请参见同步 KDC 和 Kerberos 客户机的时钟。
启动 kadmin。
可以使用 SEAM Administration Tool 添加主体,如如何创建新的 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: |
(可选的)创建 root 主体。
如果客户机不要求对使用 NFS 服务挂载的远程文件系统拥有 root 访问权限,则可以跳过此步骤。为了避免创建领域范围的 root 主体,root 主体应是由两个部分组成的主体(第二个组成部分为 Kerberos 客户机系统的主机名)。请注意,主体实例为主机名时,无论 /etc/resolv.conf 文件中的域名是大写还是小写,都必须以小写字母指定 FQDN。
kadmin: addprinc -randkey root/client.example.com Principal "root/client.example.com" created. kadmin: |
创建 host 主体。
host 主体用于验证应用程序。
kadmin: addprinc -randkey host/denver.example.com Principal "host/denver.example.com@EXAMPLE.COM" created. kadmin: |
(可选的)将服务器的 NFS 服务主体添加到服务器的密钥表文件中。
仅当客户机需要使用 Kerberos 验证访问 NFS 文件系统时,才需要执行此步骤。
kadmin: ktadd nfs/denver.example.com 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: |
(可选的)将 root 主体添加到服务器的密钥表文件中。
如果添加了 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-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 主体添加到服务器的密钥表文件中。
kadmin: ktadd host/denver.example.com 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: |
退出 kadmin。
kadmin: quit |
(可选的)要在 NFS 上使用 Kerberos,请在 /etc/nfssec.conf 文件中启用 Kerberos 安全模式。
编辑 /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 |
如果希望客户机自动更新 TGT 或者向用户发出有关 Kerberos 票证失效的警告,请在 /etc/krb5/warn.conf 文件中创建相应的项。
有关更多信息,请参见 warn.conf(4) 手册页。
可以设置 Kerberos 客户机,使其与非 Kerberos KDC 协同工作。在此情况下,必须在 realms 部分的 /etc/krb5/krb5.conf 文件中包括一行。该行更改客户机与 Kerberos 口令更改服务器通信时要使用的协议。该行的格式如下:
[realms] EXAMPLE.COM = { kdc = kdc1.example.com kdc = kdc2.example.com admin_server = kdc1.example.com kpasswd_protocol = SET_CHANGE } |
@ 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" |
此示例定义主 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 kdc1.example.com _kerberos-adm._udp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com _kpasswd._udp.EXAMPLE.COM IN SRV 0 0 749 kdc1.example.com |