Puppet Class: auditd::config

Defined in:
manifests/config.pp

Summary

This class is called from auditd for service config.

Overview

NOTE: THIS IS A [PRIVATE](github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS**



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'manifests/config.pp', line 7

class auditd::config {
  assert_private()

  if $auditd::default_audit_profile != undef {
    deprecation('auditd::default_audit_profile',
      "'auditd::default_audit_profile' is deprecated. Use 'auditd::default_audit_profiles' instead")
    if $auditd::default_audit_profile {
      $profiles = [ 'simp' ]
    } else {
      $profiles = []
    }
  } else {
    $profiles = $auditd::default_audit_profiles
  }

  $config_file_mode = $auditd::log_group ? {
    'root'  => '0600',
    default => '0640'
  }

  $log_file_mode = $auditd::log_group ? {
    'root'  => 'u+rX,g-rwx,o-rwx',
    default => 'u+rX,g+rX,g-w,o-rwx'
  }

  file { '/etc/audit':
    ensure  => 'directory',
    owner   => 'root',
    group   => $auditd::log_group,
    mode    => $config_file_mode,
    recurse => true,
    purge   => true
  }

  file { '/etc/audit/rules.d':
    ensure  => 'directory',
    owner   => 'root',
    group   => $auditd::log_group,
    mode    => $config_file_mode,
    recurse => true,
    purge   => $auditd::purge_auditd_rules
  }

  file { [
    '/etc/audit/audit.rules',
    '/etc/audit/audit.rules.prev'
  ]:
    owner => 'root',
    group => $auditd::log_group,
    mode  => 'o-rwx'
  }

  # Build the auditd.conf from parts

  $_auditd_conf_common = epp("${module_name}/etc/audit/auditd.conf.epp")

  if $facts['auditd_version'] {
    if (versioncmp($facts['auditd_version'], '3.0') < 0) {
      $_auditd_conf_main = epp("${module_name}/etc/audit/auditd.2.conf.epp")
    } else  {
      $_auditd_conf_main = epp("${module_name}/etc/audit/auditd.3.conf.epp")
    }
  } else {
    # If auditd version is unknown use 'best guess' at default OS version
    $_auditd_conf_main = $facts['os']['release']['major'] < '8' ? {
      false   => epp("${module_name}/etc/audit/auditd.3.conf.epp"),
      default => epp("${module_name}/etc/audit/auditd.2.conf.epp")
    }
  }

  $_auditd_conf_last = epp("${module_name}/etc/audit/auditd.last.conf.epp")

  file { '/etc/audit/auditd.conf':
    owner   => 'root',
    group   => $auditd::log_group,
    mode    => $config_file_mode,
    content => "${_auditd_conf_common}${_auditd_conf_main}${_auditd_conf_last}\n",
    notify  => Class['auditd::service']
  }

  if defined('$auditd::plugin_dir') {
    file { $auditd::plugin_dir:
      ensure => 'directory',
      owner  => 'root',
      group  => $auditd::log_group,
      mode   => '0750'
    }
  }

  file { '/var/log/audit':
    ensure  => 'directory',
    owner   => 'root',
    group   => $auditd::log_group,
    mode    => $log_file_mode,
    recurse => true
  }

  if $auditd::syslog {
    include 'auditd::config::logging'
    Class['auditd::config::logging'] ~> Class['auditd::service']
  }

  unless empty($profiles) {
    # use contain instead of include so that config file changes can
    # notify auditd::service class
    contain 'auditd::config::audit_profiles'
  }
}