跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 配置审计
auditconfig subcommand...
auditconfig 提供了一个用于获取和设置内核审计参数的命令行接口。
除了获取或设置持久性的审计服务值以外,只有在启用了 Solaris 审计功能时此功能才可用。
队列值为零 (0) 表示应用系统缺省值。
perzone 策略的设置决定了 auditconfig 控制的审计设置的作用域。如果设置了 perzone,则这些值反映本地区域,除非另行说明。否则,这些设置针对整个系统。基于 perzone 设置所做的任何限制只针对应用了该限制的每个选项。
非全局区域管理员可以设置除 perzone 和 ahlt 以外的所有审计策略选项。perzone 和 ahlt 仅适用于全局区域;设置这些策略需要有全局区域管理员权限。perzone 和 ahlt 在下面的 -setpolicy 选项中介绍。
此命令可供授予了“审计控制权限”配置文件的管理员使用。
支持以下选项:
显示或设置正在运行的系统上除审计服务的持久性值以外的其他值。
此选项仅适用于以下列出了此选项的子命令。
将所配置的无归属审计掩码 kmask 设置为所配置的无归属审计掩码。例如:
# auditconfig -aconf Configured non-attributable event mask.
此命令使用包含文本标记 string 的进程审计特征来构建审计事件 event 的审计记录。返回标记是根据 sorf(成功/失败标志)和 retval(返回值)构建的。事件为 char* 类型,sorf 为 0/1(代表成功/失败),retval 为错误号值,string 为 *char 类型。此命令用于通过 shell 脚本构建审计记录。此选项的示例:
# auditconfig -audit AUE_ftpd 0 0 "test string" # audit record from audit trail: header,76,2,ftp access,,Fri Dec 08 08:44:02 2000, + 669 msec subject,abc,root,other,root,other,104449,102336,235 197121 elbow text,test string return,success,0
根据审计服务中配置的条目 (-setnaflags) 检查内核中设置的无归属事件配置。如果内核审计事件的活动类掩码与配置的类掩码不匹配,则会报告不匹配。
检查内核审计事件到类映射的配置。如果内核审计事件的运行时类掩码与配置的类掩码不匹配,将报告不匹配。
对内核审计事件到类映射进行配置。运行时类映射将改为与审计事件到类数据库文件中的映射一致。
输出当前进程的审计会话 ID。例如:
# auditconfig -getasid audit session id = 102336
返回当前进程的审计特征。
# auditconfig -getaudit audit id = abc(666) process preselection mask = lo(0x1000,0x1000) terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77) audit session id = 102336
输出当前进程的审计 ID。例如:
# auditconfig -getauid audit id = abc(666)
输出当前的活动根位置(以系统引导时的根位置 [或本地区域根位置] 作为锚点)。例如:
# auditconfig -getcar current active root = /
显示与指定内核审计事件关联的 preselection 掩码。event 是内核事件编号或事件名称。
显示内核审计状况。显示的状况为以下文本字符串之一:auditing,表示审计已启用并处于打开状态(内核审计模块正在构建审计记录并将其排队,审计守护进程正在运行);noaudit,表示审计已启用但处于关闭状态(内核审计模块未构建审计记录,也未对其排队,审计守护进程未运行);disabled,表示尚未启用审计模块(在 system(4) 中排除了该模块)。有关详细信息,请参见 auditd(1M)。
对于指定的事件(字符串或事件编号),输出 event 已分配的类。例如:
# auditconfig -getestate 20 audit class mask for event AUE_REBOOT(20) = 0x800 # auditconfig -getestate AUE_RENAME audit class mask for event AUE_RENAME(42) = 0x30
显示用户的缺省 preselection 审计标志。
获取当前区域的审计特征。例如:
# auditconfig -getkaudit audit id = unknown(-2) process preselection mask = lo,na(0x1400,0x1400) terminal id (maj,min,host) = 0,0,(0.0.0.0) audit session id = 0
如果未设置 perzone 审计策略,终端 ID 将是全局区域的终端 ID。否则,将是本地区域的终端 ID。
获取当前区域的无归属 preselection 掩码。例如:
# auditconfig -getkmask audit flags for non-attributable events = lo,na(0x1400,0x1400)
如果未设置审计策略 perzone,则内核掩码是全局区域的内核掩码。否则,它是本地区域的内核掩码。
显示无归属审计标志。
显示指定进程的审计 ID、preselection 掩码、终端 ID 以及审计会话 ID。
显示有关插件名称的信息。如果未指定 name,则显示所有插件。
显示内核审计策略。ahlt 和 perzone 策略反映全局区域中的设置。如果设置了 perzone,所有其他策略将反映本地区域的设置。如果未设置 perzone,策略是在计算机范围内应用的。
显示与审计远程服务器有关的信息。如果使用了 server 选项参数,则只会显示通用审计远程服务器配置。如果使用了 group 选项参数,则会显示有关所配置的所有连接组的信息。除了 group 参数以外,如果还指定了 connection_group 名称,则只会显示有关相应连接组的信息。
如果没有使用任何选项参数,则会显示有关通用审计远程服务器配置详细信息和所有连接组的信息。
输出当前工作目录(以系统引导时的区域根位置为锚点)。例如:
# cd /usr/tmp # auditconfig -getcwd current working directory = /var/tmp
获取审计队列写入缓冲区大小。例如:
# auditconfig -getqbufsz no configured audit queue size audit queue buffer size (bytes) = 1024
获取审计队列写入缓冲区大小、审计队列 hiwater 标记、审计队列 lowater 标记、审计队列 prod 间隔(周期)。
# auditconfig -getqctrl no configured audit queue lowater mark no configured audit queue hiwater mark no configured audit queue size no configured audit queue delay audit queue hiwater mark (records) = 100 audit queue lowater mark (records) = 10 audit queue buffer size (bytes) = 1024 audit queue delay (ticks) = 20 # auditconfig -setqbufsz 8192 # auditconfig -t -setqbufsz 12288 # auditconfig -setqdelay 20 # auditconfig -t -setqdelay 25 # auditconfig -getqctrl no configured audit queue lowater mark no configured audit queue hiwater mark configured audit queue buffer size (bytes) = 8192 configured audit queue delay (ticks) = 20 active audit queue hiwater mark (records) = 100 active audit queue lowater mark (records) = 10 active audit queue buffer size (bytes) = 12288 active audit queue delay (ticks) = 25
获取唤醒审计队列开始输出的间隔。例如:
# auditconfig -getqdelay no configured audit queue delay audit queue delay (ticks) = 20
获取阻塞审计记录生成进程时的未传送审计记录的高水位点。例如:
# ./auditconfig -getqhiwater no configured audit queue hiwater mark audit queue hiwater mark (records) = 100
获取被阻塞的进程继续执行时的未传送审计记录的低水位点。例如:
# auditconfig -getqlowater no configured audit queue lowater mark audit queue lowater mark (records) = 10
输出当前的审计统计信息。例如:
# auditconfig -getstat gen nona kern aud ctl enq wrtn wblk rblk drop tot mem 910 1 725 184 0 910 910 0 231 0 88 48
有关 -getstat 输出中标题的说明,请参见 auditstat(1M)。
输出当前进程的审计终端 ID。例如:
# auditconfig -gettid terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77)
显示当前配置的(运行时)内核和用户级审计事件信息。
显示内核审计策略以及每个策略的描述。
使用指定的 session-ID 执行 shell 或 cmd。例如:
# ./auditconfig -setasid 2000 /bin/ksh # # ./auditconfig -getpinfo 104485 audit id = abc(666) process preselection mask = lo(0x1000,0x1000) terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77) audit session id = 2000
使用指定的审计特征执行 shell 或 cmd。
执行具有指定 audit–ID 的 shell 或 cmd。
将内核事件 event 映射到 audit_flag 列表指定的类。event 是事件编号或名称。audit_flag 是代表审计类的字符串。有关详细信息,请参见 audit_flags(5)。如果未设置 perzone,此选项仅在全局区域内有效。
设置用户的缺省 preselection 审计标志;请参见 audit_flags(5)。缺省 preselection 标志将与用户的特定审计标志相结合,共同构成用户的 preselection 审计掩码。
将计算机的 IP 地址设置为指定的值。IP-address_type 为 ipv6 或 ipv4。
如果未设置 perzone,此选项仅在全局区域内有效。
设置计算机的无归属 preselection 标志。
如果未设置 perzone,此选项仅在全局区域内有效。
设置无归属审计标志;请参见 audit_flags(5)。无归属审计标志定义了无法将操作归属到某个验证用户时要审计的事件类。无归属事件的一个示例是登录失败。
设置指定进程的 preselection 掩码。flags 是标志的 ASCII 表示形式,类似于 audit_flags(5) 中的表示形式。
如果未设置 perzone,此选项仅在全局区域内有效。
将插件 plugin_name 配置为 active 或 inactive 的。(可选)配置排队等候插件处理的未处理审计记录的属性和数目。请参见相关的审计插件手册页和 auditd(1M)。
设置内核审计策略。策略 policy_flag 是表示审计策略的文本字符串。+ 前缀表示向当前审计策略中添加指定的策略。使用前缀 - 会从当前审计策略中删除指定的策略。只有先在全局区域设置了 perzone 策略,才能在本地区域设置策略。以下是有效的策略标志字符串(auditconfig -lspolicy 还可列出当前有效的审计策略标志字符串):
包括应用于当前区域的所有策略。
如果发生了无法传送的异步审计事件(因审计队列已达到高水位标记或因资源不足无法构建审计记录),则会调用 panic 并且系统会转储核心文件。缺省情况下,会删除记录并保留已删除记录的计数。
将 execv(2) 系统调用环境参数包含在审计记录内。缺省情况下不包含此信息。
将 execv(2) 系统调用参数包括到审计记录中。缺省情况下不包含此信息。
在审计资源耗尽时不暂停进程,而是删除审计记录并保留已删除记录的计数。缺省情况下,将暂停进程,直到有审计资源可用为止。
将辅助组标记包含在审计记录内。缺省情况下,不包含组标记。
不包含任何策略。如果不是在全局区域中使用,ahlt 和 perzone 策略不会发生改变。
将辅助路径标记添加到审计记录内。对于 shell 脚本,这些通常是动态链接共享库或命令解释程序的路径名。缺省情况下,不包括这些标记。
为每个区域维护单独的配置、队列以及日志并为每个区域执行单独的 auditd(1M) 版本。
审计公用文件。缺省情况下,不会对满足公用特征(由 root 用户拥有、可供所有人读取但不是所有人都可以写入)的特定文件审计读取类型的操作。
在每个审计记录中包含尾部标记。缺省情况下,不包括尾部标记。
在每个审计记录中包含序列标记。缺省情况下,不包括序列标记。序列标记将在每个审计记录中附加序列号。
在审计记录中包含在窗口之间移动的任何降级数据。仅当系统配置有 Trusted Extensions 时,此策略才可用。缺省情况下,不包括此信息。
在审计记录中包括任何在窗口之间移动的已升级数据。仅当系统配置有 Trusted Extensions 时,此策略才可用。缺省情况下,不包括此信息。
在每个审计记录中包括 zonename 标记。缺省情况下,不包括 zonename 标记。zonename 标记提供审计记录所源自的区域的名称。
将主审计远程服务器开关配置为活动或非活动的。如果将其设置为非活动的,则所配置的所有连接组将被视为非活动的。(可选)配置通用审计远程服务器属性。有关更多信息,请参见 ars(5)。
将审计远程服务器连接组 group_name 配置为活动或非活动的。(可选)配置相应的连接组属性。有关更多信息,请参见 ars(5)。
创建或销毁审计远程服务器连接组 group_name。有关更多信息,请参见 ars(5)。
设置审计队列写入缓冲区大小(字节)。零 (0) 表示重置为无配置的值。
设置审计队列写入缓冲区大小(字节)、hiwater 审计记录计数、lowater 审计记录计数以及转醒间隔(周期)。仅当设置了 perzone 时,才在本地区域内有效。零 (0) 表示重置为无配置的值。
设置审计队列转醒间隔(周期)。该选项决定了内核唤醒审计队列将审计记录写入到审计迹的间隔。仅当设置了 perzone 时,才在本地区域内有效。零 (0) 表示重置为无配置的值。
设置审计队列中未传送审计记录达到多少时审计记录生成进程将阻塞。仅当设置了 perzone 时,才在本地区域内有效。零 (0) 表示重置为无配置的值。
设置审计队列中未传送审计记录达到多少时被阻塞的审计进程将解除阻塞。仅当设置了 perzone 时,才在本地区域内有效。零 (0) 表示重置为无配置的值。
为具有指定审计会话 ID 的所有进程设置 preselection 掩码。仅当设置了 perzone 时,才在本地区域内有效。
重置审计统计信息计数器。仅当设置了 perzone 时,才在本地区域内有效。
为具有指定用户名或审计 ID 的所有进程设置 preselection 掩码。仅当设置了 perzone 时,才在本地区域内有效。
示例 1 使用 auditconfig
以下是 auditconfig 命令的示例。
# # Map kernel audit event number 10 to the "fr" audit class. # auditconfig -setclass 10 fr # # Turn on inclusion of exec arguments in exec audit records. # auditconfig -setpolicy +argv
示例 2 仅设置未处理审计记录的数目
以下命令序列仅设置排队等候 audit_binfile 插件的未处理审计记录的数目。
# See if audit_binfile is active. % auditconfig -getplugin audit_binfile # Set to queue 20 unprocessed audit records. # % auditconfig -setplugin audit_binfile "" 20
示例 3 重置队列控制参数
以下命令重置处于活动状态的已配置的队列控制参数。
# Get the audit remote server configuration auditconfig -getremote # Change an audit remote server attribute auditconfig -setremote server \ "listen_address=10.0.0.1,max_startups=10:30:60" # Create an audit remote server (wild card) connection group auditconfig -setremote group create egg_farm # Get a specific audit remote server connection group information auditconfig -getremote group egg_farm # Set a connection group attribute, activate the connection group auditconfig -setremote group active egg_farm \ "hosts=tipo.cz.oracle.com,binfile_dir=/var/audit/ARS"
示例 4 配置审计远程服务器
以下命令用于配置审计远程服务器。
# Get the audit remote server configuration auditconfig -getremote # Change an audit remote server attribute auditconfig -setremote server \ "listen_address=10.0.0.1,max_startups=10:30:60" # Create an audit remote server (wild card) connection group auditconfig -setremote group create egg_farm # Get a specific audit remote server connection group information auditconfig -getremote group egg_farm # Set a connection group attribute, activate the connection group auditconfig -setremote group active egg_farm \ "hosts=tipo.cz.oracle.com,binfile_dir=/var/audit/ARS"
成功完成。
出现错误。
存储审计系统中使用的事件定义。
存储审计系统中使用的类定义。
有关下列属性的说明,请参见 attributes(5):
|
audit(1M)、auditd(1M)、auditstat(1M)、praudit(1M)、execv(2)、audit_class(4)、audit_event(4)、system(4)、ars(5)、attributes(5)、audit_binfile(5)、audit_flags(5)、audit_remote(5)、audit_syslog(5)
请参见《《Oracle Solaris 11.1 管理:安全服务》》中有关审计的章节。
如果使用 -setplugin 选项选择了插件输出,使用 -setpolicy +cnt 和 -setqhiwater 选项时的系统行为将略有不同。如果设置了 -setpolicy +cnt,那么即使 audit_binary 插件的输出已停止,仍会继续将数据发送到选定的插件,而暂停磁盘空间释放。如果使用 -setpolicy –cnt,阻塞行为将如上面的“子命令”部分所述。在 auditd 中,队列的高水位标记值作为队列的上限使用,除非通过 qsize 属性进行覆盖,如上面的 -setplugin 选项的说明中所述。
用于修改或显示基于进程的信息的 auditconfig 选项不受 perzone 策略影响。用于修改系统审计数据(如终端 ID 和审计队列参数)的选项仅在全局区域内有效,除非设置了 perzone 策略。如果设置了 perzone,显示的系统审计将反映本地区域。否则,将反映全局区域的设置。
对插件 (-setplugin) 和审计远程服务器 (-setremote) 设置所做的更改要到刷新审计服务之后才会生效(例如变为活动或非活动的,或更改各自的属性)。使用 audit(1M) 可以刷新审计服务。