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 审计(任务)

Oracle Solaris 审计(任务列表)

配置审计文件(任务列表)

配置审计文件(任务)

如何修改 audit_control 文件

如何配置 syslog 审计日志

如何更改用户审计特征

如何添加审计类

如何更改审计事件的类成员身份

配置和启用审计服务(任务列表)

配置和启用审计服务(任务)

如何为审计文件创建分区

如何配置 audit_warn 电子邮件别名

如何配置审计策略

如何启用审计服务

如何禁用审计服务

如何更新审计服务

在区域中配置审计服务(任务)

如何配置以相同方式审计所有区域

如何配置每区域审计

管理审计记录(任务列表)

管理审计记录

如何显示审计记录格式

如何合并审计迹中的审计文件

如何从审计迹中选择审计事件

如何查看二进制审计文件的内容

如何清除 not_terminated 审计文件

如何防止审计迹溢出

Oracle Solaris 审计的故障排除(任务)

Oracle Solaris 审计的故障排除(任务列表)

如何确定 Oracle Solaris 正在运行中

如何减少生成的审计记录数目

如何审计用户执行的所有命令

如何找到对特定文件更改的审计记录

如何修改用户的预选掩码

如何阻止审计某些事件

如何限制二进制审计文件的大小

如何审计从其他操作系统的登录

如何审计 FTP 和 SFTP 文件传输

31.  Oracle Solaris 审计(参考)

词汇表

索引

配置审计文件(任务)

在网络上启用审计之前,可以针对您站点的审计要求定制审计配置文件。另外,还可以在启用审计服务之后重新启动审计服务或重新引导本地系统,以读取已更改的配置文件。但是,推荐的做法是在启动审计服务前尽可能多地定制审计配置。

如果已实现区域,则可以选择从全局区域审计所有区域。要在审计输出中区分各区域,可以设置 zonename 策略选项。或者,要分别审计各非全局区域,可以在全局区域中设置 perzone 策略,而在非全局区域中定制审计配置文件。有关概述的信息,请参见审计和 Oracle Solaris 区域。有关规划的信息,请参见如何规划区域中的审计。有关过程的信息,请参见在区域中配置审计服务(任务)

如何修改 audit_control 文件

/etc/security/audit_control 文件用于配置系统范围的审计。此文件可确定要审计的事件,发出审计警告的时间,以及审计文件的位置。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 可选保存 audit_control 文件的备份副本。
    # cp /etc/security/audit_control /etc/security/audit_control.orig
  3. 修改站点的 audit_control 文件。

    每一项都具有以下格式:

    keyword:value
    keyword

    定义行的类型。类型包括 dirflagsminfreenaflagsplugin。在 Solaris 10 发行版中,不推荐使用 dirminfree 行。

    有关关键字的说明,请参见以下示例。

    value

    指定与行类型相关联的数据。


    注 - 要指定审计目录的位置,请使用 audit_binfile.so 插件的 p_dir 属性。要指定最小空闲空间,请使用 p_minfree 属性。


  4. 可选检验该文件的语法。
    # audit -v /etc/security/audit_control
    syntax ok

示例 30-1 为所有用户预选审计类

audit_control 文件中的 flags 行定义了为系统上所有用户审计哪些可归属事件的类。这些类用逗号分隔。允许使用空格。在本示例中,将为所有用户审计 lo 类和 ap 类中的事件。

## audit_control file
flags:lo,ap
naflags:lo
plugin:name=...

要了解哪些事件分配到某个类中,请查看 audit_event 文件。您还可以使用 bsmrecord 命令,如示例 30-27 所示。

示例 30-2 预选无归属事件

在本示例中,将审计 na 类中的所有事件,以及所有无归属的 login 事件。

## audit_control file
flags:lo
naflags:lo,na
plugin:name=...

示例 30-3 指定二进制审计数据的位置

audit_binfile.so 插件的 p_dir 标志用于列出要用于二进制审计数据的审计文件系统。本示例中定义了三个存放二进制审计数据的位置。目录按照从主目录到万不得已时使用的目录的顺序列出。plugin 行不包含换行符。

## audit_control file
##
flags:lo
naflags:lo,na
plugin:name=audit_binfile.so; p_dir=/var/audit/egret.1/files,
/var/audit/egret.2/files,/var/audit

要设置文件系统来保存二进制审计数据,请参见如何为审计文件创建分区

示例 30-4 更改警告的软限制

在本示例中,设置了所有审计文件系统的最低空闲空间级别,以便在文件系统的可用空间只有 10% 时发出警告。

plugin 行不包含换行符。

## audit_control file
#
flags:lo
naflags:lo,na
plugin:name=audit_binfile.so; p_dir=/var/audit/examplehost.1/files,
/var/audit/examplehost.2/files,/var/audit/localhost/files; p_minfree=10

audit_warn 别名用于接收警告。要设置别名,请参见如何配置 audit_warn 电子邮件别名

