Try to add firewalling to enable mail satellites to connect to the submission port...
authorPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 09:35:31 +0000 (11:35 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 09:35:31 +0000 (11:35 +0200)
modules/roles/manifests/mailrelay.pp
modules/roles/manifests/mta.pp

index 8bf8bee..87b9263 100644 (file)
@@ -31,4 +31,10 @@ class roles::mailrelay {
     port        => '7', # will be overwritten on collection
     saddr       => $base::public_addresses,
   }
+
+  ferm::rule::simple { 'submission-from-satellites':
+    target => 'submission',
+    port   => 'submission',
+  }
+  Ferm::Rule::Simple <<| tag == 'smtp::server::submission::to::mail-relay' |>>
 }
index 1dc8fae..d9bead4 100644 (file)
@@ -28,6 +28,7 @@ class roles::mta(
 
   $mxdata = dig($deprecated::nodeinfo, 'ldap', 'mXRecord')
   if $mxdata and $mxdata.any |$item| { $item =~ /INCOMING-MX/ } {
+    # a mail satellite.  Gets mail via the mailrelays and sends out mail via the mail relays
     $mailport = lookup( { 'name' => 'exim::mail_port', 'default_value' => undef } )
 
     @@concat::fragment { "manualroute-to-${::fqdn}":
@@ -39,16 +40,26 @@ class roles::mta(
       }
     }
 
+    @@ferm::rule::simple { "submission-from-${::fqdn}":
+      tag   => 'smtp::server::submission::to::mail-relay',
+      chain => 'submission',
+      saddr => $base::public_addresses,
+    }
+
     Ferm::Rule::Simple <<| tag == 'smtp::server::to::mail-satellite' |>> {
       port => $mailport == undef ? {
         true    => 25,
         default => $mailport,
       }
     }
+
   } else {
+    # not a mail satellite
+
     if ! defined(Class['exim::mx']) and ! defined(Class['postfix']) {
       fail('We are not an exim::mx (or a postfix) yet do not have set our MXs to INCOMING-MX.')
     }
+
     ferm::rule::simple { 'dsa-smtp':
       description => 'Allow smtp access from the world',
       port        => '25',