IBM Network Authentication Service for AIX 中的审计和可服务性管理

审计是任何软件的一个重要方面,对于提供安全服务的软件尤其重要。本文帮助您了解 IBM® Network Authentication Service 中提供的审计和可服务性特性。让您了解不同的服务器端日志文件、如何启用它们以及如何分析它们。还要了解如何启用问题诊断和支持活动所需的调试消息日志记录特性。

Sandeep Ramesh Patil , 高级软件工程师, EMC

SandeepRamesh Patil 的照片Sandeep Ramesh Patil 是 IBM India Software Labs 的高级软件工程师。在过去七年里,他一直为 IBM 工作,主要研究包括 DCE、SARPC 在内的分布式技术,以及安全产品,例如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在为 IBM Network Authentication Service 开发新的特性并实现安全相关的 RFC 及其产品支持。Sandeep 拥有印度 Pune 大学的计算机科学与工程学学士学位。



2009 年 3 月 19 日

简介

自从早期的大型机以来,IBM 一直把审计当作一种重要的活动。审计记录不仅是各种业务过程治理规章的要求,而且对于发现安全问题以及判断入侵的机制和程度也很重要。因此,对于依赖安全性的软件或应用程序,审计设施是必不可少的。

可服务性是任何软件或应用程序的另一个重要方面。它是任何 RAS(可靠性、可用性和可服务性)兼容软件的重要组件。有效的可服务性有助于尽早解决客户报告的问题,这可以提高客户满意度并改进产品支持。

因此,审计和可服务性对于任何软件程序都是极有价值的组件。本文详细讨论 IBM Network Authentication Service for AIX® 的这两个组件。IBM Network Authentication Service (IBM NAS) for AIX 是 Kerberos (IETF RFC 1510) 的 IBM 实现,Kerberos 是最流行、使用最广泛的基于网络的身份验证协议。通过使用 IBM NAS,可以通过网络对用户进行身份验证,从而允许用户访问任何启用 Kerberos 的应用程序,比如 AIX NFS V4、启用 Kerberos 的 DB2® Universal Database®、启用 Kerberos 的 LDAP 等等。本文描述包含重要身份验证审计记录的 IBM NAS 日志文件、它们的含义、启用它们的方法以及把它们转发到客户定义的文件的方法。然后,详细讨论与此产品相关联的可服务性特性、相关联的粒度以及启用它的方法,这有助于管理员提供支持工程师所需的数据。

IBM Network Authentication Service:服务器端日志记录和审计

根据 National Institute of Standards and Technology (NIST) 的 Information Technology Laboratory 发布的 Special Publication (SP) 800-92, Guide to Computer Security Log Management(参见 参考资料)中的定义:“日志是在组织的系统和网络中发生的事件的记录。日志由日志项组成;每个日志项包含在系统或网络中发生的某一事件的相关信息。” 对于 IBM Network Authentication Service 服务器,它的日志项记录与 Kerberos 域中身份验证和 Kerberos 服务票据发布相关的事件。日志包含重要的身份验证和 Kerberos 用户管理记录,提供的信息包括哪个用户来自哪个 IP 地址、事件发生的时间以及向 IBM NAS 服务器发出的请求的类型。它还记录关于请求是否成功的信息。在安全审计和发生安全入侵事件时,这些信息都很重要。因此,一定要了解 AIX 上与 IBM NAS 服务器相关的日志记录特性。

了解 IBM NAS 服务器日志记录

IBM NAS 服务器基本上划分为两个组件,它们分别提供两个独立的 Kerberos 功能。它们是:

  1. Key Distribution Center (KDC),这是 Kerberos 协议的核心,负责用户身份验证和发布 Kerberos 票据 [Ticket Granting Ticket (TGT) 和 Ticket Granting Service(TGS)]。此功能由 IBM NAS 服务器守护进程 krb5kdc 执行。
  2. IBM NAS 管理服务器,它负责 Kerberos 管理活动,比如主体、服务、策略等的创建、修改和删除。此功能由 kadmind 服务器守护进程执行。

这两个守护进程是相互独立的,但是它们都执行重要的功能。因此,在默认情况下这两个守护进程与独立的日志记录特性相关联。

krb5kdc 守护进程的日志记录所有与身份验证相关的信息,比如:

  • 启动 KDC 守护进程的时间和它监听的网络端口
  • 哪个用户请求哪种类型的服务票据、请求的时间和用户的 IP 地址
  • 用户请求是否成功
  • 是否有人对某个 Kerberos 主体或服务的密码进行强力尝试
  • 在身份验证握手期间请求的加密类型
  • 在身份验证期间发生的错误的类型(如果有错误的话)

另一方面,kadmind 的日志记录所有管理活动,比如:

  • 启动 kadmind 的时间
  • 执行的管理任务的类型,比如主体/策略的创建/修改/删除
  • 请求任务的管理主体及其 IP 地址
  • 请求的任务是否成功
  • 是否有执行管理任务的错误尝试

作为管理员,一定要分析和监视这两个守护进程的日志。

启用 IBM NAS 服务器日志

IBM NAS 配置文件 krb5.conf(在 /etc/krb5 目录中)的 [logging] 部分包含日志文件的位置和文件名。在默认情况下,krb5.conf 文件的 logging 部分包含以下设置:

[logging]
kdc = FILE:/var/krb5/log/krb5kdc.log
admin_server = FILE:/var/krb5/log/kadmin.log
default = FILE:/var/krb5/log/krb5lib.log

logging 部分中的 kdc 关系指向由 krb5kdc 守护进程记录的文件,而 admin_server 关系指向由 kadmind 守护进程记录的文件。在默认情况下,KDC 日志写到 /var/krb5/log/krb5kdc.log,Kerberos 管理日志写到 /var/krb5/log/kadmin.log,管理员可以把它们改为任何日志文件。'default' 关系指向的日志文件指定在缺少前两个设置的情况下如何执行日志记录。

如果对 krb5.conf 文件的 logging 部分做了任何修改,管理员就需要重新启动 IBM NAS 守护进程,这样修改才会生效。

甚至可以把这两个服务器日志记录到 syslog,而不是直接写到文件。详细信息请参见 AIX expansion pack CD 上产品附带的 IBM Network Authentication Service Version 1.4 Administrator's and User's Guide 的第 8 章。

示例日志记录

下面的 KDC 日志记录表明,来自 TEST.IN.IBM.COM 域的 sandeep 用户请求 NFS 服务的 TGS,此用户的 IP 地址是 9.182.192.36,NFS 服务在 aixdce3.in.ibm.com 机器上运行,请求的时间是 ul 07 01:33:53,加密列表是 {16 23 18 3 1 17}(加密列表中的每个数字代表一个加密类型)。

Jul 07 01:33:53 aixdce3.in.ibm.com /usr/krb5/sbin/krb5kdc[13668](info): TGS_REQ (6 etypes
{16 23 18 3 1 17})9.182.192.36(88): ISSUE: authtime 1215408791, etypes {rep=16 tkt=16 
ses=16}, sandeep@TEST.IN.IBM.COM for nfs/aixdce3.in.ibm.com@TEST.IN.IBM.COM:

下面的 KDC 日志项表明,来自 IP 地址 9.182.192.36johan 用户请求一个 TGT,请求的时间是 Jul 07 02:05:17,加密列表是 {16 23 18 3 1 17},但是使用了错误的密码。因此,这导致错误 Decrypt integrity check failed

Jul 07 02:05:17 aixdce3.in.ibm.com /usr/krb5/sbin/krb5kdc[13668](Notice): AS_REQ 
(6 etypes {16 23 18 3 1 17}) 9.182.192.36(88): NEEDED_PREAUTH: johan@TEST.IN.IBM.COM
for krbtgt/TEST.IN.IBM.COM@TEST.IN.IBM.COM, Additional pre-authentication required

Jul 07 02:05:20 aixdce3.in.ibm.com /usr/krb5/sbin/krb5kdc[13668](Error): AS_REQ
(6 etypes {16 23 18 3 1 17}) 9.182.192.36(88): PREAUTH_FAILED: johan@TEST.IN.IBM.COM
for krbtgt/TEST.IN.IBM.COM@TEST.IN.IBM.COM, Decrypt integrity check failed.

下面的 kadmind 日志记录表明,管理用户 admin/admin 请求删除主体 sandeep,此用户的 IP 地址是 9.182.192.103,请求的时间是 Jul 07 02:11:14,此请求已经成功地执行了。

Jul 07 02:10:46 aixdce3.in.ibm.com kadmind[17648](Notice): Successful request: 
kadm5_init, admin/admin@TEST.IN.IBM.COM,client=admin/admin@TEST.IN.IBM.COM, 
service=kadmin/admin@TEST.IN.IBM.COM, addr=9.182.192.103

