]> gitweb.fluxo.info Git - puppet-firewall.git/commitdiff
Split and rename
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 12 Sep 2015 00:43:49 +0000 (21:43 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 12 Sep 2015 00:43:49 +0000 (21:43 -0300)
31 files changed:
manifests/router.pp [deleted file]
manifests/router/gitd.pp [new file with mode: 0644]
manifests/router/gobby.pp [new file with mode: 0644]
manifests/router/hairpining.pp [new file with mode: 0644]
manifests/router/http.pp [new file with mode: 0644]
manifests/router/https.pp [new file with mode: 0644]
manifests/router/icecast.pp [new file with mode: 0644]
manifests/router/mail.pp [new file with mode: 0644]
manifests/router/mumble.pp [new file with mode: 0644]
manifests/router/munin.pp [new file with mode: 0644]
manifests/router/puppetmaster.pp [new file with mode: 0644]
manifests/router/ssh.pp [new file with mode: 0644]
manifests/router/tor.pp [new file with mode: 0644]
manifests/router/torrent.pp [new file with mode: 0644]
manifests/vm/dns.pp [new file with mode: 0644]
manifests/vm/gitd.pp [new file with mode: 0644]
manifests/vm/gobby.pp [new file with mode: 0644]
manifests/vm/http.pp [new file with mode: 0644]
manifests/vm/https.pp [new file with mode: 0644]
manifests/vm/icecast.pp [new file with mode: 0644]
manifests/vm/jabber.pp [new file with mode: 0644]
manifests/vm/mail.pp [new file with mode: 0644]
manifests/vm/mdns.pp [new file with mode: 0644]
manifests/vm/mumble.pp [new file with mode: 0644]
manifests/vm/munin.pp [new file with mode: 0644]
manifests/vm/puppetmaster.pp [new file with mode: 0644]
manifests/vm/rsync.pp [new file with mode: 0644]
manifests/vm/ssh.pp [new file with mode: 0644]
manifests/vm/tor.pp [new file with mode: 0644]
manifests/vm/yacy.pp [new file with mode: 0644]
manifests/vserver.pp [deleted file]

diff --git a/manifests/router.pp b/manifests/router.pp
deleted file mode 100644 (file)
index 51f3be3..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-class firewall::router::http($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'http-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:80",
-    proto           => 'tcp',
-    destinationport => '80',
-    ratelimit       => '-',
-    order           => 600,
-  }
-
-  shorewall::rule { 'http-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:80",
-    proto           => 'tcp',
-    destinationport => '80',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 601,
-  }
-}
-
-class firewall::router::https($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'https-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:443",
-    proto           => 'tcp',
-    destinationport => '443',
-    ratelimit       => '-',
-    order           => 602,
-  }
-
-  shorewall::rule { 'https-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:443",
-    proto           => 'tcp',
-    destinationport => '443',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 602,
-  }
-}
-
-class firewall::router::puppetmaster($destination, $puppetmaster_port = '8140',
-                                     $puppetmaster_nonssl_port = '8141', $zone = 'loc',
-                                     $originaldest = $ipaddress) {
-  shorewall::rule { 'puppetmaster-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_port",
-    ratelimit       => '-',
-    order           => 700,
-  }
-
-  shorewall::rule { 'puppetmaster-2':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_port",
-    ratelimit       => '-',
-    order           => 701,
-  }
-
-  shorewall::rule { 'puppetmaster-3':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_port",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 702,
-  }
-
-  shorewall::rule { 'puppetmaster-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_port",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 703,
-  }
-
-  shorewall::rule { 'puppetmaster-5':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_nonssl_port",
-    ratelimit       => '-',
-    order           => 704,
-  }
-
-  shorewall::rule { 'puppetmaster-6':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_nonssl_port",
-    ratelimit       => '-',
-    order           => 705,
-  }
-
-  shorewall::rule { 'puppetmaster-7':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_nonssl_port",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 706,
-  }
-
-  shorewall::rule { 'puppetmaster-8':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_nonssl_port",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 707,
-  }
-}
-
-class firewall::router::gitd($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'git-daemon-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9418",
-    proto           => 'tcp',
-    destinationport => '9418',
-    ratelimit       => '-',
-    order           => 800,
-  }
-
-  shorewall::rule { 'git-daemon-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9418",
-    proto           => 'tcp',
-    destinationport => '9418',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 801,
-  }
-}
-
-class firewall::router::icecast($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'icecast-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:8000",
-    proto           => 'tcp',
-    destinationport => '8000',
-    ratelimit       => '-',
-    order           => 900,
-  }
-
-  shorewall::rule { 'icecast-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:8000",
-    proto           => 'tcp',
-    destinationport => '8000',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 901,
-  }
-}
-
-class firewall::router::mail($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'mail-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:25",
-    proto           => 'tcp',
-    destinationport => '25',
-    ratelimit       => '-',
-    order           => 1000,
-  }
-
-  shorewall::rule { 'mail-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:25",
-    proto           => 'tcp',
-    destinationport => '25',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 1001,
-  }
-
-  shorewall::rule { 'mail-3':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:993",
-    proto           => 'tcp',
-    destinationport => '993',
-    ratelimit       => '-',
-    order           => 1002,
-  }
-
-  shorewall::rule { 'mail-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:993",
-    proto           => 'tcp',
-    destinationport => '993',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 1003,
-  }
-
-  shorewall::rule { 'mail-5':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:587",
-    proto           => 'tcp',
-    destinationport => '587',
-    ratelimit       => '-',
-    order           => 1004,
-  }
-
-  shorewall::rule { 'mail-6':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:587",
-    proto           => 'tcp',
-    destinationport => '587',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 1005,
-  }
-}
-
-define firewall::router::ssh($destination, $port_orig = '22', $port_dest = '', $zone = 'loc',
-                             $originaldest = $ipaddress) {
-  shorewall::rule { "ssh-$name-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    ratelimit       => '-',
-    order           => "2$port_orig",
-  }
-
-  shorewall::rule { "ssh-$name-2":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => "2$port_orig",
-  }
-}
-
-define firewall::router::tor($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { "tor-$name-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9001",
-    proto           => 'tcp',
-    destinationport => "9001",
-    ratelimit       => '-',
-    order           => "29001",
-  }
-
-  shorewall::rule { "tor-$name-2":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9001",
-    proto           => 'tcp',
-    destinationport => "9001",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => "29001",
-  }
-
-  shorewall::rule { "tor-$name-3":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9030",
-    proto           => 'tcp',
-    destinationport => "9030",
-    ratelimit       => '-',
-    order           => "29030",
-  }
-
-  shorewall::rule { "tor-$name-4":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9030",
-    proto           => 'tcp',
-    destinationport => "9030",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => "29030",
-  }
-}
-
-define firewall::router::munin($destination, $port_orig, $port_dest = '', $zone = 'loc',
-                               $order = '400', $originaldest = $ipaddress) {
-  shorewall::rule { "munin-$name-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    ratelimit       => '-',
-    order           => $order,
-  }
-
-  shorewall::rule { "munin-$name-2":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => $order,
-  }
-}
-
-class firewall::router::torrent(
-  $destination,
-  $zone         = 'loc',
-  $originaldest = $ipaddress,
-  $range        = hiera('firewall::torrent::range', '6881:6999')
-) {
-  shorewall::rule { "torrent-tcp-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination",
-    proto           => 'tcp',
-    destinationport => "$range",
-    ratelimit       => '-',
-    order           => 200,
-  }
-
-  shorewall::rule { "torrent-tcp-2":
-    action          => 'DNAT',
-    source          => 'all',
-    destination     => "$zone:$destination",
-    proto           => 'tcp',
-    destinationport => "$range",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 200,
-  }
-
-  shorewall::rule { "torrent-udp-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination",
-    proto           => 'udp',
-    destinationport => "$range",
-    ratelimit       => '-',
-    order           => 201,
-  }
-
-  shorewall::rule { "torrent-udp-2":
-    action          => 'DNAT',
-    source          => 'all',
-    destination     => "$zone:$destination",
-    proto           => 'udp',
-    destinationport => "6881:6999",
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 201,
-  }
-}
-
-class firewall::router::gobby($destination, $zone = 'loc', $originaldest = $ipaddress) {
-  shorewall::rule { 'gobby-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:6523",
-    proto           => 'tcp',
-    destinationport => '6523',
-    ratelimit       => '-',
-    order           => 600,
-  }
-
-  shorewall::rule { 'gobby-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:6523",
-    proto           => 'tcp',
-    destinationport => '6523',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 601,
-  }
-}
-
-class firewall::router::mumble($destination, $zone = 'loc', $originaldest = $::ipaddress) {
-  shorewall::rule { 'mumble-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:64738",
-    proto           => 'tcp',
-    destinationport => '64738',
-    ratelimit       => '-',
-    order           => 2300,
-  }
-
-  shorewall::rule { 'mumble-1':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:64738",
-    proto           => 'udp',
-    destinationport => '64738',
-    originaldest    => "$originaldest",
-    ratelimit       => '-',
-    order           => 2301,
-  }
-}
-
-# See http://www.shorewall.net/FAQ.htm#faq2
-define firewall::router::hairpinning($order = '5000', $proto = 'tcp', $port = 'www',
-                                     $external_ip = '$ETH0_IP', $interface = 'eth1',
-                                     $destination = '192.168.1.100', $source = 'eth1',
-                                     $source_zone = 'loc', $dest_zone = 'loc',
-                                     $port_dest = '') {
-  shorewall::masq { "routeback-$name":
-    interface => "$interface:$destination",
-    source    => $source,
-    address   => $external_ip,
-    proto     => $proto,
-    port      => $port,
-    order     => $order,
-  }
-
-  shorewall::rule { "routeback-$name":
-    action          => 'DNAT',
-    source          => $source_zone,
-    destination     => $port_dest ? {
-      ''      => "$dest_zone:$destination",
-      default => "$dest_zone:$destination:$port_dest",
-    },
-    proto           => $proto,
-    destinationport => $port,
-    ratelimit       => '-',
-    order           => $order,
-    originaldest    => $external_ip,
-  }
-}
diff --git a/manifests/router/gitd.pp b/manifests/router/gitd.pp
new file mode 100644 (file)
index 0000000..ee54cea
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::gitd($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'git-daemon-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9418",
+    proto           => 'tcp',
+    destinationport => '9418',
+    ratelimit       => '-',
+    order           => 800,
+  }
+
+  shorewall::rule { 'git-daemon-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9418",
+    proto           => 'tcp',
+    destinationport => '9418',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 801,
+  }
+}
diff --git a/manifests/router/gobby.pp b/manifests/router/gobby.pp
new file mode 100644 (file)
index 0000000..3d648ef
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::gobby($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'gobby-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:6523",
+    proto           => 'tcp',
+    destinationport => '6523',
+    ratelimit       => '-',
+    order           => 600,
+  }
+
+  shorewall::rule { 'gobby-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:6523",
+    proto           => 'tcp',
+    destinationport => '6523',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 601,
+  }
+}
diff --git a/manifests/router/hairpining.pp b/manifests/router/hairpining.pp
new file mode 100644 (file)
index 0000000..21a8d9d
--- /dev/null
@@ -0,0 +1,29 @@
+# See http://www.shorewall.net/FAQ.htm#faq2
+define firewall::router::hairpinning($order = '5000', $proto = 'tcp', $port = 'www',
+                                     $external_ip = '$ETH0_IP', $interface = 'eth1',
+                                     $destination = '192.168.1.100', $source = 'eth1',
+                                     $source_zone = 'loc', $dest_zone = 'loc',
+                                     $port_dest = '') {
+  shorewall::masq { "routeback-$name":
+    interface => "$interface:$destination",
+    source    => $source,
+    address   => $external_ip,
+    proto     => $proto,
+    port      => $port,
+    order     => $order,
+  }
+
+  shorewall::rule { "routeback-$name":
+    action          => 'DNAT',
+    source          => $source_zone,
+    destination     => $port_dest ? {
+      ''      => "$dest_zone:$destination",
+      default => "$dest_zone:$destination:$port_dest",
+    },
+    proto           => $proto,
+    destinationport => $port,
+    ratelimit       => '-',
+    order           => $order,
+    originaldest    => $external_ip,
+  }
+}
diff --git a/manifests/router/http.pp b/manifests/router/http.pp
new file mode 100644 (file)
index 0000000..8833116
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::http($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'http-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:80",
+    proto           => 'tcp',
+    destinationport => '80',
+    ratelimit       => '-',
+    order           => 600,
+  }
+
+  shorewall::rule { 'http-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:80",
+    proto           => 'tcp',
+    destinationport => '80',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 601,
+  }
+}
diff --git a/manifests/router/https.pp b/manifests/router/https.pp
new file mode 100644 (file)
index 0000000..064c694
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::https($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'https-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:443",
+    proto           => 'tcp',
+    destinationport => '443',
+    ratelimit       => '-',
+    order           => 602,
+  }
+
+  shorewall::rule { 'https-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:443",
+    proto           => 'tcp',
+    destinationport => '443',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 602,
+  }
+}
diff --git a/manifests/router/icecast.pp b/manifests/router/icecast.pp
new file mode 100644 (file)
index 0000000..cb98e6a
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::icecast($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'icecast-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:8000",
+    proto           => 'tcp',
+    destinationport => '8000',
+    ratelimit       => '-',
+    order           => 900,
+  }
+
+  shorewall::rule { 'icecast-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:8000",
+    proto           => 'tcp',
+    destinationport => '8000',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 901,
+  }
+}
diff --git a/manifests/router/mail.pp b/manifests/router/mail.pp
new file mode 100644 (file)
index 0000000..403579d
--- /dev/null
@@ -0,0 +1,64 @@
+class firewall::router::mail($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { 'mail-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:25",
+    proto           => 'tcp',
+    destinationport => '25',
+    ratelimit       => '-',
+    order           => 1000,
+  }
+
+  shorewall::rule { 'mail-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:25",
+    proto           => 'tcp',
+    destinationport => '25',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 1001,
+  }
+
+  shorewall::rule { 'mail-3':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:993",
+    proto           => 'tcp',
+    destinationport => '993',
+    ratelimit       => '-',
+    order           => 1002,
+  }
+
+  shorewall::rule { 'mail-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:993",
+    proto           => 'tcp',
+    destinationport => '993',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 1003,
+  }
+
+  shorewall::rule { 'mail-5':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:587",
+    proto           => 'tcp',
+    destinationport => '587',
+    ratelimit       => '-',
+    order           => 1004,
+  }
+
+  shorewall::rule { 'mail-6':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:587",
+    proto           => 'tcp',
+    destinationport => '587',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 1005,
+  }
+}
diff --git a/manifests/router/mumble.pp b/manifests/router/mumble.pp
new file mode 100644 (file)
index 0000000..6c96976
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::router::mumble($destination, $zone = 'loc', $originaldest = $::ipaddress) {
+  shorewall::rule { 'mumble-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:64738",
+    proto           => 'tcp',
+    destinationport => '64738',
+    ratelimit       => '-',
+    order           => 2300,
+  }
+
+  shorewall::rule { 'mumble-1':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:64738",
+    proto           => 'udp',
+    destinationport => '64738',
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 2301,
+  }
+}
diff --git a/manifests/router/munin.pp b/manifests/router/munin.pp
new file mode 100644 (file)
index 0000000..7ca136d
--- /dev/null
@@ -0,0 +1,29 @@
+define firewall::router::munin($destination, $port_orig, $port_dest = '', $zone = 'loc',
+                               $order = '400', $originaldest = $ipaddress) {
+  shorewall::rule { "munin-$name-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    ratelimit       => '-',
+    order           => $order,
+  }
+
+  shorewall::rule { "munin-$name-2":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => $order,
+  }
+}
diff --git a/manifests/router/puppetmaster.pp b/manifests/router/puppetmaster.pp
new file mode 100644 (file)
index 0000000..98b6cc7
--- /dev/null
@@ -0,0 +1,87 @@
+class firewall::router::puppetmaster($destination, $puppetmaster_port = '8140',
+                                     $puppetmaster_nonssl_port = '8141', $zone = 'loc',
+                                     $originaldest = $ipaddress) {
+  shorewall::rule { 'puppetmaster-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_port",
+    ratelimit       => '-',
+    order           => 700,
+  }
+
+  shorewall::rule { 'puppetmaster-2':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_port",
+    ratelimit       => '-',
+    order           => 701,
+  }
+
+  shorewall::rule { 'puppetmaster-3':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_port",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 702,
+  }
+
+  shorewall::rule { 'puppetmaster-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_port",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 703,
+  }
+
+  shorewall::rule { 'puppetmaster-5':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_nonssl_port",
+    ratelimit       => '-',
+    order           => 704,
+  }
+
+  shorewall::rule { 'puppetmaster-6':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_nonssl_port",
+    ratelimit       => '-',
+    order           => 705,
+  }
+
+  shorewall::rule { 'puppetmaster-7':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_nonssl_port",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 706,
+  }
+
+  shorewall::rule { 'puppetmaster-8':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_nonssl_port",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 707,
+  }
+}
diff --git a/manifests/router/ssh.pp b/manifests/router/ssh.pp
new file mode 100644 (file)
index 0000000..a37b61f
--- /dev/null
@@ -0,0 +1,29 @@
+define firewall::router::ssh($destination, $port_orig = '22', $port_dest = '', $zone = 'loc',
+                             $originaldest = $ipaddress) {
+  shorewall::rule { "ssh-$name-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    ratelimit       => '-',
+    order           => "2$port_orig",
+  }
+
+  shorewall::rule { "ssh-$name-2":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => "2$port_orig",
+  }
+}
diff --git a/manifests/router/tor.pp b/manifests/router/tor.pp
new file mode 100644 (file)
index 0000000..6a2986f
--- /dev/null
@@ -0,0 +1,43 @@
+define firewall::router::tor($destination, $zone = 'loc', $originaldest = $ipaddress) {
+  shorewall::rule { "tor-$name-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9001",
+    proto           => 'tcp',
+    destinationport => "9001",
+    ratelimit       => '-',
+    order           => "29001",
+  }
+
+  shorewall::rule { "tor-$name-2":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9001",
+    proto           => 'tcp',
+    destinationport => "9001",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => "29001",
+  }
+
+  shorewall::rule { "tor-$name-3":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9030",
+    proto           => 'tcp',
+    destinationport => "9030",
+    ratelimit       => '-',
+    order           => "29030",
+  }
+
+  shorewall::rule { "tor-$name-4":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9030",
+    proto           => 'tcp',
+    destinationport => "9030",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => "29030",
+  }
+}
diff --git a/manifests/router/torrent.pp b/manifests/router/torrent.pp
new file mode 100644 (file)
index 0000000..be80071
--- /dev/null
@@ -0,0 +1,48 @@
+class firewall::router::torrent(
+  $destination,
+  $zone         = 'loc',
+  $originaldest = $ipaddress,
+  $range        = hiera('firewall::torrent::range', '6881:6999')
+) {
+  shorewall::rule { "torrent-tcp-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination",
+    proto           => 'tcp',
+    destinationport => "$range",
+    ratelimit       => '-',
+    order           => 200,
+  }
+
+  shorewall::rule { "torrent-tcp-2":
+    action          => 'DNAT',
+    source          => 'all',
+    destination     => "$zone:$destination",
+    proto           => 'tcp',
+    destinationport => "$range",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 200,
+  }
+
+  shorewall::rule { "torrent-udp-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination",
+    proto           => 'udp',
+    destinationport => "$range",
+    ratelimit       => '-',
+    order           => 201,
+  }
+
+  shorewall::rule { "torrent-udp-2":
+    action          => 'DNAT',
+    source          => 'all',
+    destination     => "$zone:$destination",
+    proto           => 'udp',
+    destinationport => "6881:6999",
+    originaldest    => "$originaldest",
+    ratelimit       => '-',
+    order           => 201,
+  }
+}
diff --git a/manifests/vm/dns.pp b/manifests/vm/dns.pp
new file mode 100644 (file)
index 0000000..a273bcc
--- /dev/null
@@ -0,0 +1,53 @@
+class firewall::vm::dns($destination, $zone = 'vm') {
+  shorewall::rule { 'dns-route-0':
+    action          => 'DNS/ACCEPT',
+    source          => 'net',
+    destination     => '$FW',
+    proto           => '-',
+    destinationport => '-',
+    ratelimit       => '-',
+    order           => 2000,
+  }
+
+  shorewall::rule { 'dns-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:53",
+    proto           => 'tcp',
+    destinationport => '53',
+    ratelimit       => '-',
+    order           => 2001,
+  }
+
+  shorewall::rule { 'dns-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:53",
+    proto           => 'tcp',
+    destinationport => '53',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2002,
+  }
+
+  shorewall::rule { 'dns-route-3':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:53",
+    proto           => 'udp',
+    destinationport => '53',
+    ratelimit       => '-',
+    order           => 2003,
+  }
+
+  shorewall::rule { 'dns-route-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:53",
+    proto           => 'udp',
+    destinationport => '53',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2004,
+  }
+}
diff --git a/manifests/vm/gitd.pp b/manifests/vm/gitd.pp
new file mode 100644 (file)
index 0000000..8c497db
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::vm::gitd($destination, $zone = 'fw') {
+  shorewall::rule { 'git-daemon-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9418",
+    proto           => 'tcp',
+    destinationport => '9418',
+    ratelimit       => '-',
+    order           => 800,
+  }
+
+  shorewall::rule { 'git-daemon-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9418",
+    proto           => 'tcp',
+    destinationport => '9418',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 801,
+  }
+}
diff --git a/manifests/vm/gobby.pp b/manifests/vm/gobby.pp
new file mode 100644 (file)
index 0000000..3b113c5
--- /dev/null
@@ -0,0 +1,11 @@
+class firewall::vm::gobby($destination, $zone = 'fw') {
+  shorewall::rule { 'gobby-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:6523",
+    proto           => 'tcp',
+    destinationport => '6523',
+    ratelimit       => '-',
+    order           => 2400,
+  }
+}
diff --git a/manifests/vm/http.pp b/manifests/vm/http.pp
new file mode 100644 (file)
index 0000000..404d82f
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::vm::http($destination, $zone = 'vm') {
+  shorewall::rule { 'http-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:80",
+    proto           => 'tcp',
+    destinationport => '80',
+    ratelimit       => '-',
+    order           => 600,
+  }
+
+  shorewall::rule { 'http-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:80",
+    proto           => 'tcp',
+    destinationport => '80',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 601,
+  }
+}
diff --git a/manifests/vm/https.pp b/manifests/vm/https.pp
new file mode 100644 (file)
index 0000000..047ff66
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::vm::https($destination, $zone = 'vm') {
+  shorewall::rule { 'https-route-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:443",
+    proto           => 'tcp',
+    destinationport => '443',
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 602,
+  }
+
+  shorewall::rule { 'https-route-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "fw:$destination:443",
+    proto           => 'tcp',
+    destinationport => '443',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 602,
+  }
+}
diff --git a/manifests/vm/icecast.pp b/manifests/vm/icecast.pp
new file mode 100644 (file)
index 0000000..b7bc2fe
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::vm::icecast($destination, $zone = 'fw') {
+  shorewall::rule { 'icecast-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:8000",
+    proto           => 'tcp',
+    destinationport => '8000',
+    ratelimit       => '-',
+    order           => 900,
+  }
+
+  shorewall::rule { 'icecast-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:8000",
+    proto           => 'tcp',
+    destinationport => '8000',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 901,
+  }
+}
diff --git a/manifests/vm/jabber.pp b/manifests/vm/jabber.pp
new file mode 100644 (file)
index 0000000..db26d6b
--- /dev/null
@@ -0,0 +1,54 @@
+class firewall::vm::jabber($destination, $zone = 'fw') {
+  shorewall::rule { 'jabber-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:5222",
+    proto           => 'tcp',
+    destinationport => '5222',
+    ratelimit       => '-',
+    order           => 2200,
+  }
+
+  shorewall::rule { 'jabber-1':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:5223",
+    proto           => 'tcp',
+    destinationport => '5223',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2201,
+  }
+
+  shorewall::rule { 'jabber-2':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:5269",
+    proto           => 'tcp',
+    destinationport => '5269',
+    ratelimit       => '-',
+    order           => 2202,
+  }
+
+  shorewall::rule { 'jabber-3':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:4369",
+    proto           => 'tcp',
+    destinationport => '4369',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2203,
+  }
+
+  shorewall::rule { 'jabber-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:4370",
+    proto           => 'tcp',
+    destinationport => '4370:4375',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2204,
+  }
+}
diff --git a/manifests/vm/mail.pp b/manifests/vm/mail.pp
new file mode 100644 (file)
index 0000000..f629865
--- /dev/null
@@ -0,0 +1,64 @@
+class firewall::vm::mail($destination, $zone = 'fw') {
+  shorewall::rule { 'mail-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:25",
+    proto           => 'tcp',
+    destinationport => '25',
+    ratelimit       => '-',
+    order           => 1000,
+  }
+
+  shorewall::rule { 'mail-2':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:25",
+    proto           => 'tcp',
+    destinationport => '25',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 1001,
+  }
+
+  shorewall::rule { 'mail-3':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:993",
+    proto           => 'tcp',
+    destinationport => '993',
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 1002,
+  }
+
+  shorewall::rule { 'mail-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:993",
+    proto           => 'tcp',
+    destinationport => '993',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 1003,
+  }
+
+  shorewall::rule { 'mail-5':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:587",
+    proto           => 'tcp',
+    destinationport => '587',
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 1004,
+  }
+
+  shorewall::rule { 'mail-6':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:587",
+    proto           => 'tcp',
+    destinationport => '587',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 1005,
+  }
+}
diff --git a/manifests/vm/mdns.pp b/manifests/vm/mdns.pp
new file mode 100644 (file)
index 0000000..644c889
--- /dev/null
@@ -0,0 +1,11 @@
+class firewall::vm::mdns($destination, $zone = 'fw') {
+  shorewall::rule { 'mdns-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:5353",
+    proto           => 'tcp',
+    destinationport => '5353',
+    ratelimit       => '-',
+    order           => 2700,
+  }
+}
diff --git a/manifests/vm/mumble.pp b/manifests/vm/mumble.pp
new file mode 100644 (file)
index 0000000..321ab07
--- /dev/null
@@ -0,0 +1,22 @@
+class firewall::vm::mumble($destination, $zone = 'fw') {
+  shorewall::rule { 'mumble-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:64738",
+    proto           => 'tcp',
+    destinationport => '64738',
+    ratelimit       => '-',
+    order           => 2300,
+  }
+
+  shorewall::rule { 'mumble-1':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:64738",
+    proto           => 'udp',
+    destinationport => '64738',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2301,
+  }
+}
diff --git a/manifests/vm/munin.pp b/manifests/vm/munin.pp
new file mode 100644 (file)
index 0000000..e92e216
--- /dev/null
@@ -0,0 +1,28 @@
+define firewall::vm::munin($destination, $port_orig, $port_dest = '', $order = '400', $zone = 'fw') {
+  shorewall::rule { "munin-$name-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    ratelimit       => '-',
+    order           => $order,
+  }
+
+  shorewall::rule { "munin-$name-2":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => $order,
+  }
+}
diff --git a/manifests/vm/puppetmaster.pp b/manifests/vm/puppetmaster.pp
new file mode 100644 (file)
index 0000000..a097d77
--- /dev/null
@@ -0,0 +1,85 @@
+class firewall::vm::puppetmaster($destination, $puppetmaster_port = '8140', $puppetmaster_nonssl_port = '8141', $zone = 'fw') {
+  shorewall::rule { 'puppetmaster-1':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_port",
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 700,
+  }
+
+  shorewall::rule { 'puppetmaster-2':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_port",
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 701,
+  }
+
+  shorewall::rule { 'puppetmaster-3':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_port",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 702,
+  }
+
+  shorewall::rule { 'puppetmaster-4':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_port",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
+    order           => 703,
+  }
+
+  shorewall::rule { 'puppetmaster-5':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_nonssl_port",
+    ratelimit       => '-',
+    order           => 704,
+  }
+
+  shorewall::rule { 'puppetmaster-6':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_nonssl_port",
+    ratelimit       => '-',
+    order           => 705,
+  }
+
+  shorewall::rule { 'puppetmaster-7':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'tcp',
+    destinationport => "$puppetmaster_nonssl_port",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 706,
+  }
+
+  shorewall::rule { 'puppetmaster-8':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
+    proto           => 'udp',
+    destinationport => "$puppetmaster_nonssl_port",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 707,
+  }
+}
diff --git a/manifests/vm/rsync.pp b/manifests/vm/rsync.pp
new file mode 100644 (file)
index 0000000..6ee9c98
--- /dev/null
@@ -0,0 +1,11 @@
+class firewall::vm::rsync($destination, $zone = 'fw') {
+  shorewall::rule { 'rsync-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:873",
+    proto           => 'tcp',
+    destinationport => '873',
+    ratelimit       => '-',
+    order           => 2600,
+  }
+}
diff --git a/manifests/vm/ssh.pp b/manifests/vm/ssh.pp
new file mode 100644 (file)
index 0000000..f9586da
--- /dev/null
@@ -0,0 +1,28 @@
+define firewall::vm::ssh($destination, $port_orig = '22', $port_dest = '', $zone = 'vm') {
+  shorewall::rule { "ssh-$name-1":
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => $port_dest ? {
+      ''      => "$zone:$destination",
+      default => "$zone:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    ratelimit       => '-',
+    order           => "2$port_orig",
+  }
+
+  shorewall::rule { "ssh-$name-2":
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => $port_dest ? {
+      ''      => "fw:$destination",
+      default => "fw:$destination:$port_dest",
+    },
+    proto           => 'tcp',
+    destinationport => "$port_orig",
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => "2$port_orig",
+  }
+}
diff --git a/manifests/vm/tor.pp b/manifests/vm/tor.pp
new file mode 100644 (file)
index 0000000..cd8820a
--- /dev/null
@@ -0,0 +1,43 @@
+class firewall::vm::tor($destination, $zone = 'fw') {
+  shorewall::rule { 'tor-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9001",
+    proto           => 'tcp',
+    destinationport => '9001',
+    ratelimit       => '-',
+    order           => 2100,
+  }
+
+  shorewall::rule { 'tor-1':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9001",
+    proto           => 'tcp',
+    destinationport => '9001',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2101,
+  }
+
+  shorewall::rule { 'tor-2':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:9030",
+    proto           => 'tcp',
+    destinationport => '9030',
+    ratelimit       => '-',
+    order           => 2102,
+  }
+
+  shorewall::rule { 'tor-3':
+    action          => 'DNAT',
+    source          => '$FW',
+    destination     => "$zone:$destination:9030",
+    proto           => 'tcp',
+    destinationport => '9030',
+    originaldest    => hiera('firewall::external_ip', $::ipaddress),
+    ratelimit       => '-',
+    order           => 2103,
+  }
+}
diff --git a/manifests/vm/yacy.pp b/manifests/vm/yacy.pp
new file mode 100644 (file)
index 0000000..0ddbf4b
--- /dev/null
@@ -0,0 +1,11 @@
+class firewall::vm::yacy($destination, $zone = 'fw') {
+  shorewall::rule { 'yacy-0':
+    action          => 'DNAT',
+    source          => 'net',
+    destination     => "$zone:$destination:8090",
+    proto           => 'tcp',
+    destinationport => '8090',
+    ratelimit       => '-',
+    order           => 2500,
+  }
+}
diff --git a/manifests/vserver.pp b/manifests/vserver.pp
deleted file mode 100644 (file)
index 30f2c52..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-class firewall::vserver::http($destination, $zone = 'vm') {
-  shorewall::rule { 'http-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:80",
-    proto           => 'tcp',
-    destinationport => '80',
-    ratelimit       => '-',
-    order           => 600,
-  }
-
-  shorewall::rule { 'http-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:80",
-    proto           => 'tcp',
-    destinationport => '80',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 601,
-  }
-}
-
-class firewall::vserver::https($destination, $zone = 'vm') {
-  shorewall::rule { 'https-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:443",
-    proto           => 'tcp',
-    destinationport => '443',
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 602,
-  }
-
-  shorewall::rule { 'https-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:443",
-    proto           => 'tcp',
-    destinationport => '443',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 602,
-  }
-}
-
-class firewall::vserver::puppetmaster($destination, $puppetmaster_port = '8140', $puppetmaster_nonssl_port = '8141', $zone = 'fw') {
-  shorewall::rule { 'puppetmaster-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_port",
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 700,
-  }
-
-  shorewall::rule { 'puppetmaster-2':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_port",
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 701,
-  }
-
-  shorewall::rule { 'puppetmaster-3':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_port",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 702,
-  }
-
-  shorewall::rule { 'puppetmaster-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_port",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 703,
-  }
-
-  shorewall::rule { 'puppetmaster-5':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_nonssl_port",
-    ratelimit       => '-',
-    order           => 704,
-  }
-
-  shorewall::rule { 'puppetmaster-6':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_nonssl_port",
-    ratelimit       => '-',
-    order           => 705,
-  }
-
-  shorewall::rule { 'puppetmaster-7':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'tcp',
-    destinationport => "$puppetmaster_nonssl_port",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 706,
-  }
-
-  shorewall::rule { 'puppetmaster-8':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:$puppetmaster_nonssl_port",
-    proto           => 'udp',
-    destinationport => "$puppetmaster_nonssl_port",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 707,
-  }
-}
-
-class firewall::vserver::gitd($destination, $zone = 'fw') {
-  shorewall::rule { 'git-daemon-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9418",
-    proto           => 'tcp',
-    destinationport => '9418',
-    ratelimit       => '-',
-    order           => 800,
-  }
-
-  shorewall::rule { 'git-daemon-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9418",
-    proto           => 'tcp',
-    destinationport => '9418',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 801,
-  }
-}
-
-class firewall::vserver::icecast($destination, $zone = 'fw') {
-  shorewall::rule { 'icecast-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:8000",
-    proto           => 'tcp',
-    destinationport => '8000',
-    ratelimit       => '-',
-    order           => 900,
-  }
-
-  shorewall::rule { 'icecast-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:8000",
-    proto           => 'tcp',
-    destinationport => '8000',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 901,
-  }
-}
-
-class firewall::vserver::mail($destination, $zone = 'fw') {
-  shorewall::rule { 'mail-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:25",
-    proto           => 'tcp',
-    destinationport => '25',
-    ratelimit       => '-',
-    order           => 1000,
-  }
-
-  shorewall::rule { 'mail-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:25",
-    proto           => 'tcp',
-    destinationport => '25',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 1001,
-  }
-
-  shorewall::rule { 'mail-3':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:993",
-    proto           => 'tcp',
-    destinationport => '993',
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 1002,
-  }
-
-  shorewall::rule { 'mail-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:993",
-    proto           => 'tcp',
-    destinationport => '993',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 1003,
-  }
-
-  shorewall::rule { 'mail-5':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:587",
-    proto           => 'tcp',
-    destinationport => '587',
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 1004,
-  }
-
-  shorewall::rule { 'mail-6':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:587",
-    proto           => 'tcp',
-    destinationport => '587',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => hiera("firewall::ssl_ratelimit", '-'),
-    order           => 1005,
-  }
-}
-
-define firewall::vserver::ssh($destination, $port_orig = '22', $port_dest = '', $zone = 'vm') {
-  shorewall::rule { "ssh-$name-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    ratelimit       => '-',
-    order           => "2$port_orig",
-  }
-
-  shorewall::rule { "ssh-$name-2":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => $port_dest ? {
-      ''      => "fw:$destination",
-      default => "fw:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => "2$port_orig",
-  }
-}
-
-define firewall::vserver::munin($destination, $port_orig, $port_dest = '', $order = '400', $zone = 'fw') {
-  shorewall::rule { "munin-$name-1":
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    ratelimit       => '-',
-    order           => $order,
-  }
-
-  shorewall::rule { "munin-$name-2":
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => $port_dest ? {
-      ''      => "$zone:$destination",
-      default => "$zone:$destination:$port_dest",
-    },
-    proto           => 'tcp',
-    destinationport => "$port_orig",
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => $order,
-  }
-}
-
-class firewall::vserver::dns($destination, $zone = 'vm') {
-  shorewall::rule { 'dns-route-0':
-    action          => 'DNS/ACCEPT',
-    source          => 'net',
-    destination     => '$FW',
-    proto           => '-',
-    destinationport => '-',
-    ratelimit       => '-',
-    order           => 2000,
-  }
-
-  shorewall::rule { 'dns-route-1':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:53",
-    proto           => 'tcp',
-    destinationport => '53',
-    ratelimit       => '-',
-    order           => 2001,
-  }
-
-  shorewall::rule { 'dns-route-2':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:53",
-    proto           => 'tcp',
-    destinationport => '53',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2002,
-  }
-
-  shorewall::rule { 'dns-route-3':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:53",
-    proto           => 'udp',
-    destinationport => '53',
-    ratelimit       => '-',
-    order           => 2003,
-  }
-
-  shorewall::rule { 'dns-route-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "fw:$destination:53",
-    proto           => 'udp',
-    destinationport => '53',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2004,
-  }
-}
-
-class firewall::vserver::tor($destination, $zone = 'fw') {
-  shorewall::rule { 'tor-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9001",
-    proto           => 'tcp',
-    destinationport => '9001',
-    ratelimit       => '-',
-    order           => 2100,
-  }
-
-  shorewall::rule { 'tor-1':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9001",
-    proto           => 'tcp',
-    destinationport => '9001',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2101,
-  }
-
-  shorewall::rule { 'tor-2':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:9030",
-    proto           => 'tcp',
-    destinationport => '9030',
-    ratelimit       => '-',
-    order           => 2102,
-  }
-
-  shorewall::rule { 'tor-3':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:9030",
-    proto           => 'tcp',
-    destinationport => '9030',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2103,
-  }
-}
-
-class firewall::vserver::jabber($destination, $zone = 'fw') {
-  shorewall::rule { 'jabber-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:5222",
-    proto           => 'tcp',
-    destinationport => '5222',
-    ratelimit       => '-',
-    order           => 2200,
-  }
-
-  shorewall::rule { 'jabber-1':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:5223",
-    proto           => 'tcp',
-    destinationport => '5223',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2201,
-  }
-
-  shorewall::rule { 'jabber-2':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:5269",
-    proto           => 'tcp',
-    destinationport => '5269',
-    ratelimit       => '-',
-    order           => 2202,
-  }
-
-  shorewall::rule { 'jabber-3':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:4369",
-    proto           => 'tcp',
-    destinationport => '4369',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2203,
-  }
-
-  shorewall::rule { 'jabber-4':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:4370",
-    proto           => 'tcp',
-    destinationport => '4370:4375',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2204,
-  }
-}
-
-class firewall::vserver::mumble($destination, $zone = 'fw') {
-  shorewall::rule { 'mumble-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:64738",
-    proto           => 'tcp',
-    destinationport => '64738',
-    ratelimit       => '-',
-    order           => 2300,
-  }
-
-  shorewall::rule { 'mumble-1':
-    action          => 'DNAT',
-    source          => '$FW',
-    destination     => "$zone:$destination:64738",
-    proto           => 'udp',
-    destinationport => '64738',
-    originaldest    => hiera('firewall::external_ip', $::ipaddress),
-    ratelimit       => '-',
-    order           => 2301,
-  }
-}
-
-class firewall::vserver::gobby($destination, $zone = 'fw') {
-  shorewall::rule { 'gobby-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:6523",
-    proto           => 'tcp',
-    destinationport => '6523',
-    ratelimit       => '-',
-    order           => 2400,
-  }
-}
-
-class firewall::vserver::yacy($destination, $zone = 'fw') {
-  shorewall::rule { 'yacy-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:8090",
-    proto           => 'tcp',
-    destinationport => '8090',
-    ratelimit       => '-',
-    order           => 2500,
-  }
-}
-
-class firewall::vserver::rsync($destination, $zone = 'fw') {
-  shorewall::rule { 'rsync-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:873",
-    proto           => 'tcp',
-    destinationport => '873',
-    ratelimit       => '-',
-    order           => 2600,
-  }
-}
-
-class firewall::vserver::mdns($destination, $zone = 'fw') {
-  shorewall::rule { 'mdns-0':
-    action          => 'DNAT',
-    source          => 'net',
-    destination     => "$zone:$destination:5353",
-    proto           => 'tcp',
-    destinationport => '5353',
-    ratelimit       => '-',
-    order           => 2700,
-  }
-}