diff options
Diffstat (limited to 'manifests/virtual/ssh.pp')
-rw-r--r-- | manifests/virtual/ssh.pp | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/manifests/virtual/ssh.pp b/manifests/virtual/ssh.pp index 7ad93fc..0a11fa2 100644 --- a/manifests/virtual/ssh.pp +++ b/manifests/virtual/ssh.pp @@ -1,28 +1,14 @@ -define firewall::virtual::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 => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => '-', - order => "2$port_orig", +define firewall::virtual::ssh( + $destination, + $port_orig = '22', + $port_dest = '', + $zone = 'vm' + $implementation = lookup('firewall::implementation', undef, undef, 'shorewall'), +) { + class { "firewall::implementations::${implementation}::virtual::ssh": + destination => $destination, + port_orig => $port_orig, + port_dest => $port_dest, + zone => $zone, } } |