如何配置 syslog 审计日志

可以指示审计服务,将在审计队列收集到的部分或全部审计数据复制到 syslog。在以下过程中,将保存二进制审计数据和文本审计数据。收集的文本审计数据是二进制数据的子集。

开始之前

必须预选审计类。应在 audit_control 文件的 flags 行或 naflags 行上指定预选的审计类。也可以在 audit_user 文件中为单个用户预选类,并使用 auditconfig 命令动态添加审计类。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 可选保存 audit_control 文件的备份副本。
    # cp /etc/security/audit_control /etc/security/audit_control.save
  3. 添加 audit_syslog.so 插件项。
    ## audit_control file
    flags:lo,ss
    naflags:lo,na
    plugin:name=audit_binfile.so;p_dir=/var/audit; p_minfree=20;
    plugin:name=audit_syslog.so;p_flags=+lo,-ss

    plugin 项的格式如下:

    plugin:name=name; qsize=max-queued-records;p_*=value
    • name=name-列出插件的名称。有效值是 audit_binfile.so audit_syslog.so

    • qsize=max-queued-records-指定为正向插件发送的审计数据排队的最大记录数。该属性是可选的。

    • p_*= value-指定插件特定的属性。audit_syslog.so 插件接受 p_flagsaudit_binfile.so 插件接受 p_dirp_minfreep_fsize。Solaris 10 10/08 中引入了 p_fsize 属性。

    有关插件特定属性的更多信息,请参见 audit_binfile(5)audit_syslog(5) 手册页的 OBJECT ATTRIBUTES 部分。

  4. audit.notice 项添加到 syslog.conf 文件。

    此项包括日志文件的位置。

    # cat /etc/syslog.conf
    …
    audit.notice       /var/adm/auditlog

    请勿将文本日志和二进制审计文件存储在同一位置。用于读取二进制审计文件的 auditreduce 命令假定审计分区中的所有文件都是二进制审计文件。

  5. 创建日志文件。
    # touch /var/adm/auditlog
  6. 刷新 syslog 服务的配置信息。
    # svcadm refresh system/system-log
  7. 定期归档 syslog 日志文件。

    审计服务可生成大量输出。要管理日志,请参见 logadm(1M) 手册页。

示例 30-5 指定 syslog 输出的审计类

在以下示例中,syslog 实用程序收集预选审计类的子集。

## audit_user file
jdoe:pf
## audit_control file
flags:lo,ss
naflags:lo,na
plugin:name=audit_binfile.so; p_dir=/var/audit/host.1/files,
/var/audit/host.2/files,/var/audit/localhost/files; p_minfree=10
plugin:name=audit_syslog.so; p_flags=-lo,-na,-ss,+pf

flagsnaflags 项指示系统以二进制格式收集所有登录/注销、无归属及系统状态更改审计记录。audit_syslog.so 插件项指示 syslog 实用程序仅收集失败的登录、失败的无归属事件以及失败的系统状态更改。对于 jdoe 用户,二进制审计记录包括可识别配置文件的 shell 的所有使用。syslog 实用程序收集成功的可识别配置文件的命令。在示例 30-10 中创建了 pf 类。

示例 30-6 将 syslog 审计记录放置在远程系统上

可以更改 syslog.conf 文件中的 audit.notice 项,使其指向远程系统。在本示例中,本地系统的名称是 example1。远程系统是 remote1

example1 # cat /etc/syslog.conf
…
audit.notice       @remote1

remote1 系统上,syslog.conf 文件中的 audit.notice 项指向日志文件。

remote1 # cat /etc/syslog.conf
…
audit.notice       /var/adm/auditlog

示例 30-7 在 audit_control 文件中使用插件

audit_control 文件中指定非标志信息的优先方法是,使用 plugin 项。在本示例中,选择了审计标志,然后列出插件信息。

## audit_control file
flags:lo,ss
naflags:lo,na
plugin:name=audit_binfile.so;p_minfree=10; p_dir=/var/audit
plugin:name=audit_syslog.so; p_flags=+lo

如何更改用户审计特征

每个用户的定义都存储在 audit_user 数据库中。这些定义为指定的用户修改 audit_control 文件中的预选类。nsswitch.conf 文件确定是否使用本地文件或命名服务数据库。要计算用户的最终审计预选掩码,请参见进程审计特征

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 可选保存 audit_user 数据库的备份副本。
    # cp /etc/security/audit_user /etc/security/audit_user.orig
  3. audit_user 数据库中添加新项。

    在本地数据库中,每一项都具有以下格式:

    username:always-audit:never-audit
    username

    选择要审计的用户的名称。

    always-audit

    选择是指应该针对指定用户进行审计的审计类列表。

    never-audit

    选择绝对不要针对指定用户进行审计的审计类列表。

    可以通过用逗号分隔审计类来指定多个类。

    audit_user 项将在用户下一次登录时生效。

