自从早期的大型机以来,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 服务器基本上划分为两个组件,它们分别提供两个独立的 Kerberos 功能。它们是:
- Key Distribution Center (KDC),这是 Kerberos 协议的核心,负责用户身份验证和发布 Kerberos 票据 [Ticket Granting Ticket (TGT) 和 Ticket Granting Service(TGS)]。此功能由 IBM NAS 服务器守护进程 krb5kdc 执行。
- IBM NAS 管理服务器,它负责 Kerberos 管理活动,比如主体、服务、策略等的创建、修改和删除。此功能由 kadmind 服务器守护进程执行。
这两个守护进程是相互独立的,但是它们都执行重要的功能。因此,在默认情况下这两个守护进程与独立的日志记录特性相关联。
krb5kdc 守护进程的日志记录所有与身份验证相关的信息,比如:
- 启动 KDC 守护进程的时间和它监听的网络端口
- 哪个用户请求哪种类型的服务票据、请求的时间和用户的 IP 地址
- 用户请求是否成功
- 是否有人对某个 Kerberos 主体或服务的密码进行强力尝试
- 在身份验证握手期间请求的加密类型
- 在身份验证期间发生的错误的类型(如果有错误的话)
另一方面,kadmind 的日志记录所有管理活动,比如:
- 启动 kadmind 的时间
- 执行的管理任务的类型,比如主体/策略的创建/修改/删除
- 请求任务的管理主体及其 IP 地址
- 请求的任务是否成功
- 是否有执行管理任务的错误尝试
作为管理员,一定要分析和监视这两个守护进程的日志。
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.36 的 johan 用户请求一个 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 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 的可服务性特性帮助尽快判断和解决问题。
学习
-
Configuring AIX 5L for Kerberos Based Authentication Using IBM Network Authentication Service:阅读这份白皮书了解如何使用 Kerberos 作为 AIX 的替代身份验证机制。
-
在 IBM Network Authentication Service for AIX 中增强密码强度:讨论 IBM Network Authentication Service for AIX 中的 ‘增强型密码强度’ 特性以及如何在 Kerberos 环境中使用它。
-
A Kerberos Primer:这篇文章介绍 Kerberos 技术和基于分布式计算环境的应用程序。
-
NIST 的 Information Technology Laboratory 发布的 Guide to Computer Security Log Management Special Publication (SP) 800-92。
- AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
- AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
- AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
-
developerWorks 技术活动和网络广播:了解最新的 developerWorks 技术活动和网络广播。
获得产品和技术
-
IBM Network Authentication Service for AIX:通过 IBM AIX Web Download Pack Programs 下载 IBM Network Authentication Service for AIX。
-
IBM Network Authentication Service for Linux,Solaris:从这里下载 IBM Network Authentication Service for Linux,Solaris。
-
IBM GUI-based Administration Tool for Network Authentication Service:体验这个用来执行与 IBM NAS 相关的管理任务的 GUI。从 IBM alphaWorks 下载。
-
AIX 5L Expansion Pack and Web Download Pack:马上下载。
讨论
-
参与 AIX 和 UNIX 论坛:
- AIX 论坛
- 针对开发人员的 AIX 论坛
- Cluster Systems Management
- IBM Support Assistant 论坛
- 性能工具论坛
- 虚拟化论坛
- 更多 AIX 和 UNIX 论坛
