diff options
| -rw-r--r-- | REFERENCE.md | 59 | ||||
| -rw-r--r-- | data/Archlinux.yaml | 3 | ||||
| -rw-r--r-- | data/RedHat.yaml | 3 | ||||
| -rw-r--r-- | data/Ubuntu.yaml | 1 | ||||
| -rw-r--r-- | data/common.yaml | 19 | ||||
| -rw-r--r-- | hiera.yaml | 3 | ||||
| -rw-r--r-- | manifests/init.pp | 59 | 
7 files changed, 52 insertions, 95 deletions
diff --git a/REFERENCE.md b/REFERENCE.md index 5ab5f0b..75dfe6f 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -76,129 +76,126 @@ The following parameters are available in the `ferm` class.  Data type: `Boolean`  Disable/Enable the management of the ferm daemon -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `manage_configfile`  Data type: `Boolean`  Disable/Enable the management of the ferm default config -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `manage_initfile`  Data type: `Boolean`  Disable/Enable the management of the ferm init script for RedHat-based OS -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `configfile`  Data type: `Stdlib::Absolutepath`  Path to the config file -Default value: /etc/ferm.conf -Allowed values: Stdlib::Absolutepath  ##### `configdirectory`  Data type: `Stdlib::Absolutepath`  Path to the directory where the module stores ferm configuration files -Default value: /etc/ferm.d or /etc/ferm/ferm.d -Allowed values: Stdlib::Absolutepath  ##### `disable_conntrack`  Data type: `Boolean`  Disable/Enable the generation of conntrack rules -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `forward_policy`  Data type: `Ferm::Policies`  Default policy for the FORWARD chain -Default value: DROP -Allowed values: (ACCEPT|DROP) + +Default value: 'DROP'  ##### `output_policy`  Data type: `Ferm::Policies`  Default policy for the OUTPUT chain -Default value: ACCEPT -Allowed values: (ACCEPT|DROP) + +Default value: 'ACCEPT'  ##### `input_policy`  Data type: `Ferm::Policies`  Default policy for the INPUT chain -Default value: DROP -Allowed values: (ACCEPT|DROP) + +Default value: 'DROP'  ##### `rules`  Data type: `Hash`  A hash that holds all data for ferm::rule -Default value: Empty Hash -Allowed value: Any Hash + +Default value: {}  ##### `chains`  Data type: `Hash`  A hash that holds all data for ferm::chain -Default value: Empty Hash -Allowed value: Any Hash + +Default value: {}  ##### `forward_log_dropped_packets`  Data type: `Boolean`  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) + +Default value: `false`  ##### `output_log_dropped_packets`  Data type: `Boolean`  Enable/Disable logging in the OUTPUT chain of packets to the kernel log, if no explicit chain matched -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `input_log_dropped_packets`  Data type: `Boolean`  Enable/Disable logging in the INPUT chain of packets to the kernel log, if no explicit chain matched -Default value: false -Allowed values: (true|false) + +Default value: `false`  ##### `ip_versions`  Data type: `Array[Enum['ip','ip6']]`  Set list of versions of ip we want ot use. -Default value: ['ip', 'ip6'] + +Default value: ['ip','ip6']  ##### `preserve_chains_in_tables`  Data type: `Hash[String[1],Array[String[1]]]`  Hash with table:chains[] to use ferm @preserve for -Default value: Empty Hash -Allowed values: Hash with a list of tables and chains in it to preserve  Example: {'nat' => ['PREROUTING', 'POSTROUTING']} +Default value: {} +  ## Defined types  ### ferm::chain diff --git a/data/Archlinux.yaml b/data/Archlinux.yaml new file mode 100644 index 0000000..6b05d2f --- /dev/null +++ b/data/Archlinux.yaml @@ -0,0 +1,3 @@ +--- +ferm::configfile: /etc/ferm.conf +ferm::configdirectory: /etc/ferm.d diff --git a/data/RedHat.yaml b/data/RedHat.yaml new file mode 100644 index 0000000..6b05d2f --- /dev/null +++ b/data/RedHat.yaml @@ -0,0 +1,3 @@ +--- +ferm::configfile: /etc/ferm.conf +ferm::configdirectory: /etc/ferm.d diff --git a/data/Ubuntu.yaml b/data/Ubuntu.yaml index f580a8f..cb30553 100644 --- a/data/Ubuntu.yaml +++ b/data/Ubuntu.yaml @@ -1,2 +1,3 @@  ---  ferm::configfile: /etc/ferm/ferm.conf +ferm::configdirectory: /etc/ferm.d diff --git a/data/common.yaml b/data/common.yaml deleted file mode 100644 index 34392e9..0000000 --- a/data/common.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -ferm::manage_service: false -ferm::manage_configfile: false -ferm::manage_initfile: false -ferm::disable_conntrack: false -ferm::configfile: /etc/ferm.conf -ferm::configdirectory: /etc/ferm.d -ferm::input_policy: DROP -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 -ferm::ip_versions: -  - ip -  - ip6 @@ -15,5 +15,8 @@ hierarchy:    - name: 'Distribution Name'      path: '%{facts.os.name}.yaml' +  - name: 'Operating System Family' +    path: '%{facts.os.family}.yaml' +    - name: 'common'      path: 'common.yaml' diff --git a/manifests/init.pp b/manifests/init.pp index 2f5e1ef..d8fd06a 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -26,70 +26,39 @@  #   }  #  # @param manage_service Disable/Enable the management of the ferm daemon -#   Default value: false -#   Allowed values: (true|false)  # @param manage_configfile Disable/Enable the management of the ferm default config -#   Default value: false -#   Allowed values: (true|false)  # @param manage_initfile Disable/Enable the management of the ferm init script for RedHat-based OS -#   Default value: false -#   Allowed values: (true|false)  # @param configfile Path to the config file -#   Default value: /etc/ferm.conf -#   Allowed values: Stdlib::Absolutepath  # @param configdirectory Path to the directory where the module stores ferm configuration files -#   Default value: /etc/ferm.d or /etc/ferm/ferm.d -#   Allowed values: Stdlib::Absolutepath  # @param disable_conntrack Disable/Enable the generation of conntrack rules -#   Default value: false -#   Allowed values: (true|false)  # @param forward_policy Default policy for the FORWARD chain -#   Default value: DROP -#   Allowed values: (ACCEPT|DROP)  # @param output_policy Default policy for the OUTPUT chain -#   Default value: ACCEPT -#   Allowed values: (ACCEPT|DROP)  # @param input_policy Default policy for the INPUT chain -#   Default value: DROP -#   Allowed values: (ACCEPT|DROP)  # @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)  # @param output_log_dropped_packets Enable/Disable logging in the OUTPUT chain of packets to the kernel log, if no explicit chain matched -#   Default value: false -#   Allowed values: (true|false)  # @param input_log_dropped_packets Enable/Disable logging in the INPUT chain of packets to the kernel log, if no explicit chain matched -#   Default value: false -#   Allowed values: (true|false)  # @param ip_versions Set list of versions of ip we want ot use. -#   Default value: ['ip', 'ip6']  # @param preserve_chains_in_tables Hash with table:chains[] to use ferm @preserve for -#   Default value: Empty Hash -#   Allowed values: Hash with a list of tables and chains in it to preserve  #   Example: {'nat' => ['PREROUTING', 'POSTROUTING']}  class ferm ( -  Boolean $manage_service, -  Boolean $manage_configfile, -  Boolean $manage_initfile,    Stdlib::Absolutepath $configfile,    Stdlib::Absolutepath $configdirectory, -  Boolean $disable_conntrack, -  Ferm::Policies $forward_policy, -  Ferm::Policies $output_policy, -  Ferm::Policies $input_policy, -  Boolean $forward_log_dropped_packets, -  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, +  Boolean $manage_service = false, +  Boolean $manage_configfile = false, +  Boolean $manage_initfile = false, +  Boolean $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, +  Hash $rules = {}, +  Hash $chains = {}, +  Array[Enum['ip','ip6']] $ip_versions = ['ip','ip6'], +  Hash[String[1],Array[String[1]]] $preserve_chains_in_tables = {},  ) {    contain ferm::install    contain ferm::config  | 
