class ferm {
- define rule($domain="ip", $chain="INPUT", $rule, $description="", $prio="00") {
- file { "/etc/ferm/dsa.d/${prio}_${name}":
- ensure => present,
- owner => root,
- group => root,
- mode => 0600,
- content => template("ferm/ferm-rule.erb"),
- }
- }
-
- package { ferm: ensure => installed }
-
- file {
- "/etc/ferm/dsa.d":
- ensure => directory,
- require => Package["ferm"];
- "/etc/ferm/conf.d":
- ensure => directory,
- require => Package["ferm"];
- "/etc/ferm/conf.d/me.conf":
- content => template("ferm/me.conf.erb"),
- require => Package["ferm"],
- notify => Exec["ferm restart"];
+ define rule($domain="ip", $chain="INPUT", $rule, $description="", $prio="00") {
+ file {
+ "/etc/ferm/dsa.d/${prio}_${name}":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 0400,
+ content => template("ferm/ferm-rule.erb"),
+ notify => Exec["ferm restart"],
}
+ }
- ferm::rule { "dsa-ssh":
- description => "Allow SSH from DSA",
- rule => "proto tcp dport ssh ACCEPT"
+ # realize (i.e. enable) all @ferm::rule virtual resources
+ Ferm::Rule <| |>
+
+ package {
+ ferm: ensure => installed;
+ ulogd: ensure => installed;
+ }
+
+ file {
+ "/etc/ferm/dsa.d":
+ ensure => directory,
+ purge => true,
+ force => true,
+ recurse => true,
+ source => "puppet:///files/empty/",
+ require => Package["ferm"];
+ "/etc/ferm/conf.d":
+ ensure => directory,
+ require => Package["ferm"];
+ "/etc/default/ferm":
+ source => "puppet:///ferm/ferm.default",
+ require => Package["ferm"],
+ notify => Exec["ferm restart"];
+ "/etc/ferm/ferm.conf":
+ source => "puppet:///ferm/ferm.conf",
+ require => Package["ferm"],
+ mode => 0400,
+ notify => Exec["ferm restart"];
+ "/etc/ferm/conf.d/me.conf":
+ content => template("ferm/me.conf.erb"),
+ require => Package["ferm"],
+ mode => 0400,
+ notify => Exec["ferm restart"];
+ "/etc/ferm/conf.d/defs.conf":
+ content => template("ferm/defs.conf.erb"),
+ require => Package["ferm"],
+ mode => 0400,
+ notify => Exec["ferm restart"];
+ "/etc/ferm/conf.d/interfaces.conf":
+ content => template("ferm/interfaces.conf.erb"),
+ require => Package["ferm"],
+ mode => 0400,
+ notify => Exec["ferm restart"];
+ }
+
+ $munin_ips = split(regsubst($v4ips, '([^,]+)', 'ip_\1', 'G'), ',')
+
+ activate_munin_check {
+ $munin_ips: script => "ip_";
+ }
+
+ case extractnodeinfo($nodeinfo, 'buildd') {
+ 'true': {
+ file {
+ "/etc/ferm/conf.d/load_ftp_conntrack.conf":
+ source => "puppet:///ferm/ferm.default",
+ require => Package["ferm"],
+ notify => Exec["ferm restart"];
+ }
}
+ }
- ferm_rule(
- exec { "ferm restart":
- path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
- refreshonly => true,
+ case $v6ips {
+ 'no': {}
+ default: {
+ $munin6_ips = split(regsubst($v6ips, '([^,]+)', 'ip6_\1', 'G'), ',')
+ activate_munin_check {
+ $munin6_ips: script => "ip6_";
+ }
}
+ }
+
+ exec {
+ "ferm restart":
+ command => "/etc/init.d/ferm restart",
+ refreshonly => true,
+ }
}
+# vim:set et:
+# vim:set sts=4 ts=4:
+# vim:set shiftwidth=4: