summaryrefslogtreecommitdiff
path: root/manifests/implementations/shorewall/redirect.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/implementations/shorewall/redirect.pp')
-rw-r--r--manifests/implementations/shorewall/redirect.pp16
1 files changed, 16 insertions, 0 deletions
diff --git a/manifests/implementations/shorewall/redirect.pp b/manifests/implementations/shorewall/redirect.pp
new file mode 100644
index 0000000..b494e08
--- /dev/null
+++ b/manifests/implementations/shorewall/redirect.pp
@@ -0,0 +1,16 @@
+class firewall::implementations::shorewall::redirect::ssh($destinationport) {
+ # When the box is in an internal network and we want to provide
+ # and external access through a shared real IP, we have to
+ # redirect requests coming from another port to port 22.
+ $ip = lookup('firewall::external_ip', undef, undef, $::ipaddress)
+
+ shorewall::rule { "ssh-redirect-1":
+ action => 'DNAT',
+ source => 'net',
+ destination => "fw:$ip:22",
+ proto => 'tcp',
+ destinationport => $destinationport,
+ ratelimit => '-',
+ order => $destinationport,
+ }
+}