JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

审计命令

auditd 守护进程

audit 命令

bsmrecord 命令

auditreduce 命令

praudit 命令

auditconfig 命令

审计服务中使用的文件

system 文件

syslog.conf 文件

audit_class 文件

audit_control 文件

audit_event 文件

audit_startup 脚本

audit_user 数据库

audit_warn 脚本

bsmconv 脚本

用于管理审计的权限配置文件

审计和 Oracle Solaris 区域

审计类

审计类的定义

审计类语法

审计插件

审计策略

进程审计特征

审计迹

二进制审计文件名称约定

二进制审计文件名称

二进制审计文件时间戳

审计记录结构

审计记录分析

审计标记格式

acl 标记

arbitrary 标记(已过时)

arg 标记

attribute 标记

cmd 标记

exec_args 标记

exec_env 标记

exit 标记(已过时)

file 标记

group 标记(已过时)

groups 标记

header 标记

ip_addr 标记

ip 标记(已过时)

ipc 标记

ipc_perm 标记

iport 标记

opaque 标记(已过时)

path 标记

path_attr 标记

privilege 标记

process 标记

return 标记

sequence 标记

socket 标记

subject 标记

text 标记

trailer 标记

uauth 标记

upriv 标记

zonename 标记

词汇表

索引

审计标记格式

每个审计标记都有一个标记类型标识符,后跟标记的特定数据。每种标记类型都有自己的格式。下表显示了每个标记的标记名称以及简短说明。为了与先前的 Solaris 发行版兼容,将维护过时的标记。

表 31-4 用于 Oracle Solaris 审计的审计标记

标记名称
说明
更多信息
acl
访问控制列表 (Access Control List, ACL) 信息
arbitrary
具有格式和类型信息的数据
arg
系统调用参数值
attribute
文件 vnode 标记
cmd
命令参数和环境变量
exec_args
可执行的系统调用参数
exec_env
可执行的系统调用环境变量
exit
程序退出信息
file
审计文件信息
group
进程组信息
groups
进程组信息
header
表明审计记录开始
ip_addr
Internet 地址
ip
IP 数据包头信息
ipc
System V IPC 信息
ipc_perm
System V IPC 对象标记
iport
Internet 端口地址
opaque
非结构化数据(未指定的格式)
path
路径信息
path_attr
访问路径信息
privilege
特权集信息
process
进程标记信息
return
系统调用的状态
sequence
序列号标记
socket
套接字类型和地址
subject
主题标记(与 process 标记的格式相同)
text
ASCII 字符串
trailer
指示审计记录的结束
uauth
授权使用情况
upriv
特权使用情况
zonename
区域名称

审计记录始终以 header 标记开始。header 标记指示审计记录在审计迹中的开始位置。对于可归属事件,subjectprocess 标记引用导致事件发生的进程的值。对于无归属事件,process 标记引用系统。

acl 标记

acl 标记记录有关访问控制列表 (Access Control List, ACL) 的信息。

acl 标记包含四个固定字段:

praudit -x 命令显示 acl 标记的字段:

<acl type="1" value="root" mode="6"/>

arbitrary 标记(已过时)

arbitrary 标记可封装审计迹的数据。此标记包含四个固定字段和一个数据组。固定字段如下所述:

标记的其余部分由指定类型的 count 组成。praudit 命令以如下方式显示 arbitrary 标记:

arbitrary,decimal,int,1
42

下表说明了显示格式字段的可能值。

表 31-5 arbitrary 标记的显示格式字段值

操作
AUP_BINARY
以二进制格式显示日期
AUP_OCTAL
以八进制格式显示日期
AUP_DECIMAL
以十进制格式显示日期
AUP_HEX
以十六进制格式显示日期
AUP_STRING
将日期显示为字符串

下表显示了项大小字段的可能值。

表 31-6 arbitrary 标记的项大小字段值

操作
AUR_BYTE
数据以 1 字节为单位显示
AUR_SHORT
数据以 2 字节的短单位显示
AUR_LONG
数据以 4 字节的长单位显示

arg 标记

arg 标记包含有关系统调用参数的信息:系统调用的参数号、参数值以及可选说明。该标记允许在审计记录中使用 32 位整数的系统调用参数。

arg 标记有五个字段:

praudit -x 命令显示 arg 标记的字段:

<argument arg-num="2" value="0x0" desc="new file uid"/>

attribute 标记

attribute 标记包含文件 vnode 中的信息。

attribute 标记有七个字段:

有关文件系统 ID 和设备 ID 的更多信息,请参见 statvfs(2) 手册页。

attribute 标记通常与 path 标记同时出现。attribute 标记是在搜索路径期间生成的。如果出现路径搜索错误,则没有可用的 vnode 来获取必需的文件信息。因此,attribute 标记不包括在审计记录中。praudit -x 命令显示 attribute 标记的字段:

<attribute mode="100644" uid="adm" gid="adm" fsid="136" nodeid="2040" device="0"/>

cmd 标记

cmd 标记记录与命令关联的参数列表和环境变量的列表。

cmd 标记包含以下字段:

praudit -x 命令显示 cmd 标记的字段:下面是一个截断的 cmd 标记。由于显示的原因进行了换行。

<cmd><arge>WINDOWID=6823679</arge>
<arge>COLORTERM=gnome-terminal</arge>
<arge>...LANG=C</arge>...<arge>HOST=machine1</arge>
<arge>LPDEST=printer1</arge>...</cmd>

exec_args 标记

exec_args 标记记录 exec() 系统调用的参数。exec_args 标记有两个固定字段:

该标记的其余部分由 count 字符串组成。praudit -x 命令显示 exec_args 标记的字段:

<exec_args><arg>/usr/bin/sh</arg><arg>/usr/bin/hostname</arg></exec_args>

注 - 仅当 argv 审计策略选项处于活动状态时,才输出 exec_args 标记。


exec_env 标记

exec_env 标记记录 exec() 系统调用的当前环境变量。exec_env 标记有两个固定字段:

该标记的其余部分由 count 字符串组成。praudit -x 命令显示 exec_env 标记的字段。由于显示的原因进行了换行。

<exec_env><env>_=/usr/bin/hostname</env>
<env>DTXSERVERLOCATION=local</env><env>SESSIONTYPE=altDt</env>
<env>LANG=C</env><env>SDT_NO_TOOLTALK=1</env><env>SDT_ALT_HELLO=/bin/true</env>
<env>PATH=/usr/bin:/usr/openwin/bin:/usr/ucb</env>
<env>OPENWINHOME=/usr/openwin</env><env>LOGNAME=jdoe</env><env>USER=jdoe</env>
<env>DISPLAY=:0</env><env>SHELL=/bin/csh</env><env>START_SPECKEYSD=no</env>
<env>SDT_ALT_SESSION=/usr/dt/config/Xsession2.jds</env><env>HOME=/home/jdoe</env>
<env>SDT_NO_DTDBCACHE=1</env><env>PWD=/home/jdoe</env><env>TZ=US/Pacific</env>
</exec_env>

注 - 仅当 arge 审计策略选项处于活动状态时,才输出 exec_env 标记。


exit 标记(已过时)

exit 标记记录程序的退出状态。exit 标记包含以下字段:

praudit 命令按如下方式显示 exit 标记:

exit,Error 0,0

file 标记

file 标记是 auditd 守护进程生成的特殊标记。停用旧文件时,此标记可标记新审计文件的开始以及旧审计文件的结束。初始 file 标记识别审计迹中的上一个文件。最终 file 标记识别审计迹中的下一个文件。auditd 守护进程可生成包含此标记的特殊审计记录,以便将连续的审计文件“链接”到一个审计迹中。

praudit -x 命令显示 file 标记的字段。该标记识别审计迹中的下一个文件。由于显示的原因进行了换行。

<file iso8601="2009-04-08 14:18:26.200 -07:00">
/var/audit/machine1/files/20090408211826.not_terminated.machine1</file>

group 标记(已过时)

该标记已由 groups 标记取代。请参见groups 标记

groups 标记

groups 标记已由 group 标记取代。groups 标记记录进程凭证中的组项。

groups 标记有两个固定字段:

该标记的其余部分由 count 组项组成。

praudit -x 命令显示 groups 标记的字段:

<group><gid>staff</gid><gid>other</gid></group>

注 - 仅当 group 审计策略选项处于活动状态时,才输出 groups 标记。


header 标记

header 标记的特殊之处在于,它标记审计记录的开始。header 标记与 trailer 标记组合使用,将记录中的所有其他标记括在一起。

header 标记有八个字段:

在 64 位系统上,header 标记使用 64 位 位时间戳而不是 32 位 位时间戳显示。

praudit 命令按如下方式显示 header 标记:

header,69,2,su,,machine1,2009-04-08 13:11:58.209 -07:00

praudit -x 命令在审计记录开始显示 header 标记的字段。由于显示的原因进行了换行。

<record version="2" event="su" host="machine1" 
iso8601="2009-04-08 13:11:58.209 -07:00">

ip_addr 标记

ip_addr 标记包含一个 Internet 协议地址。自 Solaris 8 发行版开始,Internet 地址可以用 IPv4 格式或 IPv6 格式显示。IPv4 地址使用 4 个字节。IPv6 地址使用 1 个字节来表示地址类型,使用 16 个字节来表示地址。

in_addr 标记有三个字段:

praudit -x 命令显示 ip_addr 标记的内容:

<ip_address>machine1</ip_address>

ip 标记(已过时)

ip 标记包含 Internet 协议首码的副本。ip 标记有两个字段:

praudit 命令按如下方式显示 ip 标记:

ip address,0.0.0.0

IP 数据包头结构在 /usr/include/netinet/ip.h 文件中定义。

ipc 标记

ipc 标记包含调用方用于标识特殊 IPC 对象的 System V IPC 消息句柄、信号句柄或共享内存句柄。

ipc 标记有三个字段:


注 - IPC 对象标识符不符合 Oracle Solaris 审计标记的上下文无关性质。没有可唯一标识 IPC 对象的全局名称。IPC 对象由其句柄标识。这些句柄仅当 IPC 对象处于活动状态时才有效。但是,IPC 对象的标识应该不存在问题。很少用到 System V IPC 机制,并且这些机制全部共享相同的审计类。


下表显示了 IPC 对象类型字段的可能值。这些值在 /usr/include/bsm/audit.h 文件中定义。

表 31-7 IPC 对象类型字段的值

名称
说明
AU_IPC_MSG
1
IPC 消息对象
AU_IPC_SEM
2
IPC 信号对象
AU_IPC_SHM
3
IPC 共享内存对象

praudit -x 命令显示 ipc 标记的字段:

<IPC ipc-type="shm" ipc-id="15"/>

ipc_perm 标记

ipc_perm 标记包含 System V IPC 访问权限的副本。该标记将被添加到由 IPC 共享内存事件、IPC 信号事件和 IPC 消息事件生成的审计记录中。

ipc_perm 标记有八个字段:

praudit -x 命令显示 ipc_perm 标记的字段:由于显示的原因进行了换行。

<IPC_perm uid="jdoe" gid="staff" creator-uid="jdoe" 
creator-gid="staff" mode="100600" seq="0" key="0x0"/>

从与 IPC 对象关联的 ipc_perm 结构取得这些值。

iport 标记

iport 标记包含 TCP 或 UDP 端口地址。

iport 标记有两个字段:

praudit 命令按如下方式显示 iport 标记:

ip port,0xf6d6

opaque 标记(已过时)

opaque 标记包含作为字节序列的未格式化数据。opaque 标记有三个字段:

praudit 命令按如下方式显示 opaque 标记:

opaque,12,0x4f5041515545204441544100

path 标记

path 标记包含对象的访问路径信息。

path 标记包含以下字段:

praudit 命令按如下方式显示 path 标记(不包含第二个字段):

path,/etc/security/audit_user

praudit -x 命令显示 path 标记的内容:

<path>/etc/security/prof_attr</path>

下图显示了 path 标记的格式。

图 31-4 path 标记格式

image:上文对该图进行了说明。

path_attr 标记

path_attr 标记包含对象的访问路径信息。访问路径指定了 path 标记对象下的属性文件对象的顺序。系统调用存取属性文件,如 openat()。有关属性文件对象的更多信息,请参见 fsattr(5) 手册页。

path_attr 标记包含以下字段:

praudit 命令显示 path_attr 标记如下:

path_attr,1,attr_file_name

privilege 标记

privilege 标记记录进程中的特权使用情况。不对基本集中的特权记录 privilege 标记。如果已通过管理操作从基本集中删除了特权,则会记录该特权的使用。有关特权的更多信息,请参见特权(概述)

privilege 标记包含以下字段:

praudit -x 命令显示 privilege 标记的字段。由于显示的原因进行了换行。

<privilege set-type="Effective">file_chown,file_dac_read,
file_dac_write,net_privaddr,proc_exec,proc_fork,proc_setid</privilege>

process 标记

process 标记包含有关与进程关联的用户(如信号接收者)的信息。

process 标记有九个字段:

审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。


注 - process 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。在此情况下,应将此值设置为 -1


包含终端 ID 的任何标记都具有多个变体。praudit 命令可隐藏这些变体。因此,对于包含终端 ID 的任何标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址和端口号,或是设备 ID。设备 ID(如连接到调制解调器的串行端口)可以为零。可使用多种格式指定终端 ID。

以设备编号表示的终端 ID 按如下方式指定:

在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:

自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:

praudit -x 命令可显示 process 标记的字段。由于显示的原因进行了换行。

<process audit-uid="-2" uid="root" gid="root" ruid="root" 
rgid="root" pid="9" sid="0" tid="0 0 0.0.0.0"/>

