diff options
-rw-r--r-- | REFERENCE.md | 8 | ||||
-rw-r--r-- | data/common.yaml | 1 | ||||
-rw-r--r-- | manifests/init.pp | 10 |
3 files changed, 19 insertions, 0 deletions
diff --git a/REFERENCE.md b/REFERENCE.md index d9adadb..62a5d3b 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -151,6 +151,14 @@ A hash that holds all data for ferm::rule Default value: Empty Hash Allowed value: Any Hash +##### `chains` + +Data type: `Hash` + +A hash that holds all data for ferm::chain +Default value: Empty Hash +Allowed value: Any Hash + ##### `forward_log_dropped_packets` Data type: `Boolean` diff --git a/data/common.yaml b/data/common.yaml index d40c155..34392e9 100644 --- a/data/common.yaml +++ b/data/common.yaml @@ -10,6 +10,7 @@ ferm::forward_policy: DROP ferm::output_policy: ACCEPT ferm::preserve_chains_in_tables: {} ferm::rules: {} +ferm::chains: {} ferm::input_log_dropped_packets: false ferm::forward_log_dropped_packets: false ferm::output_log_dropped_packets: false diff --git a/manifests/init.pp b/manifests/init.pp index d2251c9..2f5e1ef 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -55,6 +55,9 @@ # @param rules A hash that holds all data for ferm::rule # Default value: Empty Hash # Allowed value: Any Hash +# @param chains A hash that holds all data for ferm::chain +# Default value: Empty Hash +# Allowed value: Any Hash # @param forward_log_dropped_packets Enable/Disable logging in the FORWARD chain of packets to the kernel log, if no explicit chain matched # Default value: false # Allowed values: (true|false) @@ -84,6 +87,7 @@ class ferm ( Boolean $output_log_dropped_packets, Boolean $input_log_dropped_packets, Hash $rules, + Hash $chains, Array[Enum['ip','ip6']] $ip_versions, Hash[String[1],Array[String[1]]] $preserve_chains_in_tables, ) { @@ -98,6 +102,12 @@ class ferm ( Ferm::Chain <| |> ~> Class['ferm::service'] + $chains.each |$chainname, $attributes| { + ferm::chain{$chainname: + * => $attributes, + } + } + $rules.each |$rulename, $attributes| { ferm::rule{$rulename: * => $attributes, |