AIX中的网络应用程序(例如,telnet,FTP和rlogin,rsh,rcp等r命令)固有地支持Kerberos认证。 管理员所需要做的就是安装和配置Kerberos并配置AIX系统(进而是其应用程序)以使用该Kerberos设置进行身份验证。 Kerberos身份验证意味着,一旦您拥有有效的Kerberos票证(通过手动的/usr/krb5/bin/kinit或集成登录名获得),网络应用程序便可以将此票证用作您的身份验证令牌,并且一旦成功进行身份验证,系统将为您提供无需输入密码即可访问。
为了启用Kerberos认证,在Kerberos前端以及AIX系统上需要一些通用的基本配置。 让我们浏览一下它们。
有关IBM NAS服务器以及客户机安装和配置的完整说明,请参阅AIX版本5.3扩展包CD随附的《 IBM NAS版本1.4管理指南》 。
对于本文中的示例,我引用了一个示例Kerberos环境。 图1显示了环境和信息的逻辑流。
本文通篇使用以下定义: Kerberos管理员名称: 管理员/管理员 Kerberos领域名称: ISL.IN.IBM.COM IBM NAS 1.4.0.7主KDC: 主机名:land.in.ibm.com端口:88 操作系统:AIX 5.3 IBM NAS 1.4.0.7管理服务器: 主机名:land.in.ibm.com端口:749 操作系统:AIX 5.3 IBM NAS 1.4.0.7客户端: 主机名:fakir.in.ibm.com 操作系统:AIX 6.1 运行telnet服务的机器: 主机名:fsaix005.in.ibm.com端口:23 操作系统:AIX 5.3 运行FTP服务的机器: 主机名:fsaix005.in.ibm.com端口:21 操作系统:AIX 5.3
检查并同步所有机器之间的时间差; 不应超过5分钟。 要检查Kerberos配置的正确性,请使用'/usr/krb5/bin/kinit admin/admin' ,然后使用'/usr/krb5/bin/klist' ,查看是否能够获取Kerberos票证,然后使用'/usr/krb5/sbin/kadmin -p admin/admin'以检查所有内容(时差等)是否正确。
为了确保所有网络应用程序先于标准的基于密码的身份验证尝试Kerberos身份验证,管理员需要在所有AIX机器上更改身份验证方法的首选项。
'/usr/bin/lsauthent'命令显示当前的身份验证模式首选项。
bash-2.05b# /usr/bin/lsauthent Standard Aix要更改身份验证模式首选项,请使用'/usr/bin/chauthent'命令。
bash-2.05b# /usr/bin/chauthent -k5 -std现在, '/usr/bin/lsauthent'将显示如下内容:
bash-2.05b# /usr/bin/lsauthent Kerberos 5 Standard Aix确保保留标准的基于密码的身份验证方法(上述-std)作为后备身份验证方法,否则,如果未启用正确的Kerberos登录,则将无法登录系统。
在Kerberos环境中,每个Kerberos服务均由服务主体表示。 该服务主体不过是普通的Kerberos主体,后者拥有解密Kerberos服务器发送的响应的密钥。 同样对于telnet服务,您将需要创建telnet服务主体并在telnet服务器上执行一些配置步骤。
使用以下分步过程为telnet服务配置Kerberos。
如果已经使用'mkkrb5clnt'命令配置了Kerberos客户端,则无需执行步骤1和'mkkrb5clnt'命令创建了主机服务主体并将其存储在/var/krb5/security/keytab/<hostname>.keytab文件。 将此文件链接到默认的keytab文件/etc/krb5/krb5.keytab 。
在运行telnet服务的机器上(fsaix005.in.ibm.com),使用名称“ host / <FQDN_telnetd_hostname>”创建telnet服务主体。 对于我们来说,它将是“ host / fsaix005.in.ibm.com”。使用完全限定域名(FQDN)对于此设置非常重要。
bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# kadmin -p admin/admin Authenticating as principal admin/admin with password. Password for admin/admin@ISL.IN.IBM.COM: kadmin: addprinc -randkey host/fsaix005.in.ibm.com WARNING: no policy specified for host/fsaix005.in.ibm.com@ISL.IN.IBM.COM; defaulting to no policy. Note that policy may be overridden by ACL restrictions. Principal "host/fsaix005.in.ibm.com@ISL.IN.IBM.COM" created. 将telnet服务主体添加到keytab文件(/etc/krb5/krb5.keytab)。 kadmin: ktadd host/fsaix005.in.ibm.com Entry for principal host/fsaix005.in.ibm.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/fsaix005.in.ibm.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/fsaix005.in.ibm.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/fsaix005.in.ibm.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin: q bash-2.05b#如果由于某种原因而无法执行“ kadmin”,则在KDC上创建服务主体,然后将其添加到keytab文件(/etc/krb5/krb5.keytab)中,并将此keytab文件传输到运行telnetd的计算机上( fsaix005.in.ibm.com,供我们使用)。
在远程登录服务机器(fsaix005.in.ibm.com)上,运行'/usr/krb5/bin/klist -k'并检查条目。 bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# /usr/krb5/bin/klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------- 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM bash-2.05b# 在telnet服务机器(fsaix005.in.ibm.com)上,创建一个新用户'vipin',您将使用该用户telnet到fsaix005。 修改该用户的密码。 bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# mkuser -R files vipin bash-2.05b# passwd vipin Changing password for "vipin" vipin's New password: Enter the new password again: bash-2.05b# 创建具有相同名称“ vipin”的Kerberos主体。 可以从Kerberos领域中的任何计算机(主KDC或客户端)完成此操作。 bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# kadmin -p admin/admin Authenticating as principal admin/admin with password. Password for admin/admin@ISL.IN.IBM.COM: kadmin: ank -pw vipin vipin WARNING: no policy specified for vipin@ISL.IN.IBM.COM; defaulting to no policy. Note that policy may be overridden by ACL restrictions. Principal "vipin@ISL.IN.IBM.COM" created. kadmin: q bash-2.05b# 转到配置了Kerberos客户端的任何其他客户端计算机(fakir.in.ibm.com)。 运行'/usr/krb5/bin/kinit vipin'以获取初始的Kerberos票证,如下所示: bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/kinit vipin Password for vipin@ISL.IN.IBM.COM: bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 02/16/08 04:31:41 02/17/08 04:31:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM bash-2.05b# 尝试通过telnet到telnetd机器(fsaix005.in.ibm.com)。 如果一切顺利,将不会要求您输入密码,而您将以“ vipin”用户身份登录。 方法如下: bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# telnet -l vipin fsaix005.in.ibm.com Trying... Connected to fsaix005.in.ibm.com. Escape character is '^]'. [ Kerberos V5 accepts you as ``vipin@ISL.IN.IBM.COM'' ] telnet (fsaix005.in.ibm.com) ******************************************************************************* * * * * * Welcome to AIX Version 5.3! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * * * ******************************************************************************* Last unsuccessful login: Wed Feb 13 11:50:40 CST 2008 on /dev/pts/2 from land.in.ibm.com Last login: Fri Feb 15 12:49:06 CST 2008 on /dev/pts/3 from aixdce8.in.ibm.com $ hostname fsaix005.in.ibm.com $ id uid=237(vipin) gid=1(staff) $ exit Connection closed bash-2.05b# hostname fakir.in.ibm.com bash-2.05b#那就是完成以kerberized方式进行的telnet所需的全部! 发出telnet命令时,请注意附加选项(在上面的突出显示的文本中)。
如果要检查您是否确实获得了telnet服务主体的票证,请运行â????/usr/krb5/bin/klistâ???? 在客户端上,并查看输出。 您应该会看到以下内容:
bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 02/16/08 04:31:41 02/17/08 04:31:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM 02/16/08 04:32:56 02/17/08 04:31:39 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM bash-2.05b#与telnet服务类似,您也可以将FTP服务配置为接受和使用Kerberos身份验证。 使用以下分步过程可以实现此目的:
创建一个FTP服务主体。 这次,FTP服务主体的名称将为“ ftp / <FQDN_ftpd_hostname>”。 因此,对于我们来说,它将类似于ftp / fsaix005.in.ibm.com。 创建主体: bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# kadmin -p admin/admin Authenticating as principal admin/admin with password. Password for admin/admin@ISL.IN.IBM.COM: kadmin: ank -randkey ftp/fsaix005.in.ibm.com WARNING: no policy specified for ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM; defaulting to no policy. Note that policy may be overridden by ACL restrictions. Principal "ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM" created. 现在,将此主体条目添加到密钥表文件(/etc/krb5/krb5.keytab)。 kadmin: ktadd ftp/fsaix005.in.ibm.com Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal ftp/fsaix005.in.ibm.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 ftp/fsaix005.in.ibm.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin: q bash-2.05b# 在FTP服务机器(fsaix005.in.ibm.com)上,运行'/usr/krb5/bin/klist -k'并检查keytab文件中的条目。 这次应该看起来像这样: bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# /usr/krb5/bin/klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------- 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM 3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM bash-2.05b# 下一步是获取初始Kerberos票证。 由于我们已经有一个名为“ vipin”的Kerberos用户,因此我们将使用此主体通过'/usr/krb5/bin/kinit'命令获取初始Kerberos票证。 bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/kinit vipin Password for vipin@ISL.IN.IBM.COM: bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 02/16/08 04:47:46 02/17/08 04:47:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM bash-2.05b# 有了有效的票证后,我们现在就可以开始使用Kerberos的FTP。 bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# ftp fsaix005.in.ibm.com Connected to fsaix005.in.ibm.com. 220 fsaix005.in.ibm.com FTP server (Version 4.2 Sat Jun 16 07:20:05 CDT 2007) ready. 334 Using authentication type GSSAPI; ADAT must followGSSAPI accepted as authentication typeGSSAPI authentication succeeded Name (fsaix005.in.ibm.com:root): vipin 232 GSSAPI user vipin@ISL.IN.IBM.COM is authorized as vipin ftp> ftp> bye 221 Goodbye. bash-2.05b#要交叉检查以Kerberos方式进行的FTP成功,您可以关闭FTP会话并执行“ â????/usr/krb5/bin/klistâ???? 查看我们FTP服务主体的其他票证。
bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 02/16/08 04:47:46 02/17/08 04:47:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM 02/16/08 04:49:20 02/17/08 04:49:19 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM bash-2.05b#AIX r命令(例如rlogin,rsh和rcp)也支持Kerberos认证。 我们将研究这些命令如何利用Kerberos票证来使我们无缝地完成工作。
所有r命令的Kerberos服务主体将再次变为'host / <FQDN_service_hostname>',与telnet服务主体相同。 因此,如果您已配置了kerberized telnet身份验证,则无需执行任何其他配置步骤。 只需获取初始Kerberos票证并触发r命令即可。 例如:
我们还可以在rsh中进行Kerberos身份验证。 与rlogin相同。
bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/kinit vipin Password for vipin@ISL.IN.IBM.COM: bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 04/21/08 08:58:08 04/22/08 08:58:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM bash-2.05b# rsh fsaix005.in.ibm.com -l vipin ******************************************************************************* * * * * * Welcome to AIX Version 5.3! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * * * ******************************************************************************* Last unsuccessful login: Mon Apr 21 07:55:42 CDT 2008 on /dev/pts/1 from 9.182.185.101 Last login: Mon Apr 21 08:54:58 CDT 2008 on /dev/pts/1 from fakir.in.ibm.com $ hostname fsaix005.in.ibm.com $ exit Connection closed. bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 04/21/08 08:58:08 04/22/08 08:58:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM 04/21/08 08:58:33 04/22/08 08:58:39 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM本示例使用Kerberos身份验证将文件从一台机器(fakir.in.ibm.com)复制到另一台远程机器(fsaix005.in.ibm.com)。
这是我们要传输的fakir.in.ibm.com上的文件: bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# ls -l /home/vipin/progs/try.c -rw-r--r-- 1 root system 200 Feb 14 03:55 home/vipin/progs/try.c bash-2.05b# 将此文件复制到/ home / vipin目录中的fsaix005.in.ibm.com。 fsaix005.in.ibm.com上/ home / vipin的当前内容是: bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# ls -l /home/vipin/t* ls: 0653-341 The file /home/vipin/t* does not exist. bash-2.05b# 运行Kerberos认证,并在fakir.in.ibm.com上获取初始Kerberos票证。 bash-2.05b# hostname fakir.in.ibm.com bash-2.05b# /usr/krb5/bin/kinit vipin Password for vipin@ISL.IN.IBM.COM: bash-2.05b# /usr/krb5/bin/klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: vipin@ISL.IN.IBM.COM Valid starting Expires Service principal 04/21/08 09:20:13 04/22/08 09:20:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM bash-2.05b# 有了有效的票证后,我们就可以运行rcp了。 命令: bash-2.05b# rcp /home/vipin/progs/try.c vipin@fsaix005.in.ibm.com:/home/vipin bash-2.05b#请注意我们如何传递fsaix005.in.ibm.com的用户名。 我们还将在fsaix005.in.ibm.com上传递目标目录。 重要的是要记住,目标目录必须是用户可写的。
在fsaix005.in.ibm.com上,我们可以像这样交叉检查文件复制操作: bash-2.05b# hostname fsaix005.in.ibm.com bash-2.05b# ls -l /home/vipin/t* -rw-r--r-- 1 vipin staff 200 Apr 21 09:21 /home/vipin/try.c bash-2.05b#注意新复制文件的用户ACL。
本文演示了如何在AIX网络应用程序(如telnet,FTP和r-commands)中使用Kerberos认证机制,这些应用程序支持Kerberos。
翻译自: https://www.ibm.com/developerworks/aix/library/au-kerberosaix6/index.html