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
|
# File 'manifests/init.pp', line 54
class ferm (
Stdlib::Absolutepath $configfile,
Stdlib::Absolutepath $configdirectory,
Boolean $manage_service = false,
Boolean $manage_configfile = false,
Boolean $manage_package = true,
Boolean $forward_disable_conntrack = true,
Boolean $output_disable_conntrack = true,
Boolean $input_disable_conntrack = false,
Ferm::Policies $forward_policy = 'DROP',
Ferm::Policies $output_policy = 'ACCEPT',
Ferm::Policies $input_policy = 'DROP',
Boolean $forward_log_dropped_packets = false,
Boolean $output_log_dropped_packets = false,
Boolean $input_log_dropped_packets = false,
Boolean $input_drop_invalid_packets_with_conntrack = false,
Hash $rules = {},
Hash $chains = {},
Array[Enum['ip','ip6']] $ip_versions = ['ip','ip6'],
Hash[String[1],Array[String[1]]] $preserve_chains_in_tables = {},
Enum['package','vcsrepo'] $install_method = 'package',
String[1] $package_ensure = 'installed',
Stdlib::HTTPSUrl $vcsrepo = 'https://github.com/MaxKellermann/ferm.git',
String[1] $vcstag = 'v2.6',
) {
contain ferm::install
contain ferm::config
contain ferm::service
Class['ferm::install']
-> Class['ferm::config']
~> Class['ferm::service']
Ferm::Chain <| |>
~> Class['ferm::service']
$chains.each |$chainname, $attributes| {
ferm::chain { $chainname:
* => $attributes,
}
}
$rules.each |$rulename, $attributes| {
ferm::rule { $rulename:
* => $attributes,
}
}
# import all exported resources with ferm rules for this node
Ferm::Rule <<| tag == $trusted['certname'] |>>
}
|