diff options
Diffstat (limited to 'manifests/vm/ssh.pp')
-rw-r--r-- | manifests/vm/ssh.pp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/manifests/vm/ssh.pp b/manifests/vm/ssh.pp new file mode 100644 index 0000000..f9586da --- /dev/null +++ b/manifests/vm/ssh.pp @@ -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", + } +} |