summaryrefslogtreecommitdiff
path: root/puppet/modules/site_shorewall/manifests/defaults.pp
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2013-02-06 18:11:21 +0100
committervarac <varacanero@zeromail.org>2013-02-06 23:23:21 +0100
commitab25692d3b8aaf3e71ec3546d1ea9d85f26f7b63 (patch)
tree327a23c7fe726f57517fec594e08b0d5b811656d /puppet/modules/site_shorewall/manifests/defaults.pp
parent97c5451b0f8b63b4884a9560c0a796f931d059e3 (diff)
Restructuring site_shorewall
site_shorewall::defaults can be used on every host, it configures a basic firewall, which blocks everything from outside except ping + ssh, and allows outgoing traffic for http, git, dns.
Diffstat (limited to 'puppet/modules/site_shorewall/manifests/defaults.pp')
-rw-r--r--puppet/modules/site_shorewall/manifests/defaults.pp59
1 files changed, 52 insertions, 7 deletions
diff --git a/puppet/modules/site_shorewall/manifests/defaults.pp b/puppet/modules/site_shorewall/manifests/defaults.pp
index d5f60ec6..7992406b 100644
--- a/puppet/modules/site_shorewall/manifests/defaults.pp
+++ b/puppet/modules/site_shorewall/manifests/defaults.pp
@@ -1,6 +1,17 @@
class site_shorewall::defaults {
include shorewall
+ # be safe for development
+ #if ( $::virtual == 'virtualbox') { $shorewall_startup='0' }
+
+ $ip_address = hiera('ip_address')
+ # a special case for vagrant interfaces
+ $interface = $::virtual ? {
+ virtualbox => [ 'eth0', 'eth1' ],
+ default => getvar("interface_${ip_address}")
+ }
+
+
# If you want logging:
shorewall::params {
'LOG': value => 'debug';
@@ -8,14 +19,48 @@ class site_shorewall::defaults {
shorewall::zone {'net': type => 'ipv4'; }
- include augeas
- augeas { 'enable_ip_forwarding':
- changes => 'set /files/etc/shorewall/shorewall.conf/IP_FORWARDING Yes',
- lens => 'Shellvars.lns',
- incl => '/etc/shorewall/shorewall.conf',
- notify => Service[shorewall],
- require => Class[augeas];
+ # define interfaces
+ shorewall::interface { $interface:
+ zone => 'net',
+ options => 'tcpflags,blacklist,nosmurfs';
+ }
+
+ shorewall::routestopped { $interface: }
+
+ shorewall::policy {
+ 'all-to-all':
+ sourcezone => 'all',
+ destinationzone => 'all',
+ policy => 'DROP',
+ order => 200;
+ }
+
+ shorewall::rule {
+ # ping party
+ 'all2all-ping':
+ source => 'all',
+ destination => 'all',
+ action => 'Ping(ACCEPT)',
+ order => 200;
+
+ # server to outside
+ 'fw2all-http':
+ source => '$FW',
+ destination => 'all',
+ action => 'HTTP(ACCEPT)',
+ order => 200;
+ 'fw2all-DNS':
+ source => '$FW',
+ destination => 'all',
+ action => 'DNS(ACCEPT)',
+ order => 200;
+ 'fw2all-git':
+ source => '$FW',
+ destination => 'all',
+ action => 'Git(ACCEPT)',
+ order => 200;
}
+ include site_shorewall::sshd
}