下图显示了 process 标记的格式。

图 31-5 process 标记格式

image:上文对该图进行了说明。

return 标记

return 标记包含系统调用的返回状态 (u_error) 以及进程返回值 (u_rval1)。

return 标记有三个字段:

return 标记始终作为系统调用的内核生成审计记录的一部分返回。在应用程序审计中,此标记指示退出状态以及其他返回值。

praudit 命令按如下方式显示系统调用的 return 标记:

return,failure: Operation now in progress,-1

praudit -x 命令显示 return 标记的字段:

<return errval="failure: Operation now in progress" retval="-1/">

sequence 标记

sequence 标记包含一个序列号。每次向审计迹添加一条审计记录,序列号就增加一个数字。该标记用于调试。

sequence 标记有两个字段:

praudit 命令显示 sequence 标记的字段:

sequence,1292

praudit -x 命令显示 sequence 标记的内容:

<sequence seq-num="1292"/>

注 - 仅当 seq 审计策略选项处于活动状态时,才输出 sequence 标记。


socket 标记

socket 标记包含描述 Internet 套接字的信息。在某些情况下,该标记有四个字段:

praudit 命令按如下方式显示该 socket 标记实例:

socket,0x0002,0x83b1,localhost

在大多数情况下,该标记有八个字段:

自 Solaris 8 发行版开始,Internet 地址可以用 IPv4 格式或 IPv6 格式显示。IPv4 地址使用 4 个字节。IPv6 地址使用 1 个字节来表示地址类型,使用 16 个字节来表示地址。

praudit 命令按如下方式显示 socket 标记:

socket,0x0002,0x0002,0x83cf,example1,0x2383,server1.Subdomain.Domain.COM

praudit -x 命令显示 socket 标记的字段。由于显示的原因进行了换行。

<socket sock_domain="0x0002" sock_type="0x0002" lport="0x83cf" 
laddr="example1" fport="0x2383" faddr="server1.Subdomain.Domain.COM"/>

subject 标记

subject 标记描述执行或尝试执行某项操作的用户。格式与 process 标记的格式相同。

subject 标记有九个字段:

审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。


注 - subject 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。在此情况下,应将此值设置为 -1


包含终端 ID 的任何标记都具有多个变体。praudit 命令可隐藏这些变体。因此,对于包含终端 ID 的任何标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址和端口号,或是设备 ID。设备 ID(如连接到调制解调器的串行端口)可以为零。可使用多种格式指定终端 ID。

以设备编号表示的终端 ID 按如下方式指定:

在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:

自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:

subject 标记始终作为系统调用的内核生成审计记录的一部分返回。praudit 命令按如下方式显示 subject 标记:

subject,jdoe,root,root,root,root,1631,1421584480,8243 65558 machine1

praudit -x 命令显示 subject 标记的字段。由于显示的原因进行了换行。

<subject audit-uid="jdoe" uid="root" gid="root" ruid="root" 
rgid="root" pid="1631" sid="1421584480" tid="8243 65558 machine1"/>

下图显示了 subject 标记的格式。

图 31-6 subject 标记格式

image:上文对该图进行了说明。

text 标记

text 标记包含一个文本字符串。

text 标记有三个字段:

praudit -x 命令显示 text 标记的内容:

<text>booting kernel</text>

trailer 标记

headertrailer 这两个标记的特殊之处在于,它们将审计记录的各个结束点区分开来,并将所有其他标记括在一起。header 标记指示审计记录的开头。trailer 标记指示审计记录的结尾。trailer 标记是可选标记。仅当已设置 trail 审计策略选项时,才能将 trailer 标记添加为每条记录的最后一个标记。

在 trailer 打开的情况下生成审计记录时,auditreduce 命令可以验证 trailer 是否正确指回记录 header。trailer 标记支持向后查找审计迹。

trailer 标记有三个字段:

praudit 命令按如下方式显示 trailer 标记:

trailer,136

uauth 标记

uauth 标记记录命令或操作中的授权使用情况。

uauth 标记包含以下字段:

praudit 命令按如下方式显示 uauth 标记:

use of authorization,solaris.admin.printer.delete

upriv 标记

upriv 标记记录命令或操作中的特权使用情况。

praudit -x 命令显示 upriv 标记的字段:

<use_of_privilege result="successful use of priv">proc_setid</use_of_privilege>

zonename 标记

zonename 标记记录发生审计事件的区域。字符串 "global" 指示审计事件发生在全局区域。

zonename 标记包含以下字段:

praudit -x 命令显示 zonename 标记的内容:

<zone name="graphzone"/>