鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 操作系统维护 > solaris > >

Solaris 10实现安全Kerberos身份验证

来源:互联网 作者:佚名 时间:2015-06-03 08:39
设置 Kerberized 环境以便与 Solaris(TM) 协同工作 了解如何在 AIX(R) Version 中配置密钥分发中心 (KDC) 您还将浏览在 Solaris 中配置 Kerberos 客户端的一系列步骤 以使用 AIX Version 作为 KDC 对 Telnet 远程 Shell (rsh) 和安全 Shell (SSH) 的用户进行
    设置 Kerberized 环境以便与 Solaris(TM) 协同工作了解如何在 AIX(R) Version 中配置密钥分发中心 (KDC)您还将浏览在 Solaris 中配置 Kerberos 客户端的一系列步骤以使用 AIX Version 作为 KDC 对 Telnet远程 Shell (rsh) 和安全 Shell (SSH) 的用户进行身份验证在不同的平台之间使用单个 AIX IBM Network Authentication Service (NAS) KDC 进行身份验证非常有用尤其是在混合环境中

  引言

  随着安全需求的日益增长现在的企业需要易于维护的安全机制然而这些安全机制必须为其提供一个安全的环境安全机制需要提供强大的身份验证特性以及保密性和其他的特性例如单点登录 (SSO)Kerberos 正是这样的一种身份验证协议它通过在称为密钥分发中心 (KDC) 的中央存储库中存储相关信息的数据库从而提供集中式的身份验证

  现在所有的供应商都具有其自己的 Kerberos 实现在混合环境中这些 Kerberos 实现之间必须能够进行 互操作Solaris&#; 在其 Sun Enterprise Authentication Mechanism&#; (SEAM) 软件中提供了 Kerberos Version 协议的实现而 IBM 的 Kerberos 实现是 IBM Network Authentication Service (NAS)正如 Sun Solaris 的文档(请参见参考资料部分)中说明的Solaris 中包含了 SEAM 产品的所有组成部分所以不再需要使用 SEAM

  本文将向您介绍在 Solaris 中配置 Kerberos 客户端所需的步骤以便利用 AIX® Version 作为 KDC对使用常用通信服务的用户进行身份验证如 Telnet远程 Shell (rsh) 和安全 Shell (SSH)在混合环境中可以使用单个 AIX IBM NAS KDC 进行不同平台的身份验证管理员将可以从中受益

  使用 AIX Version 在 Solaris 中实现 Kerberized 身份验证

  本部分介绍了将 AIX Version 配置作为 KDC 以及在 Solaris 中配置 Kerberos 客户端所需的步骤下面是在示例中使用到的一些定义

  Kerberos Realm Name / Domain Name AIX_KDC IBM NAS KDC hostname: OS: AIX Version SSH/telnet/rlogin Server hostname: OS: Solaris Solaris Kerberos Client hostname: OS: Solaris SSH/telnet/rlogin client hostname: OS: AIX Version Windows test machine(with rsh/SSH/telnet client) hostname: OS: Windows XP


  下面的图 显示了示例的设置


示例设置

  在 AIX V 中配置 IBM NAS KDC

  要执行清单 中的命令请安装 IBM NAS krbserverrte 文件集AIX Version Expansion Pack CD 中提供了 IBM NAS 文件集


