diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2011-08-11 14:37:32 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2011-08-11 14:37:32 -0300 |
commit | 7f7d3cab9c4b4fc1bdc3827e8ea4c680c73da48d (patch) | |
tree | 36d470b1d000b89295c595f8f27d5cc89df46a59 /manifests/subsystems/firewall/router.pp | |
parent | fb4b9946ac9adeda2da07d80e65b56a0cf897339 (diff) | |
download | puppet-nodo-7f7d3cab9c4b4fc1bdc3827e8ea4c680c73da48d.tar.gz puppet-nodo-7f7d3cab9c4b4fc1bdc3827e8ea4c680c73da48d.tar.bz2 |
Spliting firewall classes along files and separating rules for vservers and routers
Diffstat (limited to 'manifests/subsystems/firewall/router.pp')
-rw-r--r-- | manifests/subsystems/firewall/router.pp | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/manifests/subsystems/firewall/router.pp b/manifests/subsystems/firewall/router.pp new file mode 100644 index 0000000..4a01403 --- /dev/null +++ b/manifests/subsystems/firewall/router.pp @@ -0,0 +1,174 @@ +class firewall::router::http($destination, $zone = 'vm') { + shorewall::rule { 'http-route': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:80", + proto => 'tcp', + destinationport => '80', + ratelimit => '-', + order => '600', + } +} + +class firewall::router::https($destination, $zone = 'vm') { + shorewall::rule { 'https-route': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:443", + proto => 'tcp', + destinationport => '443', + ratelimit => '-', + order => '602', + } +} + +class firewall::router::puppetmaster($destination, $puppetmaster_port = '8140', $puppetmaster_nonssl_port = '8141', $zone = 'fw') { + shorewall::rule { 'puppetmaster-1': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:$puppetmaster_port", + proto => 'tcp', + destinationport => "$puppetmaster_port", + ratelimit => '-', + order => '700', + } + + shorewall::rule { 'puppetmaster-2': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:$puppetmaster_port", + proto => 'udp', + destinationport => "$puppetmaster_port", + ratelimit => '-', + order => '701', + } + + shorewall::rule { 'puppetmaster-3': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:$puppetmaster_nonssl_port", + proto => 'tcp', + destinationport => "$puppetmaster_nonssl_port", + ratelimit => '-', + order => '704', + } + + shorewall::rule { 'puppetmaster-4': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:$puppetmaster_nonssl_port", + proto => 'udp', + destinationport => "$puppetmaster_nonssl_port", + ratelimit => '-', + order => '705', + } +} + +class firewall::router::gitd($destination, $zone = 'fw') { + shorewall::rule { 'git-daemon': + action => 'DNAT', + source => 'net', + destination => "$zone:$destination:9418", + proto => 'tcp', + destinationport => '9418', + ratelimit => '-', + order => '800', + } +} + +class firewall::router::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 => "$ipaddress", + ratelimit => '-', + order => '901', + } +} + +class firewall::router::mail($destination, $zone = 'fw') { + shorewall::rule { 'mail-1': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:25", + proto => 'tcp', + destinationport => '25', + ratelimit => '-', + order => '1000', + } + + shorewall::rule { 'mail-2': + action => 'DNAT', + source => 'all', + destination => "$zone:$destination:993", + proto => 'tcp', + destinationport => '993', + ratelimit => '-', + order => '1002', + } +} + +define firewall::router::ssh($destination, $port_orig = '22', $port_dest = '', $zone = 'vm') { + shorewall::rule { "ssh-$name": + action => 'DNAT', + source => 'all', + destination => $port_dest ? { + '' => "$zone:$destination", + default => "$zone:$destination:$port_dest", + }, + proto => 'tcp', + destinationport => "$port_orig", + ratelimit => '-', + order => "2$port_orig", + } +} + +define firewall::router::munin($destination, $port_orig, $port_dest = '', $zone = 'fw') { + shorewall::rule { "munin-$name": + action => 'DNAT', + source => 'all', + destination => $port_dest ? { + '' => "$zone:$destination", + default => "$zone:$destination:$port_dest", + }, + proto => 'tcp', + destinationport => "$port_orig", + ratelimit => '-', + order => "4$id", + } +} + +class firewall::router::torrent($destination, $zone = 'fw') { + shorewall::rule { "torrent-tcp": + action => 'DNAT', + source => 'all', + destination => "$zone:$destination", + proto => 'tcp', + destinationport => "6881:6999", + ratelimit => '-', + order => "200", + } + + shorewall::rule { "torrent-udp": + action => 'DNAT', + source => 'all', + destination => "$zone:$destination", + proto => 'udp', + destinationport => "6881:6999", + ratelimit => '-', + order => "201", + } +} |