]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ferm/manifests/init.pp
how bad can this go
[dsa-puppet.git] / modules / ferm / manifests / init.pp
index adf1fc88a16996e030953779abdf48c1c723616d..5bedd6c9f37b45945c590aed42ad4889923cd133 100644 (file)
@@ -1,63 +1,45 @@
-#
-
 class ferm {
-       package { "ferm" :
-               ensure          => installed,
+       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"),
+                        notify  => Exec["ferm restart"],
+               }
        }
 
-       file { "/etc/ferm/dsa.d" :
-               ensure          => directory,
-               owner           => root,
-               group           => root,
-               mode            => 0700,
-               require         => Package["ferm"],
-       }
+        package { ferm: ensure => installed }
 
-       file { "/etc/ferm/conf.d" :
-               ensure          =>directory,
-               owner           => root,
-               group           => root,
-               mode            => 0700,
-               require         => Package["ferm"],
-       }
+        file { 
+                "/etc/ferm/dsa.d": 
+                        ensure => directory,
+                        require => Package["ferm"];
+                "/etc/ferm/conf.d": 
+                        ensure => directory,
+                        require => Package["ferm"];
+                "/etc/ferm/ferm.conf":
+                        source  => "puppet:///ferm/ferm.conf",
+                        require => Package["ferm"],
+                        notify  => Exec["ferm restart"];
+                "/etc/ferm/conf.d/me.conf":
+                        content => template("ferm/me.conf.erb"),
+                        require => Package["ferm"],
+                        notify  => Exec["ferm restart"];
+                "/etc/ferm/conf.d/defs.conf":
+                        source  => "puppet:///ferm/defs.conf",
+                        require => Package["ferm"],
+                        notify  => Exec["ferm restart"];
+        }
 
-       file { "/etc/ferm/ferm.conf" :
-               ensure          => present,
-               owner           => root,
-               group           => root,
-               mode            => 0600,
-               require         => Package["ferm"],
-               notify          => Exec["ferm reload"],
-               source          => "puppet:///ferm/ferm.conf",
-       }
+        ferm::rule { "dsa-ssh":
+                description     => "Allow SSH from DSA",
+                rule            => "domain (ip ip6) proto tcp mod state state (NEW) dport (ssh) @subchain 'ssh' { saddr (\$SSH_SOURCES) ACCEPT; }"
+        }
 
-       file { "/etc/ferm/defs.conf" :
-               ensure          => present,
-               owner           => root,
-               group           => root,
-               mode            => 0600,
-               require         => Package["ferm"],
-               notify          => Exec["ferm reload"],
-               source          => "puppet:///ferm/defs.conf",
-       }
-
-       exec { "ferm reload":
-               path            => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
-               refreshonly     => true,
-       }
-
-       # used as, e.g.:
-       # ferm::rule { "dsa-ssh":
-       #       description     => "Allow SSH from DSA",
-       #       rule            => "proto tcp dport ssh saddr 1.2.3.4 ACCEPT"
-       # }
-       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"),
-               }
-       }
+        exec { "ferm restart":
+                path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
+                refreshonly => true,
+        }
 }