Jul 07 02:11:14 aixdce3.in.ibm.com kadmind[17648](Notice): Successful request: 
kadm5_delete_principal, sandeep@TEST.IN.IBM.COM, client=admin/admin@TEST.IN.IBM.COM, 
service=kadmin/admin@TEST.IN.IBM.COM, addr=9.182.192.103

下面的 kadmind 日志记录表明,用户 johan 成功地修改了他的密码。修改密码的请求来自 IP 地址为 9.182.192.103 的机器,请求的时间是 Jul 07 02:16:54

Jul 07 02:16:54 aixdce3.in.ibm.com kadmind[17648](Notice): change password request
from 9.182.192.103 for johan@TEST.IN.IBM.COM: success

对日志文件进行存档

强烈建议定期备份这两个服务器日志文件,因为它们包含审计和跟踪身份验证事件所需的所有信息。在任何时候都可能需要使用这些信息。


IBM NAS 可服务性

IBM NAS for AIX 以调试消息的形式提供可服务性,可以使用环境变量控制这些消息。作为管理员,一定要了解 IBM NAS 的可服务性管理。这有助于向支持团队提供必需的调试数据,帮助他们尽快找出问题,从而减轻生产系统停机和其他情况的影响。

如何启用调试

  • 将 _KRB5_SVC_DBG_MSG_LOGGING 环境变量导出为值 '1',这会启用调试消息的生成;导出为 '0' 会禁用调试消息。
    # export _KRB5_SVC_DBG_MSG_LOGGING=1
  • IBM NAS 中的可服务性按子组件和级别划分。这有助于收集针对特定组件的特定级别的调试信息。_KRB5_SVC_DBG 有助于指定组件和级别。但是,在发生问题时,很可能不确定应该为哪个组件收集什么级别的调试数据;在这种情况下,建议为所有组件收集所有级别的调试数据。要想启用这种调试数据收集,需要用以下值导出 _KRB5_SVC_DBG 环境变量:
    # export _KRB5_SVC_DBG=*.9

    有时候,可能需要或希望收集特定组件的调试数据。关于 IBM NAS 的组件和调试消息级别的更多信息,请参见 AIX expansion pack CD 上产品附带的 IBM Network Authentication Service Version 1.4 Administrator's and User's Guide 的附录 F。

  • _KRB5_SVC_DBG_FILENAME 环境变量帮助把调试信息转发到用户定义的某个文件。它的值应该是接收调试消息的文件的完全限定名。如果没有设置这个环境变量,那么调试消息被写到标准输出。下面的环境变量设置把所有调试信息转发到 /tmp/nas_debug.log 文件。
    # export _KRB5_SVC_DBG_FILENAME=/tmp/nas_debug.log

    这些是为 IBM NAS 启用调试消息所需的最常用的环境变量。还有几个与可服务性相关的环境变量。更多信息请参见 AIX expansion pack CD 上产品附带的 IBM Network Authentication Service Version 1.4 Administrator's and User's Guide 的附录 F。

    下面的示例把 IBM NAS 附带的 kinit 实用程序产生的调试消息记录到 /tmp/nas_debug.log 文件。

    # touch /tmp/nas_debug.log
    # ls -l /tmp/nas_debug.log
    -rw-r--r--   1 root     system            0 Jul 07 08:14 /tmp/nas_debug.log
    # export _KRB5_SVC_DBG_MSG_LOGGING=1
    # export _KRB5_SVC_DBG=*.9
    # export _KRB5_SVC_DBG_FILENAME=/tmp/nas_debug.log
    # kinit johan
    Password for johan@TEST.IN.IBM.COM:
    # ls -l /tmp/nas_debug.log
    -rw-r--r--   1 root     system        17505 Jul 07 08:16 /tmp/nas_debug.log
    #

    调试消息有助于识别发生故障的 IBM NAS 内部功能和错误值。可以把这些日志文件传递给支持工程师,帮助他们进一步判断问题。


结束语

本文详细介绍了 IBM Network Authentication Service Version 1.4 for AIX 的审计和可服务性特性、不同的服务器日志文件以及启用它们的方法,还简要介绍了分析它们的方法。最后,讨论了管理员如何使用 IBM NAS 的可服务性特性帮助尽快判断和解决问题。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=376735
ArticleTitle=IBM Network Authentication Service for AIX 中的审计和可服务性管理
publish-date=03192009