auditd
: Configure the audit daemon for use with a specified audit profile.auditd::config
: This class is called from auditd for service config.auditd::config::audisp
: Configures the audit dispatcher primarily for sending audit logs directly to syslog without intervention.auditd::config::audisp::syslog
: Utilizes rsyslog to send all audit records to syslog.auditd::config::audisp_service
: Notify auditd to restart to ensure the process for audisp is running.auditd::config::audit_profiles
: Provides global audit rule configuration and a base set of audit rules based on the built-in audit profile(s).auditd::config::audit_profiles::built_in
: An audit profile that allows the use of sample rulesets included with the audit package to be used to configure a system.auditd::config::audit_profiles::custom
: A set of user specified rules in a form that is easy to manipulate via Hieraauditd::config::audit_profiles::simp
: A set of general purpose audit rules that should meet most security policy requirementsauditd::config::audit_profiles::stig
: A set of audit rules that are configured to satisfy DISA STIG compliance checks for EL7.auditd::config::grub
: Enables/disables auditing at boot time.auditd::config::logging
: Ensures that plugin for syslog is installed so audit events can be sent to syslog in addition the audit partition.auditd::install
: Install the auditd packagesauditd::service
: Ensure that the auditd service is running
auditd::rule
: Add rules to the audit daemon.
auditd::calculate_space_left
: Calculates the correct default value for 'space_left' based on the value of 'admin_space_left'.auditd::get_array_index
: Returns a string that represents the first index of the specified element within the Array.auditd::validate_init_params
: Validates selected params from the main auditd class.
Auditd::AuditProfile
: Matches the types of auditd profiles allowedAuditd::DiskErrorAction
: Matches disk error actions in auditd.confAuditd::DiskFullAction
: Matches actions to take when disk is full (see auditd.conf)Auditd::Flush
: Matches actions flush in auditd.confAuditd::LogFacility
: Matches log facility that can be used in syslog.conf pluginAuditd::LogFormat
: Matches log formats that can be used in auditd.confAuditd::LogPriority
: Matches log priorities that can be used in syslog.conf pluginAuditd::MaxLogFileAction
: Matches available matches for maxlogfileaction in auditd.confAuditd::NameFormat
: Matche s available name formats in audotd.confAuditd::OverflowAction
: Matches overflow_action settings in auditd.conf or audisp.confAuditd::RootAuditLevel
: Matches root audit level settings in auditd.confAuditd::SpaceLeftAction
: Matches spaceleftaction for auditd.conf
Any variable that is not described here can be found in auditd.conf(5) and auditctl(8).
- See also
- auditd.conf(5)
- auditctl(8)
The following parameters are available in the auditd
class:
enable
default_audit_profile
default_audit_profiles
audit_auditd_config
lname
ignore_anonymous
ignore_crond
ignore_time_daemons
ignore_crypto_key_user
ignore_errors
ignore_failures
ignore_system_services
action_mail_acct
admin_space_left
admin_space_left_action
at_boot
buffer_size
backlog_wait_time
disk_error_action
disk_full_action
disp_qos
dispatcher
failure_mode
flush
freq
immutable
log_file
local_events
log_format
log_group
loginuid_immutable
max_log_file
max_log_file_action
max_restarts
name_format
num_logs
overflow_action
package_name
package_ensure
plugin_dir
priority_boost
q_depth
rate
root_audit_level
service_name
space_left
space_left_action
syslog
target_selinux_types
uid_min
verify_email
write_logs
purge_auditd_rules
Data type: Boolean
If true, enable auditing.
Default value: true
Data type: Optional[Variant[Enum['simp'],Boolean]]
Deprecated by $default_audit_profiles
Default value: undef
Data type: Array[Auditd::AuditProfile]
The built-in audit profile(s) to use to provide global audit rule configuration (error handling, buffer size, etc.) and a base set of audit rules.
- When more than one profile is specified, the profile rules are effectively concatenated in the order the profiles are listed.
- To add rules to the base set, use
auditd::rule
. - To manage the audit rules, yourself, set this parameter to
[]
. - @see
auditd::config::audit_profiles
for more details about this configuration.
Default value: [ 'simp' ]
Data type: Boolean
Set up an audit rule to audit the auditd
configuration files.
Default value: true
Data type: String
An alias for the name
variable in the configuration file. This is used
since $name
is a reserved keyword in Puppet.
Default value: $facts['networking']['fqdn']
Data type: Boolean
For built-in audit profiles, whether to drop anonymous and daemon
events, i.e., events for which auid
is '-1' (aka 'unset').
Audit records from these events are prolific but not useful.
Default value: true
Data type: Boolean
For built-in audit profiles, whether to drop events related to cron
jobs. cron
creates a lot of audit events that are not usually useful.
Default value: true
Data type: Boolean
Ignore time modifications by time daemons that are running on the system since this is valid activity.
Default value: true
Data type: Boolean
Ignore CRYPTO_KEY_USER logs since these are generally noise.
Default value: true
Data type: Boolean
Whether to set the auditctl
'-i' option
Default value: true
Data type: Boolean
Whether to set the auditctl
'-c' option
Default value: true
Data type: Boolean
For built-in audit profiles, whether to ignore system service events,
i.e., events for which the auid
is set but is less than the
minimum UID for human users on the system. In most security guides,
this filter is attached to every system call rule. So, by implementing
the filter in an upfront drop rule, this feature provides optimization
of that filtering.
Default value: true
Data type: String[1]
Default value: 'root'
Data type: Variant[Integer[0],Pattern['^\d+%$']]
Default value: 50
Data type: Auditd::SpaceLeftAction
Default value: 'rotate'
Data type: Boolean
If true, modify the Grub settings to enable auditing at boot time.
Default value: true
Data type: Integer[0]
Value of the auditctl
'-b' option
Default value: 16384
Data type: Optional[Integer[1,600000]]
Default value: undef
Data type: Auditd::DiskErrorAction
Default value: 'syslog'
Data type: Auditd::DiskFullAction
Default value: 'rotate'
Data type: Enum['lossy','lossless']
auditd
version 2 only
Default value: 'lossy'
Data type: Stdlib::Absolutepath
auditd
version 2 only
Default value: '/sbin/audispd'
Data type: Integer[0]
Value of the auditctl
'-f' option
Default value: 1
Data type: Auditd::Flush
Default value: 'incremental'
Data type: Integer[0]
Default value: 20
Data type: Boolean
Whether or not to make the configuration immutable when using built-in audit profiles. Be aware that, should you choose to make the configuration immutable, you will not be able to change your audit rules without a reboot.
Default value: false
Data type: Stdlib::Absolutepath
Default value: '/var/log/audit/audit.log'
Data type: Optional[Boolean]
auditd
version 3 only
Default value: undef
Data type: Auditd::LogFormat
The output log format
- 'NOLOG' is deprecated as of auditd 2.5.2
- 'ENRICHED' is only available in auditd >= 2.6.0
Default value: 'raw'
Data type: String
Default value: 'root'
Data type: Boolean
Sets the --loginuid-immutable option
- This has been noted to potentially cause issues with some types of containers but a concrete explanation of what types has not yet been found.
Default value: true
Data type: Integer[0]
Default value: 24
Data type: Auditd::MaxLogFileAction
Default value: 'rotate'
Data type: Optional[Integer[1]]
sets the number of times a plugin will be restart.
Default value: undef
Data type: Auditd::NameFormat
Default value: 'user'
Data type: Integer[0]
Default value: 5
Data type: Optional[Auditd::Overflowaction]
sets the overflow action.
Default value: undef
Data type: String[1]
The name of the auditd package.
Default value: 'audit'
Data type: Simplib::PackageEnsure
Default value: simplib::lookup('simp_options::package_ensure', { 'default_value' => 'installed' })
Data type: Stdlib::Absolutepath
sets the directory for the plugin configuration files.
Data type: Integer[0]
Default value: 3
Data type: Integer[0]
how big to make the internal queue of the audit event dispatcher
Default value: 400
Data type: Integer[0]
Value of the auditctl
'-r' option
Default value: 0
Data type: Auditd::RootAuditLevel
What level of auditing should be used for su-root activity in built-in audit profiles that provide su-root rules. Be aware that setting this to anything besides 'basic' may overwhelm your system and/or log server. Options can be, 'basic', 'aggressive', 'insane'. For the 'simp' audit profile, these options are as follows:
- Basic: Safe syscall rules, should not follow program execution outside of the base app
- Aggressive: Adds syscall rules for execve, rmdir and variants of rename and unlink
- Insane: Adds syscall rules for write, creat and variants of chown, fork, link and mkdir
Default value: 'basic'
Data type: String[1]
The name of the auditd service.
Default value: 'auditd'
Data type: Variant[Integer[0],Pattern['^\d+%$']]
Must be larger than $admin_space_left
.
- If
$admin_space_left
is anInteger
, will be set to30 + $admin_space_left
- If
$admin_space_left
is a percentage (auditd >= 2.8.5), will be set to1% + $admin_space_left
Default value: auditd::calculate_space_left($admin_space_left)
Data type: Auditd::SpaceLeftAction
Default value: 'syslog'
Data type: Boolean
If true, manage the settings for the syslog plugin It was left defaulted to simp_options::syslog value for backwards compatability. This does not activate/deactivate the plugin. That setting is in the auditd::config::audisp::syslog::enable setting. If syslog is set to true, by default it will enable the syslog plugin in order to be backwards compatable. If you want to ensure the plugin is disabled, set auditd::config::audisp::syslog::enable to false. If this is set to false the plugin settings are not managed by puppet.
Default value: simplib::lookup('simp_options::syslog', {'default_value' => false })
Data type: Optional[Array[Pattern['^.*_t$']]]
A list of SELinux types to target, all others will be dropped
For systems that require all users and processes to be in a confined namespace, you may find that only auditing unconfined types will be sufficient since all other invalid system actions are already audited.
Default value: undef
Data type: Integer[0]
The minimum UID for human users on the system. For built-in audit profiles
when $ignore_system_services
is true, any audit events generated
by users below this number will be ignored, unless a corresponding rule
is inserted before the UID-limiting rule in the rules list. When using
auditd::rule
, you can create such a rule by setting the absolute
parameter to be 'first'.
Default value: Integer(pick(fact('uid_min'), 1000))
Data type: Optional[Boolean]
auditd version 3 only
Default value: undef
Data type: Boolean
Whether or not to write logs to disk.
- The
NOLOG
option onlog_format
has been deprecated in newer versions ofauditd
so this attempts to do "the right thing" whenlog_format
is set toNOLOG
for legacy support.
Default value: $log_format ? { /^(?i:nolog)$/ => false, default => true
Data type: Boolean
Whether or not to purge existing auditd rules under /etc/audit/rules.d
Default value: true
NOTE: THIS IS A PRIVATE CLASS**
The following parameters are documented in audispd.conf(5).
These settings are deprecated and will be removed in the next major release of auditd and are here for backwards compatability.
In auditd version 3 these settings were moved to auditd.conf and audisp.conf was deprecated. For this reason they are set in the init.pp module with the other auditd.conf values also. If you are trying to set these values for auditd version 3 then you must set them there. These settings are aliased in hiera to auditd settings so you can move your settings for these parameters to auditd::* now to ensure compatability with future major releases but settings in hiera that are already exist will still work. The following setting maps to the name variable in audisp.conf.
The following parameters are available in the auditd::config::audisp
class:
Data type: Integer
(deprecated)
Data type: Auditd::OverflowAction
(deprecated)
Data type: Integer
(deprecated)
Data type: Integer
(deprecated)
Data type: Auditd::NameFormat
(deprecated)
Data type: String
Default value: $facts['networking']['fqdn']
This capability is most useful for forwarding audit records to remote servers as syslog messages, since these records are already persisted locally in audit logs. For most sites, however, using this capability for all audit records can quickly overwhelm host and/or network resources, especially if the messages are forwarded to multiple remote syslog servers or (inadvertently) persisted locally. Site-specific, rsyslog actions to implement filtering will likely be required to reduce this message traffic.
If you are using simp_rsyslog, it, by default, sets up a rsyslog rule to drop the audispd messages from being written locally to prevent duplication of logging audit events on the local system. See simp_rsyslog::local for more information.
It is also recommend you ensure any forwarded, audit messages are encrypted using the stunnel module, due to the nature of the information carried by these messages.
The following parameters are available in the auditd::config::audisp::syslog
class:
Data type: Boolean
(deprecated)
If set, enable the SIMP rsyslog
module and set up the appropriate rules
for the auditd
services.
Default value: simplib::lookup('simp_options::syslog', { 'default_value' => false })
Data type: Boolean
(deprecated) When set to false, auditd records will be forwarded to remote servers and/or written to local syslog files, as directed by the site rsyslog configuration. This setting is not needed any more. If you want to disable/enable sending audit records to syslog, set the 'enable' parameter in this module to false/true as appropriate. It is left here for backwards compatability but will not be in the next major release.
Default value: true
Data type: Boolean
Enable or disable sending audit mesages to syslog.
Default value: true
Data type: Auditd::LogPriority
The syslog priority for all audit record messages. This value is used in the /etc/audisp/plugins.d/syslog.conf file.
Default value: 'LOG_INFO'
Data type: Auditd::LogFacility
The syslog facility for all audit record messages. This value is used in the /etc/audisp/plugins.d/syslog.conf file. For the older auditd versions used by CentOS6 and CentOS7, must be an empty string, LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, or LOG_LOCAL7. An empty string results in LOG_USER and is the ONLY mechanism to specify that facility. No other facilities are allowed.
Default value: 'LOG_LOCAL5'
Data type: String
The path to the syslog plugin executable.
Data type: String
The type of auditd plugin.
Data type: Optional[String]
The name of the plugin package to install. Only needed for auditd version 3 and later.
Default value: undef
Data type: String
The default ensure parmeter for packages.
Default value: simplib::lookup('simp_options::package_ensure', { 'default_value' => 'installed' })
NOTE: THIS IS A PRIVATE CLASS**
Should only be called from audisp processing services.
NOTE: THIS IS A PRIVATE CLASS**
The configuration generated is contained in a set of files in
/etc/audit/rules.d
, which augenrules
parses for auditd
in
natural sort order, to create a single /etc/audit/auditd.rules
file. The generated files are as follows:
00_head.rules
: Containsauditctl
general configuration to remove existing rules when the rules are reloaded, ignore rule load errors/failures, and set the buffer size, failure mode, and rate limiting05_default_drop.rules
: Contains filtering rules for efficiency- Rules to drop prolific events of low-utility
- Rules to restrict events based on
auid
constraints that would normally be applied to all rules
50_*base.rules
:- Nominal base rules for one or more built-in profiles.
- One file will exist for each desired, built-in profile
- Files are named so that the ordering of profiles listed
in
$auditd::default_audit_profiles
is preserved - The corresponding class for each profile is
auditd::config::audit_profiles::<profile name>
60_custom.rules
: Custom rules as defined by theauditd::custom_rules
parameter if appending75.init.d_auditd.rules
:- A watch rule for
/etc/rc.d/init.d/auditd
permissions changes - A watch rule for permissions changes to the
auditd
log file
- A watch rule for
75.rotated_audit_logs.rules
- Watch rules for permissions changes to the rotated
auditd
log files
- Watch rules for permissions changes to the rotated
99_tail.rules
auditctl
immutable option, when$auditd::immutable
is 'true'
An audit profile that allows the use of sample rulesets included with the audit package to be used to configure a system.
The following parameters are available in the auditd::config::audit_profiles::built_in
class:
Data type: Array[String[1]]
The list of system sample rulesets to be included on the system. This list
can be found in the auditd_sample_rulesets
fact.
Default value: []
NO SANITY CHECKING IS PERFORMED ON THE RESULTING RULES
---
auditd::config::audit_profiles::custom::rules:
- "-a always,exit -F arch=b64 -S creat -F exit=-EACCES -k unsuccessful_file_operations"
- "-w /etc/passwd -p wa -k passwd_changes"
---
auditd::config::audit_profiles::custom::template: "my_templates_module/auditd/my_audit_rules.epp"
---
auditd::config::audit_profiles::custom::template: "my_templates_module/auditd/my_audit_rules.erb"
The following parameters are available in the auditd::config::audit_profiles::custom
class:
Data type: Optional[Array[String[1]]]
An Array of rules that will be joined with a \n
and inserted as the
complete audit rule set to be applied to the system.
Default value: undef
Data type: Optional[String[1]]
A template specification as you would pass to either the epp
or erb
function
- Specifying both
rules
andtemplate
will result in an error
Default value: undef
The defaults for this profile generate a set of audit rules that are both usable on most systems and conformant with standard auditing requirements. A few key usage/implementation details about this profile should be noted:
- This profile uses optimized audit rules. Specifically, it
- Combines system call rules as much as possible
- By default, uses initial drop rules for the
auid
filters that would be otherwise applied to all system call rules - By default, uses an initial drop rule for cron events that are prolific, but whose audit records are of very limited utility
- Although all security requirements allow optimization of audit rules, most of the automated security scanners do not yet understand audit rule optimizations. So, use of this profile may require explanation of these simple, yet effective, optimizations.
- You may overload your system and/or log server, if you enable the highly-prolific, but limited-utility audit capabilities that have been intentionally disabled, here, despite being required by specific security standards. 'chmod' auditing for all non-service users is an example of such a capability.
- In some cases, the more targeted set of rules for non-service users
that have su'd to root may provide a viable subset of required auditing.
This targeting filtering is enabled by
$audit_su_root_activity
and customized by$root_audit_level
,$basic_root_audit_syscalls
,$aggressive_root_audit_syscalls, and
$insane_root_audit_syscalls`.
The following parameters are available in the auditd::config::audit_profiles::simp
class:
root_audit_level
audit_32bit_operations
audit_32bit_operations_tag
audit_auditd_cmds
audit_auditd_cmds_tag
audit_auditd_cmds_list
basic_root_audit_syscalls
aggressive_root_audit_syscalls
insane_root_audit_syscalls
audit_unsuccessful_file_operations
audit_unsuccessful_file_operations_tag
audit_chown
audit_chown_tag
audit_chmod
audit_chmod_tag
audit_attr
audit_attr_tag
audit_rename_remove
audit_rename_remove_tag
audit_su_root_activity
audit_su_root_activity_tag
audit_suid_sgid
audit_suid_sgid_tag
audit_kernel_modules
audit_kernel_modules_tag
audit_time
audit_time_tag
audit_locale
audit_locale_tag
audit_network_ipv4_accept
audit_network_ipv4_accept_tag
audit_network_ipv6_accept
audit_network_ipv6_accept_tag
audit_network_ipv4_connect
audit_network_ipv4_connect_tag
audit_network_ipv6_connect
audit_network_ipv6_connect_tag
audit_mount
audit_mount_tag
audit_umask
audit_umask_tag
audit_local_account
audit_local_account_tag
audit_selinux_policy
audit_selinux_policy_tag
audit_selinux_cmds
audit_selinux_cmds_tag
audit_login_files
audit_login_files_tag
audit_session_files
audit_session_files_tag
audit_sudoers
audit_sudoers_tag
audit_cfg_sudoers
audit_cfg_sudoers_tag
audit_grub
audit_grub_tag
audit_cfg_grub
audit_cfg_grub_tag
audit_cfg_sys
audit_cfg_sys_tag
audit_cfg_cron
audit_cfg_cron_tag
audit_cfg_shell
audit_cfg_shell_tag
audit_cfg_pam
audit_cfg_pam_tag
audit_cfg_security
audit_cfg_security_tag
audit_cfg_services
audit_cfg_services_tag
audit_cfg_xinetd
audit_cfg_xinetd_tag
audit_yum
audit_yum_tag
audit_cfg_yum
audit_cfg_yum_tag
audit_yum_cmd
audit_yum_cmd_tag
audit_rpm_cmd
audit_rpm_cmd_tag
audit_ptrace
audit_ptrace_tag
audit_personality
audit_personality_tag
audit_passwd_cmds
audit_passwd_cmds_tag
audit_priv_cmds
audit_priv_cmds_tag
audit_postfix_cmds
audit_postfix_cmds_tag
audit_ssh_keysign_cmd
audit_ssh_keysign_cmd_tag
audit_suspicious_apps
audit_suspicious_apps_tag
audit_suspicious_apps_list
audit_systemd
audit_systemd_tag
audit_crontab_cmd
audit_crontab_cmd_tag
audit_pam_timestamp_check_cmd
audit_pam_timestamp_check_cmd_tag
Data type: Auditd::RootAuditLevel
What level of auditing should be used for su-root activity. Be aware that setting this to anything besides 'basic' may overwhelm your system and/or log server. Options can be, 'basic', 'aggressive', 'insane'
- Basic: Safe syscall rules, should not follow program execution outside of the base app
- Aggressive: Adds syscall rules for execve, rmdir and variants of rename and unlink
- Insane: Adds syscall rules for write, creat and variants of chown, fork, link and mkdir
Default value: $::auditd::root_audit_level
Data type: Boolean
In general, any 32bit system calls on a 64bit systems should be seen as suspicious.
Default value: $facts['os']['hardware'] ? { 'x86_64' => true, default => false
Data type: String[1]
Tag to be added to entries triggered by audit_32bit_operations
Default value: '32bit-api'
Data type: Boolean
Audit calls to the auditd management CLI commands
Default value: true
Data type: String[1]
Tag to be added to entries triggered by audit_auditd_cmds
Default value: 'access-audit-trail'
Data type: Array[String[1]]
Commands to be audited if enabled by audit_auditd_cmds
Data type: Array[String[1]]
Basic syscalls to audit for su-root activity
Data type: Array[String[1]]
Aggressive syscalls to audit for su-root activity
Data type: Array[String[1]]
Insane syscalls to audit for su-root activity
Data type: Boolean
Whether to audit unsuccessful file operations. These are file operations that fail with EACCES or EPERM error codes
Default value: true
Data type: String[1]
The tag to identify the unsuccessful file operations in an audit record
Default value: 'access'
Data type: Boolean
Whether to audit chown
operations for all non-service users.
These operations are provided by chown
, fchown
, fchownat
,
and lchown
system calls.
Default value: true
Data type: String[1]
The tag to identify chown
operations in an audit record.
You should change this to 'perm_mod' to match automated DISA STIG
compliance checks for RHEL7.
Default value: 'chown'
Data type: Boolean
Whether to audit chmod
operations for all non-service users.
These operations are provided by chmod
, fchmod
, and fchmodat
system calls.
Default value: false
Data type: String[1]
The tag to identify chmod
operations in an audit record.
You should change this to 'perm_mod' to match automated DISA STIG
compliance checks for RHEL7.
Default value: 'chmod'
Data type: Boolean
Whether to audit xattr
operations for all non-service users.
These operations are provided by setxattr
, lsetxattr
, fsetxattr
,
removexattr
, lremovexattr
and fremovexattr
system calls.
Default value: true
Data type: String[1]
The tag to identify xattr
operations in an audit record.
You should change this to 'perm_mod' to match automated DISA STIG
compliance checks for RHEL7.
Default value: 'attr'
Data type: Boolean
Whether to audit rename/remove operations for all non-service users.
These operations are provided by rename
, renameat
, rmdir
,
unlink
, and unlinkat
system calls.
Default value: false
Data type: String[1]
The tag to identify rename/remove operations in an audit record
Default value: 'delete'
Data type: Boolean
Whether to audit other useful actions someone does when su'ing to root.
The list of system calls audited is controlled by $root_audit_level
.
Default value: true
Data type: String[1]
The tag to identify su
operations in an audit record
Default value: 'su-root-activity'
Data type: Boolean
Whether to audit setuid
/setgid
commands.
setuid
/setgid
command execution is audited by a single system call
rule.
Default value: true
Data type: String[1]
The tag to identify setuid
/setgid
command execution in an audit
record. You should change this to 'setuid/setgid' to match automated
DISA STIG compliance checks for RHEL7.
Default value: 'suid-exec'
Data type: Boolean
Whether to audit kernel module operations
Default value: true
Data type: String[1]
The tag to identify kernel module operations in an audit record. You should change this to 'module-change' to match automated DISA STIG compliance checks for RHEL7.
Default value: 'modules'
Data type: Boolean
Whether to audit operations that affect system time
Default value: true
Data type: String[1]
The tag to identify system time operations in an audit record
Default value: 'audit_time_rules'
Data type: Boolean
Whether to audit operations that affect system locale
Default value: true
Data type: String[1]
The tag to identify system locale operations in an audit record
Default value: 'audit_network_modifications'
Data type: Boolean
Audit incoming IPv4 connections
Default value: true
Data type: String[1]
Tag to be added to entries triggered by audit_network_ipv4_accept
Default value: 'ipv4_in'
Data type: Boolean
Audit incoming IPv6 connections
Default value: true
Data type: String[1]
Tag to be added to entries triggered by audit_network_ipv6_accept
Default value: 'ipv6_in'
Data type: Boolean
Audit outgoing IPv4 connections
Default value: false
Data type: String[1]
Tag to be added to entries triggered by audit_network_ipv4_connect
Default value: 'ipv4_in'
Data type: Boolean
Audit outgoing IPv6 connections
Default value: false
Data type: String[1]
Tag to be added to entries triggered by audit_network_ipv6_connect
Default value: 'ipv6_in'
Data type: Boolean
Whether to audit mount operations
Default value: true
Data type: String[1]
The tag to identify mount operations in an audit record. You should change this to 'privileged-mount' to match automated DISA STIG compliance checks for RHEL7.
Default value: 'mount'
Data type: Boolean
Whether to audit umask changes
Default value: false
Data type: String[1]
The tag to identify umask changes in an audit record
Default value: 'umask'
Data type: Boolean
Whether to audit local account changes
Default value: true
Data type: String[1]
The tag to identify local account changes in an audit record. You should change this to 'identity' to match the automated DISA STIG compliance checks for RHEL7.
Default value: 'audit_account_changes'
Data type: Boolean
Whether to audit selinux policy changes
Default value: true
Data type: String[1]
The tag to identify selinux policy changes in an audit record
Default value: 'MAC-policy'
Data type: Boolean
Whether to audit chcon
, semanage
, setsebool
, and setfiles
commands
Default value: false
Data type: String[1]
The tag to identify selinux command execution in an audit record
Default value: 'privileged-priv_change'
Data type: Boolean
Whether to audit changes to login files
Default value: true
Data type: String[1]
The tag to identify login file changes in an audit record
Default value: 'logins'
Data type: Boolean
Whether to audit changes to session files
Default value: true
Data type: String[1]
The tag to identify session file changes in an audit record
Default value: 'session'
Data type: Optional[Boolean]
Deprecated by $audit_cfg_sudoers
Default value: undef
Data type: Optional[String[1]]
Deprecated by $audit_cfg_sudoers_tag
Default value: undef
Data type: Boolean
Whether to audit changes to sudoers configuration files
Default value: true
Data type: String[1]
The tag to identify sudoers configuration file changes in an audit record. You should change this to 'privileged-actions' to match the automated DISA STIG compliance checks for RHEL7.
Default value: 'CFG_sys'
Data type: Optional[Boolean]
Deprecated by $audit_cfg_grub
Default value: undef
Data type: Optional[String[1]]
Deprecated by $audit_cfg_grub_tag
Default value: undef
Data type: Boolean
Whether to audit changes to grub configuration files
Default value: true
Data type: String[1]
The tag to identify grub configuration file changes in an audit record
Default value: 'CFG_grub'
Data type: Boolean
Whether to audit changes to key system configuration files not otherwise audited
Default value: true
Data type: String[1]
The tag to identify changes to key system configuration files not otherwise audited
Default value: 'CFG_sys'
Data type: Boolean
Whether to audit changes to cron configuration files
Default value: true
Data type: String[1]
The tag to identify cron configuration file changes in an audit record
Default value: 'CFG_cron'
Data type: Boolean
Whether to audit changes to global shell configuration files
Default value: true
Data type: String[1]
The tag to identify global shell configuration file changes in an audit record
Default value: 'CFG_shell'
Data type: Boolean
Whether to audit changes to PAM configuration files
Default value: true
Data type: String[1]
The tag to identify PAM configuration file changes in an audit record
Default value: 'CFG_pam'
Data type: Boolean
Whether to audit changes to /etc/security
Default value: true
Data type: String[1]
The tag to identify /etc/security
file changes in an audit record
Default value: 'CFG_security'
Data type: Boolean
Whether to audit changes to /etc/services
Default value: true
Data type: String[1]
The tag to identify /etc/services
file changes in an audit record
Default value: 'CFG_services'
Data type: Boolean
Whether to audit changes to xinetd configuration files
Default value: true
Data type: String[1]
The tag to identify xinetd configuration file changes in an audit record
Default value: 'CFG_xinetd'
Data type: Optional[Boolean]
Deprecated by $audit_cfg_yum
Default value: undef
Data type: Optional[String[1]]
Deprecated by $audit_cfg_yum_tag
Default value: undef
Data type: Boolean
Whether to audit changes to yum configuration files
Default value: true
Data type: String[1]
The tag to identify yum configuration file changes in an audit record
Default value: 'yum-config'
Data type: Boolean
Whether to audit yum
command execution
Default value: false
Data type: String[1]
The tag to identify yum
command execution in an audit record
Default value: 'package_changes'
Data type: Boolean
Whether to audit rpm
command execution
Default value: false
Data type: String[1]
The tag to identify rpm
command execution in an audit record
Default value: 'package_changes'
Data type: Boolean
Whether to audit ptrace
system calls
Default value: true
Data type: String[1]
The tag to identify ptrace
system calls in an audit record
Default value: 'paranoid'
Data type: Boolean
Whether to audit personality
system calls
Default value: true
Data type: String[1]
The tag to identify personality
system calls in an audit record
Default value: 'paranoid'
Data type: Boolean
Whether to audit the execution of password commands, i.e., passwd
,
unix_chkpwd
, gpasswd
, chage
, userhelper
Default value: true
Data type: String[1]
The tag to identify password command execution in an audit record
Default value: 'privileged-passwd'
Data type: Boolean
Whether to audit the execution of privilege-related commands, i.e.,
su
, sudo
, newgrp
, chsh
, and sudoedit
Default value: true
Data type: String[1]
The tag to identify privilege-related command execution in an audit record
Default value: 'privileged-priv_change'
Data type: Boolean
Whether to audit the execution of postfix-related commands, i.e.
postdrop
and postqueue
Default value: true
Data type: String[1]
The tag to identify postfix-related command execution in an audit record
Default value: 'privileged-postfix'
Data type: Boolean
Whether to audit the execution of the ssh-keysign
command
Default value: true
Data type: String[1]
The tag to identify ssh-keysign
command execution in an audit record
Default value: 'privileged-ssh'
Data type: Boolean
Audit various applications that generally represent suspicious host activity
Default value: true
Data type: String[1]
Tag to be added to entries triggered by audit_suspicious_apps
Default value: 'suspicious_apps'
Data type: Array[Stdlib::Absolutepath]
List of applications to be audited when audit_suspicious_apps
is enabled
Data type: Boolean
Audit systemd components
- Only takes effect on systems with systemd present
Default value: true
Data type: String[1]
Tag to be added to entries triggered by audit_systemd
Default value: 'systemd'
Data type: Boolean
Whether to audit the execution of the crontab
command
Default value: true
Data type: String[1]
The tag to identify crontab
command execution in an audit record
Default value: 'privileged-cron'
Data type: Boolean
Whether to audit the execution of the pam_timestamp_check
command
Default value: true
Data type: String[1]
The tag to identify pam_timestamp_check
command execution in an audit
record
Default value: 'privileged-pam'
The defaults for this profile generate a set of audit rules that conform to automated DISA STIG compliance checks for RHEL7. Satisfying the checks, instead of the intent of the security requirements, necessitates unoptimized rules. These unoptimized rules, in turn, negatively impact system performance.
WARNING: These rules may overload your system and/or log server!
When auditd performance is an issue, you may wish to
-
Disable capabilities that, despite being required by DISA STIG for RHEL7, produce large amounts audit records of limited utility.
chmod
auditing for all non-service users falls in this category. -
Use the optimized 'auditd::config::audit_profiles::simp' profile, instead. That profile is more comprehensive and performant.
The following parameters are available in the auditd::config::audit_profiles::stig
class:
uid_min
audit_unsuccessful_file_operations
audit_unsuccessful_file_operations_tag
audit_chown
audit_chown_tag
audit_chmod
audit_chmod_tag
audit_attr
audit_attr_tag
audit_rename_remove
audit_rename_remove_tag
audit_suid_sgid
default_suid_sgid_cmds
suid_sgid_cmds
audit_suid_tag
audit_sgid_tag
audit_suid_sgid_tag
audit_kernel_modules
audit_kernel_modules_tag
audit_mount
audit_mount_tag
audit_local_account
audit_local_account_tag
audit_selinux_cmds
audit_selinux_cmds_tag
audit_login_files
audit_login_files_tag
audit_cfg_sudoers
audit_cfg_sudoers_tag
audit_passwd_cmds
audit_passwd_cmds_tag
audit_priv_cmds
audit_priv_cmds_tag
audit_postfix_cmds
audit_postfix_cmds_tag
audit_ssh_keysign_cmd
audit_ssh_keysign_cmd_tag
audit_crontab_cmd
audit_crontab_cmd_tag
audit_pam_timestamp_check_cmd
audit_pam_timestamp_check_cmd_tag
Data type: Integer[0]
The minimum UID for human users on the system. Any audit events generated
by users below this number will be ignored unless a corresponding rule
is inserted before the UID-limiting rule in the rules list. When using
auditd::rule
, you can create such a rule by setting the absolute
parameter to be 'first'.
Default value: $::auditd::uid_min
Data type: Boolean
Whether to audit unsuccessful file operations. These are file operations that fail with EACCES or EPERM error codes
Default value: true
Data type: String[1]
The tag to identify the unsuccessful file operations in an audit record
Default value: 'access'
Data type: Boolean
Whether to audit chown
operations for all non-service users.
These operations are provided by chown
, fchown
, fchownat
,
and lchown
system calls.
Default value: true
Data type: String[1]
The tag to identify chown
operations in an audit record
Default value: 'perm_mod'
Data type: Boolean
Whether to audit chmod
operations for all non-service users.
These operations are provided by chmod
, fchmod
, and fchmodat
system calls.
Default value: true
Data type: String[1]
The tag to identify chmod
operations in an audit record
Default value: 'perm_mod'
Data type: Boolean
Whether to audit xattr
operations for all non-service users.
These operations are provided by setxattr
, lsetxattr
, fsetxattr
,
removexattr
, lremovexattr
and fremovexattr
system calls.
Default value: true
Data type: String[1]
The tag to identify xattr
operations in an audit record
Default value: 'perm_mod'
Data type: Boolean
Whether to audit rename/remove operations for all non-service users.
These operations are provided by rename
, renameat
, rmdir
,
unlink
, and unlinkat
system calls.
Default value: true
Data type: String[1]
The tag to identify rename/remove operations in an audit record
Default value: 'delete'
Data type: Boolean
Whether to audit setuid
/setgid
commands
Default value: true
Data type: Array[String[1]]
The default list of setuid
/setgid
commands to be audited.
- Should not include commands audited by other rules.
Data type: Array[String[1]]
Additional list of setuid
/setgid
commands to be audited.
You can use this to augment the $default_suid_sgid_cmds
per your site's needs.
Default value: []
Data type: String[1]
The tag to identify setuid
command execution in an audit record
Default value: 'setuid'
Data type: String[1]
The tag to identify setgid
command execution in an audit record
Default value: 'setgid'
Data type: String[1]
The tag to identify setuid
/setgid
command execution in an audit record
Default value: "${audit_suid_tag}/${audit_sgid_tag}"
Data type: Boolean
Whether to audit kernel module operations
Default value: true
Data type: String[1]
The tag to identify kernel module operations in an audit record
Default value: 'module-change'
Data type: Boolean
Whether to audit mount operations
Default value: true
Data type: String[1]
The tag to identify mount operations in an audit record
Default value: 'privileged-mount'
Data type: Boolean
Whether to audit local account changes
Default value: true
Data type: String[1]
The tag to identify local account changes in an audit record
Default value: 'identity'
Data type: Boolean
Whether to audit chcon
, semanage
, setsebool
, and setfiles
commands
Default value: true
Data type: String[1]
The tag to identify selinux command execution in an audit record
Default value: 'privileged-priv_change'
Data type: Boolean
Whether to audit changes to login files
Default value: true
Data type: String[1]
The tag to identify login file changes in an audit record
Default value: 'logins'
Data type: Boolean
Whether to audit changes to sudoers configuration files
Default value: true
Data type: String[1]
The tag to identify sudoers configuration file changes in an audit record
Default value: 'privileged-actions'
Data type: Boolean
Whether to audit the execution of password commands, i.e., passwd
,
unix_chkpwd
, gpasswd
, chage
, userhelper
Default value: true
Data type: String[1]
The tag to identify password command execution in an audit record
Default value: 'privileged-passwd'
Data type: Boolean
Whether to audit the execution of privilege-related commands, i.e.,
su
, sudo
, newgrp
, chsh
, and sudoedit
Default value: true
Data type: String[1]
The tag to identify privilege-related command execution in an audit record
Default value: 'privileged-priv_change'
Data type: Boolean
Whether to audit the execution of postfix-related commands, i.e.
postdrop
and postqueue
Default value: true
Data type: String[1]
The tag to identify postfix-related command execution in an audit record
Default value: 'privileged-postfix'
Data type: Boolean
Whether to audit the execution of the ssh-keysign
command
Default value: true
Data type: String[1]
The tag to identify ssh-keysign
command execution in an audit record
Default value: 'privileged-ssh'
Data type: Boolean
Whether to audit the execution of the crontab
command
Default value: true
Data type: String[1]
The tag to identify crontab
command execution in an audit record
Default value: 'privileged-cron'
Data type: Boolean
Whether to audit the execution of the pam_timestamp_check
command
Default value: true
Data type: String[1]
The tag to identify pam_timestamp_check
command execution in an audit
record
Default value: 'privileged-pam'
Enables/disables auditing at boot time.
The following parameters are available in the auditd::config::grub
class:
Data type: Boolean
Enable auditing in the kernel at boot time.
Default value: true
NOTE: THIS IS A PRIVATE CLASS**
NOTE: THIS IS A PRIVATE CLASS**
NOTE: THIS IS A PRIVATE CLASS**
The following parameters are available in the auditd::service
class:
Data type: Variant[String[1],Boolean]
ensure
state from the service resource
Default value: pick(getvar('auditd::enable'), 'running')
Data type: Boolean
enable
state from the service resource
Default value: pick(getvar('auditd::enable'), true)
Data type: Boolean
Do not check to see if the kernel is enforcing auditing before trying to manage the service.
- This may be required if auditing is not being actively managed in the kernel and someone has stopped the auditd service by hand.
Default value: false
Data type: Boolean
Add a reboot_notify
warning if the system requires a reboot before the
service can be managed.
Default value: true
All rules must be uniquely named. See auditctl(8)
for more information
on how to write the content for these rules.
- Overrides all other ordering parameters
The following parameters are available in the auditd::rule
defined type:
A unique identifier for the audit rules.
Data type: Variant[Array[String[1]],String[1]]
The content of the rules that should be added.
- Arrays will be joined with a newline
Data type: Optional[String[1]]
An alphanumeric (file system ordering) order string
Default value: undef
Data type: Boolean
Set this to 'true' if you want to prepend your custom rules (numeric 10)
Default value: false
Data type: Boolean
Set this to true
if you want the added rules to be absolutely first or
last depending on the setting of $first
.
Default value: false
Data type: Boolean
Prepend this rule to all other rules (numeric 00).
Default value: false
Type: Puppet Language
Calculates the correct default value for 'space_left' based on the value of 'admin_space_left'.
The auditd::calculate_space_left function.
Returns: Variant[Integer[0],Pattern['^\d+%$']]
Data type: Variant[Integer[0],Pattern['^\d+%$']]
Type: Ruby 4.x API
Terminates catalog compilation if the element is not found within the array.
Terminates catalog compilation if the element is not found within the array.
Returns: String
Index of element
in array
represented as
a string
Raises:
RuntimeError
ifelement
is not found withinarray
Data type: String
The element
Data type: Array
The array
Data type: Optional[Integer]
The minimum number of digits the index should be. It will be '0'-padded to meet this number.
Type: Puppet Language
Moved into a function to reduce class clutter.
Fails on discovered errors.
Moved into a function to reduce class clutter.
Fails on discovered errors.
Returns: None
Matches the types of auditd profiles allowed
Alias of Enum['built_in', 'simp', 'stig', 'custom']
Matches disk error actions in auditd.conf
Alias of Enum['IGNORE', 'SYSLOG', 'EXEC', 'SUSPEND', 'SINGLE', 'HALT', 'ignore', 'syslog', 'exec', 'suspend', 'single', 'halt']
Matches actions to take when disk is full (see auditd.conf)
Alias of Enum['IGNORE', 'SYSLOG', 'ROTATE', 'EXEC', 'SUSPEND', 'SINGLE', 'HALT', 'ignore', 'syslog', 'rotate', 'exec', 'suspend', 'single', 'halt']
Matches actions flush in auditd.conf
Alias of Enum['NONE', 'INCREMENTAL', 'DATA', 'SYNC', 'INCREMENTAL_ASYNC', 'none', 'incremental', 'data', 'sync', 'incremental_async']
Matches log facility that can be used in syslog.conf plugin
Alias of Enum['', 'LOG_LOCAL0', 'LOG_LOCAL1', 'LOG_LOCAL2', 'LOG_LOCAL3', 'LOG_LOCAL4', 'LOG_LOCAL5', 'LOG_LOCAL6', 'LOG_LOCAL7']
Matches log formats that can be used in auditd.conf
Alias of Enum['RAW', 'ENRICHED', 'NOLOG', 'raw', 'enriched', 'nolog']
Matches log priorities that can be used in syslog.conf plugin
Alias of Enum['LOG_DEBUG', 'LOG_INFO', 'LOG_NOTICE', 'LOG_WARNING', 'LOG_ERR', 'LOG_CRIT', 'LOG_ALERT', 'LOG_EMERG', 'LOG_AUTHPRIV']
Matches available matches for maxlogfileaction in auditd.conf
Alias of Enum['IGNORE', 'SYSLOG', 'SUSPEND', 'ROTATE', 'KEEP_LOGS', 'ignore', 'syslog', 'suspend', 'rotate', 'keep_logs']
Matche s available name formats in audotd.conf
Alias of Enum['NONE', 'HOSTNAME', 'FQD', 'NUMERIC', 'USER', 'none', 'hostname', 'fqd', 'numeric', 'user']
Matches overflow_action settings in auditd.conf or audisp.conf
Alias of Enum['IGNORE', 'SYSLOG', 'SUSPEND', 'SINGLE', 'HALT', 'ignore', 'syslog', 'suspend', 'single', 'halt']
Matches root audit level settings in auditd.conf
Alias of Enum['basic', 'aggressive', 'insane']
Matches spaceleftaction for auditd.conf
Alias of Enum['IGNORE', 'SYSLOG', 'ROTATE', 'EMAIL', 'EXEC', 'SUSPEND', 'SINGLE', 'HALT', 'ignore', 'syslog', 'rotate', 'email', 'exec', 'suspend', 'single', 'halt']