示例 30-8 更改对单个用户进行审计的事件

在本示例中,audit_control 文件包含系统的预选审计类:

## audit_control file
…
flags:lo,ss
naflags:lo,na

audit_user 文件显示了一个例外情况。当用户 jdoe 使用配置文件 shell 时,将审计此使用情况:

## audit_user file
jdoe:pf

jdoe 的审计预选掩码是 audit_user 设置与 audit_control 设置的组合。auditconfig -getaudit 命令显示 jdoe 的预选掩码:

# auditconfig -getaudit
audit id = jdoe(1234567)
process preselection mask = ss,pf,lo(0x13000,0x13000)
terminal id (maj,min,host) = 242,511,example1(192.168.160.171)
audit session id = 2138517656

示例 30-9 只审计用户,而不审计系统

在本示例中,在此系统上只审计四个用户的登录和角色活动。audit_control 文件不为系统预选审计类。

## audit_control file
…
flags:
naflags:

audit_user 文件为四个用户预选两个审计类,如下所示:

## audit_user file
jdoe:lo,pf
kdoe:lo,pf
pdoe:lo,pf
sdoe:lo,pf

以下 audit_control 文件可记录无担保的入侵。在与 audit_user 文件合并后,此文件比本示例中第一个 audit_control 文件更能保护系统安全。

## audit_control file
…
flags:
naflags:lo
plugin:name=...

如何添加审计类

创建您自己的审计类时,可以只将需要针对您所在站点审计的审计事件存放到该类中。在一个系统上添加类时,应将此更改复制到正在审计的所有系统中。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 可选保存 audit_class 文件的备份副本。
    # cp /etc/security/audit_class /etc/security/audit_class.orig
  3. audit_class 文件中添加新项。

    每一项都具有以下格式:

    0xnumber:name:description
    0x

    number 标识为十六进制数值。

    number

    定义唯一审计类掩码。

    name

    定义审计类的字母组成的名称。

    description

    定义审计类的描述性名称。

    每个项在此文件中必须唯一。请勿使用现有的审计类掩码。

示例 30-10 创建新的审计类

本示例中会创建一个类来保存一个小型审计事件组。audit_class 文件中添加的项如下所示:

0x10000000:pf:profile command

此项创建一个名为 pf 的新审计类。示例 30-11 将填充此审计类。

故障排除

如果定制了 audit_class 文件,请确保对 audit_user 的修改与新的审计类一致。如果 audit_user 中的审计类不是 audit_class 数据库的子集,将会发生错误。

如何更改审计事件的类成员身份

可能需要更改审计事件的类成员身份来减小现有审计类的大小,或者将事件放置在它自己的类中。在一个系统上重新配置审计事件到类的映射时,应将此更改复制到正在审计的所有系统中。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 可选保存 audit_event 文件的备份副本。
    # cp /etc/security/audit_event /etc/security/audit_event.orig
  3. 通过更改事件的 class-list 来更改特定事件所属的类。

    每一项都具有以下格式:

    number:name:description:class-list
    number

    审计事件 ID。

    name

    审计事件的名称。

    description

    通常是触发创建审计记录的系统调用或可执行文件。

    class-list

    审计类的逗号分隔列表。

示例 30-11 将现有审计事件映射到新类

本示例中将现有审计事件映射到示例 30-10 中创建的新类。在 audit_control 文件中,二进制审计记录可捕获 pf 类中事件的成功和失败信息。syslog 审计日志只包含 pf 类中事件的失败信息。

# grep pf | /etc/security/audit_class
0x10000000:pf:profile command
# vi /etc/security/audit_event
6180:AUE_prof_cmd:profile command:ua,as,pf
# vi audit_control
...
flags:lo,pf
plugin:name=audit_binfile.so; p_dir=/var/audit; p_minfree=10
plugin:name=audit_syslog.so; p_flags=-lo,-pf

示例 30-12 审计 setuid 程序的使用

本示例将创建一个类,保存用于监视 setuidsetgid 程序调用的事件。二进制审计记录可捕获 lona 类中事件的成功和失败信息,以及 st 类中事件的成功信息。syslog 审计日志仅包含 st 类中事件的成功信息。

# vi /etc/security/audit_class
0x00000800:st:setuid class
# vi /etc/security/audit_event
26:AUE_SETGROUPS:setgroups(2):st
27:AUE_SETPGRP:setpgrp(2):st
40:AUE_SETREUID:setreuid(2):st
41:AUE_SETREGID:setregid(2):st
214:AUE_SETEGID:setegid(2):st
215:AUE_SETEUID:seteuid(2):st

# vi audit_control
## audit_control file
flags:lo,+st
naflags:lo,na
plugin:name=audit_binfile.so; p_dir=/var/audit; p_minfree=10
plugin:name=audit_syslog.so; p_flags=-lo,+st