summaryrefslogtreecommitdiff
path: root/manifests/implementations/shorewall/virtual/ssh.pp
blob: d873cd90191d8c427d447d1d91ef8a3b07b59142 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
define firewall::implementations::shorewall::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",
  }
}