From 3d1cf84f39fece3f2a9f8b7247a792212eb81177 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 8 Jan 2022 15:50:26 -0300 Subject: Feat: major refactor --- manifests/virtual/mail.pp | 71 ++++------------------------------------------- 1 file changed, 6 insertions(+), 65 deletions(-) (limited to 'manifests/virtual/mail.pp') diff --git a/manifests/virtual/mail.pp b/manifests/virtual/mail.pp index c16f898..2bf9635 100644 --- a/manifests/virtual/mail.pp +++ b/manifests/virtual/mail.pp @@ -1,67 +1,8 @@ -class firewall::virtual::mail($destination) { - shorewall::rule { 'mail-1': - action => 'DNAT', - source => 'vm', - destination => "fw:$destination:25", - proto => 'tcp', - destinationport => '25', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => '-', - order => 1000, - } - - shorewall::rule { 'mail-2': - action => 'DNAT', - source => 'net', - destination => "vm:$destination:25", - proto => 'tcp', - destinationport => '25', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => '-', - order => 1001, - } - - shorewall::rule { 'mail-3': - action => 'DNAT', - source => 'vm', - destination => "fw:$destination:993", - proto => 'tcp', - destinationport => '993', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => lookup("firewall::ssl_ratelimit", undef, undef, '-'), - order => 1002, - } - - shorewall::rule { 'mail-4': - action => 'DNAT', - source => 'net', - destination => "vm:$destination:993", - proto => 'tcp', - destinationport => '993', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => lookup("firewall::ssl_ratelimit", undef, undef, '-'), - order => 1003, - } - - shorewall::rule { 'mail-5': - action => 'DNAT', - source => 'vm', - destination => "fw:$destination:587", - proto => 'tcp', - destinationport => '587', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => lookup("firewall::ssl_ratelimit", undef, undef, '-'), - order => 1004, - } - - shorewall::rule { 'mail-6': - action => 'DNAT', - source => 'net', - destination => "vm:$destination:587", - proto => 'tcp', - destinationport => '587', - originaldest => lookup('firewall::external_ip', undef, undef, $::ipaddress), - ratelimit => lookup("firewall::ssl_ratelimit", undef, undef, '-'), - order => 1005, +class firewall::virtual::mail( + $implementation = lookup('firewall::implementation', undef, undef, 'shorewall'), + $destination +) { + class { "firewall::implementations::${implementation}::virtual::mail": + destination => $destination, } } -- cgit v1.2.3