Puppet Class: cis_security_hardening::rules::iptables_install
- Defined in:
- manifests/rules/iptables_install.pp
Summary
Ensure iptables is installedOverview
iptables allows configuration of the IPv4 tables in the linux kernel and the rules stored within them. Most firewall configuration utilities operate as a front end to iptables.
Rationale: iptables is required for firewall management and configuration.
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 |
# File 'manifests/rules/iptables_install.pp', line 23
class cis_security_hardening::rules::iptables_install (
Boolean $enforce = false,
Boolean $configure_ip6tables = false,
) {
if $enforce {
if fact('network6') != undef {
if $configure_ip6tables == false {
$params_ip6 = {
ensure_v6 => 'stopped',
}
} else {
$params_ip6 = {
ensure_v6 => 'running',
}
}
} else {
$params_ip6 = {
ensure_v6 => 'stopped',
}
}
if $facts['os']['name'].downcase() == 'ubuntu' and $facts['os']['release']['major'] >= '20' {
ensure_packages(['iptables-persistent'], {
ensure => installed,
})
}
if ($facts['os']['name'].downcase() == 'redhat' or $facts['os']['name'].downcase() == 'centos') and
$facts['os']['release']['major'] > '7' {
$params_rh = {
service_name => ['iptables'],
service_name_v6 => 'ip6tables',
package_name => ['iptables-services'],
}
} else {
$params_rh = {}
}
$params = merge($params_ip6, $params_rh)
if (!defined(Class['firewall'])) {
class { 'firewall':
* => $params,
}
}
resources { 'firewall':
purge => true,
}
case $facts['os']['name'].downcase() {
'redhat', 'centos', 'almalinux', 'rocky': {
if !defined(Package['nftables']) {
ensure_packages(['nftables'], {
ensure => purged,
})
}
if ! defined(Service['nftables']) {
ensure_resource('service', 'nftables', {
enable => false,
ensure => stopped,
})
}
if !defined(Package['firewalld']) {
ensure_packages(['firewalld'], {
ensure => purged,
})
}
if !defined(Service['firewalld']) {
ensure_resource('service', 'firewalld', {
enable => false,
ensure => stopped,
})
}
}
'ubuntu', 'debian': {
ensure_packages(['ufw', 'nftables'], {
ensure => purged,
})
}
'sles': {
ensure_packages(['firewalld', 'nftables'], {
ensure => absent,
})
}
default: {
# nothing to do yet
}
}
}
}
|