清单 安装 IBM NAS 文件集

  [root@aixdce / ]# hostname [root@aixdce / ]# installp aqXYgd krbserver [root@aixdce / ]# echo export PATH=/usr/krb/sbin:/usr/krb/bin:$PATH > ~/profile


  执行清单 中的命令以便在 AIX 计算机中对 IBM NAS 服务器的遗留配置进行配置对于其他类型的 IBM NAS 服务器配置请参阅 AIX Version Expansion Pack CD 中附带的 IBM NAS Administration Guide

  清单 配置遗留配置

  [root@aixdce / ]# hostname [root@aixdce / ]# /usr/krb/sbin/configkrb S d r AIX_KDC Initializing configuration Creating /etc/krb/krb_cfg_type Creating /etc/krb/nf Creating /var/krb/krbkdc/nf Creating database files Initializing database /var/krb/krbkdc/principal for realm AIX_KDC master key name K/M@AIX_KDC You are prompted for the database Master Password It is important that you DO NOT FORGET this password Enter database Master Password: Reenter database Master Password to verify: WARNING: no policy specified for admin/admin@AIX_KDC; defaulting to no policy Note that policy may be overridden by ACL restrictions Enter password for principal admin/admin@AIX_KDC: Reenter password for principal admin/admin@AIX_KDC: Principal admin/admin@AIX_KDC created Creating keytable Creating /var/krb/krbkdc/kadmacl Starting krbkdc krbkdc was started successfully Starting kadmind kadmind was started successfully The command completed successfully


  配置 Solaris Kerberos 客户端

  在 Solaris 该操作系统缺省情况下提供了 Kerberos 客户端这是与以前版本的不同之处以前的版本中附带了一个称为 SEAM 的单独的组件要在 Solaris 中配置 Kerberos 客户端至少需要创建一个合适的 /etc/krb/nf 文件清单 显示了 nf 文件的内容我们将在 Solaris 计算机的 Kerberos 客户端使用这个文件

  我们建议管理员根据其需要创建 /etc/krb/nf 文件有关 Solaris 的 nf 的详细信息请参见参考资料部分


