2 .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH AUDITCONFIG 1M "Sep 14, 2009"
8 auditconfig \- configure auditing
12 \fBauditconfig\fR \fIoption\fR...
18 \fBauditconfig\fR provides a command line interface to get and set kernel audit
22 This functionality is available only if the Solaris Auditing feature has been
23 enabled. See \fBbsmconv\fR(1M) for more information.
26 The setting of the \fBperzone\fR policy determines the scope of the audit
27 setting controlled by \fBauditconfig\fR. If \fBperzone\fR is set, then the
28 values reflect the local zone except as noted. Otherwise, the settings are for
29 the entire system. Any restriction based on the \fBperzone\fR setting is noted
30 for each option to which it applies.
33 A non-global zone administrator can set all audit policy options except
34 \fBperzone\fR and \fBahlt\fR. \fBperzone\fR and \fBahlt\fR apply only to the
35 global zone; setting these policies requires the privileges of a global zone
36 administrator. \fBperzone\fR and \fBahlt\fR are described under the
37 \fB-setpolicy\fR option, below.
46 Set the non-attributable audit mask from the \fBaudit_control\fR(4) file. For
52 Configured non-attributable events.
62 \fB\fB-audit\fR \fIevent\fR \fIsorf\fR \fIretval\fR \fIstring\fR\fR
66 This command constructs an audit record for audit event \fIevent\fR using the
67 process's audit characteristics containing a text token \fIstring\fR. The
68 return token is constructed from the \fIsorf\fR (success/failure flag) and the
69 \fIretval\fR (return value). The event is type \fBchar*\fR, the \fIsorf\fR is
70 0/1 for success/failure, \fIretval\fR is an errno value, \fIstring\fR is type
71 \fB*char\fR. This command is useful for constructing an audit record with a
72 shell script. An example of this option:
76 # auditconfig -audit AUE_ftpd 0 0 "test string"
79 audit record from audit trail:
80 header,76,2,ftp access,,Fri Dec 08 08:44:02 2000, + 669 msec
81 subject,abc,root,other,root,other,104449,102336,235 197121 elbow
97 Checks the configuration of the non-attributable events set in the kernel
98 against the entries in \fBaudit_control\fR(4). If the runtime class mask of a
99 kernel audit event does not match the configured class mask, a mismatch is
110 Check the configuration of kernel audit event to class mappings. If the runtime
111 class mask of a kernel audit event does not match the configured class mask, a
112 mismatch is reported.
122 Configure kernel audit event to class mappings. Runtime class mappings are
123 changed to match those in the audit event to class database file.
133 Prints the audit session ID of the current process. For example:
137 # auditconfig -getasid
138 audit session id = 102336
148 \fB\fB-getaudit\fR\fR
152 Returns the audit characteristics of the current process.
156 # auditconfig -getaudit
158 process preselection mask = lo(0x1000,0x1000)
159 terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77)
160 audit session id = 102336
174 Prints the audit ID of the current process. For example:
178 # auditconfig -getauid
193 Prints current active root location (anchored from root [or local zone root] at
194 system boot). For example:
198 # auditconfig -getcar
199 current active root = /
209 \fB\fB-getclass\fR \fIevent\fR\fR
213 Display the preselection mask associated with the specified kernel audit event.
214 \fIevent\fR is the kernel event number or event name.
224 Display the kernel audit condition. The condition displayed is the literal
225 string \fBauditing\fR meaning auditing is enabled and turned on (the kernel
226 audit module is constructing and queuing audit records); \fBnoaudit\fR, meaning
227 auditing is enabled but turned off (the kernel audit module is not constructing
228 and queuing audit records); \fBdisabled\fR, meaning that the audit module has
229 not been enabled; or \fBnospace\fR, meaning there is no space for saving audit
230 records. See \fBauditon\fR(2) and \fBauditd\fR(1M) for further information.
236 \fB\fB-getestate\fR \fIevent\fR\fR
240 For the specified event (string or event number), print out classes \fIevent\fR
241 has been assigned. For example:
245 # auditconfig -getestate 20
246 audit class mask for event AUE_REBOOT(20) = 0x800
247 # auditconfig -getestate AUE_RENAME
248 audit class mask for event AUE_RENAME(42) = 0x30
258 \fB\fB-getkaudit\fR\fR
262 Get audit characteristics of the current zone. For example:
266 # auditconfig -getkaudit
267 audit id = unknown(-2)
268 process preselection mask = lo,na(0x1400,0x1400)
269 terminal id (maj,min,host) = 0,0,(0.0.0.0)
275 If the audit policy \fBperzone\fR is not set, the terminal id is that of the
276 global zone. Otherwise, it is the terminal id of the local zone.
282 \fB\fB-getkmask\fR\fR
286 Get non-attributable pre-selection mask for the current zone. For example:
290 # auditconfig -getkmask
291 audit flags for non-attributable events = lo,na(0x1400,0x1400)
296 If the audit policy \fBperzone\fR is not set, the kernel mask is that of the
297 global zone. Otherwise, it is that of the local zone.
303 \fB\fB-getpinfo\fR \fIpid\fR\fR
307 Display the audit ID, preselection mask, terminal ID, and audit session ID for
308 the specified process.
314 \fB\fB-getpolicy\fR\fR
318 Display the kernel audit policy. The \fBahlt\fR and \fBperzone\fR policies
319 reflect the settings from the global zone. If \fBperzone\fR is set, all other
320 policies reflect the local zone's settings. If \fBperzone\fR is not set, the
321 policies are machine-wide.
331 Prints current working directory (anchored from zone root at system boot). For
337 # auditconfig -getcwd
338 current working directory = /var/tmp
348 \fB\fB-getqbufsz\fR\fR
352 Get audit queue write buffer size. For example:
356 # auditconfig -getqbufsz
357 audit queue buffer size (bytes) = 1024
367 \fB\fB-getqctrl\fR\fR
371 Get audit queue write buffer size, audit queue \fBhiwater\fR mark, audit queue
372 \fBlowater\fR mark, audit queue \fBprod\fR interval (ticks).
376 # auditconfig -getqctrl
377 audit queue hiwater mark (records) = 100
378 audit queue lowater mark (records) = 10
379 audit queue buffer size (bytes) = 1024
380 audit queue delay (ticks) = 20
390 \fB\fB-getqdelay\fR\fR
394 Get interval at which audit queue is prodded to start output. For example:
398 # auditconfig -getqdelay
399 audit queue delay (ticks) = 20
409 \fB\fB-getqhiwater\fR\fR
413 Get high water point in undelivered audit records when audit generation will
418 # ./auditconfig -getqhiwater
419 audit queue hiwater mark (records) = 100
429 \fB\fB-getqlowater\fR\fR
433 Get low water point in undelivered audit records where blocked processes will
438 # auditconfig -getqlowater
439 audit queue lowater mark (records) = 10
453 Print current audit statistics information. For example:
457 # auditconfig -getstat
458 gen nona kern aud ctl enq wrtn wblk rblk drop tot mem
459 910 1 725 184 0 910 910 0 231 0 88 48
464 See \fBauditstat\fR(1M) for a description of the headings in \fB-getstat\fR
475 Print audit terminal ID for current process. For example:
479 # auditconfig -gettid
480 terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77)
494 Display the currently configured (runtime) kernel and user level audit event
501 \fB\fB-lspolicy\fR\fR
505 Display the kernel audit policies with a description of each policy.
511 \fB\fB-setasid\fR \fIsession-ID\fR [\fIcmd\fR]\fR
515 Execute shell or \fIcmd\fR with specified \fIsession-ID\fR. For example:
519 # ./auditconfig -setasid 2000 /bin/ksh
521 # ./auditconfig -getpinfo 104485
523 process preselection mask = lo(0x1000,0x1000)
524 terminal id (maj,min,host) = 235,197121,elbow(172.146.89.77)
525 audit session id = 2000
535 \fB\fB-setaudit\fR \fIaudit-ID\fR \fIpreselect_flags\fR \fIterm-ID\fR
536 \fIsession-ID\fR [\fIcmd\fR]\fR
540 Execute shell or \fIcmd\fR with the specified audit characteristics.
546 \fB\fB-setauid\fR \fIaudit-ID\fR [\fIcmd\fR]\fR
550 Execute shell or \fIcmd\fR with the specified \fIaudit-ID\fR.
556 \fB\fB-setclass\fR \fIevent audit_flag\fR[\fI,audit_flag .\|.\|.\fR]\fR
560 Map the kernel event \fIevent\fR to the classes specified by \fIaudit_flags\fR.
561 \fIevent\fR is an event number or name. An \fIaudit_flag\fR is a two character
562 string representing an audit class. See \fBaudit_control\fR(4) for further
563 information. If \fBperzone\fR is not set, this option is valid only in the
570 \fB\fB-setkaudit\fR \fIIP-address_type\fR \fIIP_address\fR\fR
574 Set IP address of machine to specified values. \fIIP-address_type\fR is
575 \fBipv6\fR or \fBipv4\fR.
577 If \fBperzone\fR is not set, this option is valid only in the global zone.
583 \fB\fB-setkmask\fR \fIaudit_flags\fR\fR
587 Set non-attributes selection flags of machine.
589 If \fBperzone\fR is not set, this option is valid only in the global zone.
595 \fB\fB-setpmask\fR \fIpid flags\fR\fR
599 Set the preselection mask of the specified process. \fBflags\fR is the ASCII
600 representation of the flags similar to that in \fBaudit_control\fR(4).
602 If \fBperzone\fR is not set, this option is valid only in the global zone.
609 [\fI+\fR|\fI-\fR]\fIpolicy_flag\fR[\fI,policy_flag ...\fR]\fR
613 Set the kernel audit policy. A policy \fIpolicy_flag\fR is literal strings that
614 denotes an audit policy. A prefix of \fB+\fR adds the policies specified to the
615 current audit policies. A prefix of \fB-\fR removes the policies specified from
616 the current audit policies. No policies can be set from a local zone unless the
617 \fBperzone\fR policy is first set from the global zone. The following are the
618 valid policy flag strings (\fBauditconfig\fR \fB-lspolicy\fR also lists the
619 current valid audit policy flag strings):
626 Include all policies that apply to the current zone.
635 Panic is called and the system dumps core if an asynchronous audit event occurs
636 that cannot be delivered because the audit queue has reached the high-water
637 mark or because there are insufficient resources to construct an audit record.
638 By default, records are dropped and a count is kept of the number of dropped
648 Include the \fBexecv\fR(2) system call environment arguments to the audit
649 record. This information is not included by default.
658 Include the \fBexecv\fR(2) system call parameter arguments to the audit record.
659 This information is not included by default.
668 Do not suspend processes when audit resources are exhausted. Instead, drop
669 audit records and keep a count of the number of records dropped. By default,
670 process are suspended until audit resources become available.
679 Include the supplementary group token in audit records. By default, the group
680 token is not included.
689 Include no policies. If used in other than the global zone, the \fBahlt\fR and
690 \fBperzone\fR policies are not changed.
699 Add secondary path tokens to audit record. These are typically the pathnames of
700 dynamically linked shared libraries or command interpreters for shell scripts.
701 By default, they are not included.
710 Maintain separate configuration, queues, and logs for each zone and execute a
711 separate version of \fBauditd\fR(1M) for each zone.
720 Audit public files. By default, read-type operations are not audited for
721 certain files which meet \fBpublic\fR characteristics: owned by root, readable
722 by all, and not writable by all.
731 Include the trailer token in every audit record. By default, the trailer token
741 Include the sequence token as part of every audit record. By default, the
742 sequence token is not included. The sequence token attaches a sequence number
743 to every audit record.
749 \fB\fBwindata_down\fR\fR
752 Include in an audit record any downgraded data moved between windows. This
753 policy is available only if the system is configured with Trusted Extensions.
754 By default, this information is not included.
760 \fB\fBwindata_up\fR\fR
763 Include in an audit record any upgraded data moved between windows. This policy
764 is available only if the system is configured with Trusted Extensions. By
765 default, this information is not included.
774 Include the \fBzonename\fR token as part of every audit record. By default, the
775 \fBzonename\fR token is not included. The \fBzonename\fR token gives the name
776 of the zone from which the audit record was generated.
784 \fB\fB-setqbufsz\fR \fIbuffer_size\fR\fR
788 Set the audit queue write buffer size (bytes).
794 \fB\fB-setqctrl\fR \fIhiwater\fR \fIlowater\fR \fIbufsz\fR \fIinterval\fR\fR
798 Set the audit queue write buffer size (bytes), hiwater audit record count,
799 lowater audit record count, and wakeup interval (ticks). Valid within a local
800 zone only if \fBperzone\fR is set.
806 \fB\fB-setqdelay\fR \fIinterval\fR\fR
810 Set the audit queue wakeup interval (ticks). This determines the interval at
811 which the kernel pokes the audit queue, to write audit records to the audit
812 trail. Valid within a local zone only if \fBperzone\fR is set.
818 \fB\fB-setqhiwater\fR \fIhiwater\fR\fR
822 Set the number of undelivered audit records in the audit queue at which audit
823 record generation blocks. Valid within a local zone only if \fBperzone\fR is
830 \fB\fB-setqlowater\fR \fIlowater\fR\fR
834 Set the number of undelivered audit records in the audit queue at which blocked
835 auditing processes unblock. Valid within a local zone only if \fBperzone\fR is
842 \fB\fB-setsmask\fR \fIasid flags\fR\fR
846 Set the preselection mask of all processes with the specified audit session ID.
847 Valid within a local zone only if \fBperzone\fR is set.
857 Reset audit statistics counters. Valid within a local zone only if
858 \fBperzone\fR is set.
864 \fB\fB-setumask\fR \fIauid flags\fR\fR
868 Set the preselection mask of all processes with the specified audit ID. Valid
869 within a local zone only if \fBperzone\fR is set.
874 \fBExample 1 \fRUsing \fBauditconfig\fR
877 The following is an example of an \fBauditconfig\fR program:
883 # map kernel audit event number 10 to the "fr" audit class
885 % auditconfig -setclass 10 fr
888 # turn on inclusion of exec arguments in exec audit records
890 % auditconfig -setpolicy +argv
902 Successful completion.
918 \fB\fB/etc/security/audit_event\fR\fR
921 Stores event definitions used in the audit system.
927 \fB\fB/etc/security/audit_class\fR\fR
930 Stores class definitions used in the audit system.
936 See \fBattributes\fR(5) for descriptions of the following attributes:
944 ATTRIBUTE TYPE ATTRIBUTE VALUE
946 Interface Stability Committed
952 \fBaudit\fR(1M), \fBauditd\fR(1M), \fBauditstat\fR(1M), \fBbsmconv\fR(1M),
953 \fBpraudit\fR(1M), \fBauditon\fR(2), \fBexecv\fR(2), \fBaudit_class\fR(4),
954 \fBaudit_control\fR(4), \fBaudit_event\fR(4), \fBattributes\fR(5),
955 \fBaudit_binfile\fR(5)
958 See the section on Solaris Auditing in \fISystem Administration Guide: Security
963 If plugin output is selected using \fBaudit_control\fR(4), the behavior of the
964 system with respect to the \fB-setpolicy\fR \fB+cnt\fR and the
965 \fB-setqhiwater\fR options is modified slightly. If \fB-setpolicy\fR \fB+cnt\fR
966 is set, data will continue to be sent to the selected plugin, even though
967 output to the binary audit log is stopped, pending the freeing of disk space.
968 If \fB-setpolicy\fR \fB-cnt\fR is used, the blocking behavior is as described
969 under OPTIONS, above. The value set for the queue high water mark is used
970 within \fBauditd\fR as the default value for its queue limits unless overridden
971 by means of the \fBqsize\fR attribute as described in \fBaudit_control\fR(4).
974 The \fBauditconfig\fR options that modify or display process-based information
975 are not affected by the \fBperzone\fR policy. Those that modify system audit
976 data such as the terminal id and audit queue parameters are valid only in the
977 global zone, unless the \fBperzone\fR policy is set. The display of a system
978 audit reflects the local zone if \fBperzone\fR is set. Otherwise, it reflects
979 the settings of the global zone.
982 The \fB-setcond\fR option has been removed. Use \fBaudit\fR(1M) to enable or
986 The \fB-getfsize\fR and \fB-setfsize\fR options have been removed. Use
987 \fBaudit_binfile\fR(5) \fBp_fsize\fR to set the audit file size.