清单 Solaris 计算机中 nf 文件的内容

  /> hostname solsarpc /> cat /etc/krb/nf [libdefaults] default_realm = AIX_KDC default_keytab_name = FILE:/etc/krb/krbkeytab default_tkt_enctypes = descbcsha default_tgs_enctypes = descbcsha [realms] AIX_KDC = { kdc = : admin_server = : default_domain = } [domain_realm] = AIX_KDC = AIX_KDC [logging] kdc = FILE:/var/krb/log/krbkdclog admin_server = FILE:/var/krb/log/kadminlog default = FILE:/var/krb/log/krbliblog


  要为 Solaris 计算机配置 Kerberized 身份验证您需要将用于这台 Solaris 计算机的 Kerberos 服务主体的类型设置为 host/<Solaris 计算机的主机名>(在本示例中为 host/并将其放入 Solaris 计算机上的 keytab 文件中请注意keytab 文件的缺省位置是 /etc/krb/krbkeytab

  在 keytab 文件中创建服务主体条目的方法有很多种清单 显示了其中一种方法创建 Kerberos 服务主体并使用承载 KDC 的 AIX 计算机中的 IBM NAS 提供的 kadmin 工具将其条目添加到 keytab 文件中然后使用 FTP 将 keytab 文件从 AIX 计算机传输到合适的 Solaris 计算机Kerberos 实用工具如 ktutil在需要的情况下也可以用来完成相同的任务

  清单 创建 krbkeytab 文件

  root@aixdce: / > $ hostname root@aixdce: / > $ /usr/krb/bin/kinit admin/admin Password for admin/admin@AIX_KDC: root@aixdce: / > $ /usr/krb/bin/klist Ticket cache: FILE:/var/krb/security/creds/krbcc_ Default principal: admin/admin@AIX_KDC Valid starting Expires Service principal // :: // :: krbtgt/AIX_KDC@AIX_KDC root@aixdce: / > $ /usr/krb/sbin/kadmin Authenticating as principal admin/admin@AIX_KDC with password Password for admin/admin@AIX_KDC: kadmin: add_principal e descbcsha:normal randkey host/ WARNING: no policy specified for host/@AIX_KDC; defaulting to no policy Note that policy may be overridden by ACL restrictions Principal host/@AIX_KDC created kadmin: ktadd e descbcsha:normal host/ Entry for principal host/ with kvno encryption type Triple DES cbc mode with HMAC/sha added to keytab WRFILE:/etc/krb/krbkeytab kadmin: kadmin: q root@aixdce: / > $ /usr/krb/bin/klist k /etc/krb/krbkeytab Keytab name: FILE:/etc/krb/krbkeytab KVNO Principal host/@AIX_KDC root@aixdce: / > $ cd /etc/krb root@aixdce: /etc/krb > $ ftp Connected to solsarpc FTP server ready Name (:root): root Password required for root Password: User root logged in ftp> cd /etc/krb CWD command successful ftp> binary Type set to I ftp> mput krbkeytab mput krbkeytab? y PORT command successful Opening BINARY mode data connection for krbkeytab Transfer complete bytes sent in seconds ( Kbytes/s) local: krbkeytab remote: krbkeytab ftp> bye You have transferred bytes in files Total traffic for this session was bytes in transfers Thank you for using the FTP service on solsarpc Goodbye root@aixdce: /etc/krb >


  我们选择创建 Triple DES 加密类型的 host/ 服务主体因为 AIX 和 Solaris Kerberos 都支持这种类型如果希望选择其他的加密类型您必须确保 IBM NAS 和 SUN Kerberos 能够支持这些加密类型

  创建 Kerberos 主体和相应的 Solaris 用户

  下一步让我们创建用于登录到 Solaris 计算机的 Kerberos 主体您可以使用 kadmin 工具创建这个 Kerberos 主体IBM NAS for AIX 中附带了 kadmin 工具有关 kadmin 工具的详细信息请参阅 AIX Expansion CD 中的 IBM NAS Administration Guide

  在我们的设置中我们创建了一个称为 sandeep 的 Kerberos 主体如清单 所示以及相应的 Solaris 用户如清单 所示为了通过上面的设置使得 Solaris 计算机的 root 用户能够使用 telnet/ssh/rlogin 进行登录您需要创建一个 root/<host name> 类型的 Kerberos 主体在本示例中您需要创建一个称为 root/ 的 Kerberos 主体如下所示

  清单 在承载 KDC 的 AIX 计算机上使用 kadmin 工具创建 Kerberos 主体

  $ hostname root@aixdce: / > $ /usr/krb/bin/kinit admin/admin Password for admin/admin@AIX_KDC: root@aixdce: / > $ /usr/krb/sbin/kadmin Authenticating as principal admin/admin@AIX_KDC with password Password for admin/admin@AIX_KDC: kadmin: add_principal sandeep WARNING: no policy specified for sandeep@AIX_KDC; defaulting to no policy Note that policy may be overridden by ACL restrictions Enter password for principal sandeep@AIX_KDC: Reenter password for principal sandeep@AIX_KDC: Principal sandeep@AIX_KDC created kadmin: add_principal root/ WARNING: no policy specified for root/@AIX_KDC; defaulting to no policy Note that policy may be overridden by ACL restrictions Enter password for principal root/@AIX_KDC: Reenter password for principal root/@AIX_KDC: Principal root/@AIX_KDC created kadmin: q root@aixdce: / > $



清单 在 Solaris 计算机上创建 Solaris 用户

  /> hostname solsarpc /> who am i root pts/ Sep : () /> useradd m d /export/home/sandeep sandeep blocks /> passwd sandeep New Password: Reenter new Password: passwd: password successfully changed for sandeep


  在 Solaris 上对 ssh/telnet/rlogin 进行 Kerberized 身份验证所需的插入式验证模块 (Pluggable Authentication Module) 的配置

  编辑 /etc/nf 文件以便使得 TelnetSSH 和 rlogin 使用 Kerberos 作为其身份验证模块如下面的清单 所示在 /etc/nf 文件中添加相应的条目以便为 SSHTelnet 和 rlogin 命令启用 Kerberos 身份验证我们建议管理员应该充分理解 Solaris 插入式验证模块 (PAM) 和 /etc/nf 文件的使用(可以参考 Solaris 中关于 nf 和 sshd 的 man 页面)然后将其映射为身份验证需求并在 /etc/nf 文件中修改相应的条目


清单 在 Solaris 计算机上设置 nf 文件

  sshdkbdint auth sufficient pam_krbso telnet auth sufficient pam_krbso rlogin auth sufficient pam_krbso


  在完成了设置工作之后您就可以将 Kerberized 服务用于不同的通信服务要对设置进行测试可以在提供了 telnet/rlogin/ssh 的任何计算机上使用这些工具登录到 Solaris 计算机成功连接之后将会提示您输入 Kerberos 登录名和命名您需要输入 Kerberos 主体及其关联的 Kerberos 密码

  清单 显示了使用 Kerberos 主体 sandeep 从 AIX 计算机使用 SSHTelnet 和 rlogin 命令登录到 Solaris 计算机的测试结果您还可以使用 Windows 本机的 Telnet 应用程序和 PuTTY for Windows(一种免费的 telnet/ssh/rlogin 客户端)从 Windows® XP 计算机登录到 Solaris 计算机以便对 Kerberized 身份验证进行测试

  使用 AIX Version 作为 KDC 在 Solaris 上实现 Kerberized SSH

  清单 显示了 上所执行的命令序列该命令序列使用 Kerberos 作为身份验证机制(将 (AIX Version ) 服务器作为 KDC)建立了到 的 SSH 连接

  清单 使用 Kerberos 身份验证的成功的 SSH 的示例输出

  $hostname $whoami manish $ssh sandeep@ Enter Kerberos password for sandeep: Last login: Wed Sep :: from Welcome to the Sun Java Enterprise System Q () ! $ hostname solsarpc $ uname a SunOS solsarpc Generic_ sunu sparc SUNWSunFireV $ who am i sandeep pts/ Sep : () $ pwd /export/home/sandeep $ exit Connection to closed $hostname $


    如果在执行上述设置后在使用 Kerberos 进行 SSH 连接时存在任何问题可以在 /etc/hosts 中添加该计算机的完全限定的域名然后进行重试

  使用 AIX Version 作为 KDC 在 Solaris 上实现 Kerberized Telnet

  清单 显示了 上所执行的命令序列该命令序列使用 Kerberos 作为身份验证机制(将 (AIX Version ) 服务器作为 KDC)建立了到 的 Telnet 访问

  清单 使用 Kerberos 身份验证的成功的 Telnet 的示例输出

  

  [root@aixdce / ] #hostname [root@aixdce / ] #whoami root [root@aixdce] #telnet Trying Connected to Escape character is ^] login: sandeep Enter Kerberos password for sandeep: Last login: Tue Sep :: from Welcome to the Sun Java Enterprise System Q () ! $ uname a SunOS solsarpc Generic_ sunu sparc SUNWSunFireV $ who am i sandeep pts/ Sep : () $ pwd /export/home/sandeep $ exit Connection closed [root@aixdce] #hostname [root@aixdce] #

  在缺省情况下已启用了 Telnet 服务器并运行于 Solaris 如果没有请参考 Solaris 中关于 telnetd 的 man 页面

  使用 AIX Version 作为 KDC 在 Solaris 上实现 Kerberized rlogin

  清单 显示了 上所执行的命令序列该命令序列使用 Kerberos 作为身份验证机制(将 (AIX Version ) 服务器作为 KDC)建立了到 的远程登录访问

  清单 使用 Kerberos 身份验证的成功的 rlogin 的示例输出

  [root@aixdce / ] #hostname [root@aixdce / ] #whoami root [root@aixdce / ] #rlogin l sandeep Enter Kerberos password for sandeep: Last login: Tue Sep :: from Welcome to the Sun Java Enterprise System Q () ! $ hostname solsarpc $ uname a SunOS solsarpc Generic_ sunu sparc SUNWSunFireV $ who am i sandeep pts/ Sep : () $ pwd /export/home/sandeep $ exit Connection closed [root@aixdce / ]hostname


    在缺省情况下已启用了 Telnet 服务器并运行于 Solaris 如果没有请参考 Solaris 中关于 rlogind 的 man 页面

  总结

  本文向管理员介绍了如何在 AIX Version 上配置 KDC以及使用它来设置 Kerberized 环境以便与 Solaris 协同工作本文还说明了如何使用它为不同类型的通信进行身份验证该内容可以帮助管理员使用单个 AIX KDC 实现不同操作系统的身份验证要了解如何为 Windows 配置 AIX KDC请参见参考资料部分

网友评论
<