class exim::mx inherits exim {
include clamav
include postgrey
+ include fail2ban::exim
file { '/etc/exim4/ccTLD.txt':
source => 'puppet:///modules/exim/common/ccTLD.txt',
notify => Service['exim4'],
}
+ # 20181010 many connections:
+ # 188.165.219.27
+ # 125.72.232.*
+ # 140.224.61.*
+ # 117.24.36.0/22
+ # 115.235.157.28
+ # 113.110.47.180
+ # 121.226.141.*
+ @ferm::rule { 'dsa-mail-abusers':
+ prio => "000",
+ rule => "saddr (188.165.219.27 125.72.232.0/24 140.224.61.0/24 117.24.38.0/22 115.235.157.28 113.110.47.180 121.226.141.0/24) DROP",
+ }
+
+ # MXs used as smarthosts
@ferm::rule { 'dsa-exim-submission':
description => 'Allow SMTP',
rule => '&SERVICE_RANGE(tcp, submission, $SMTP_SOURCES)'
domain => 'ip6',
rule => '&SERVICE_RANGE(tcp, submission, $SMTP_V6_SOURCES)',
}
-
+ $autocertdir = hiera('paths.auto_certs_dir')
+ dnsextras::tlsa_record{ "tlsa-submission":
+ zone => 'debian.org',
+ certfile => "${autocertdir}/${::fqdn}.crt",
+ port => 587,
+ hostname => "$::fqdn",
+ }
package { 'nagios-plugins-standard':
ensure => installed,
}
+
+ if has_role('mailrelay') {
+ concat::fragment { 'dsa-puppet-stuff--email-virtualdomains':
+ target => '/etc/cron.d/dsa-puppet-stuff',
+ content => @(EOF)
+ @hourly root if [ ! -d /etc/exim4/email-virtualdomains ]; then cd /etc/exim4 && git clone mail-git:email-virtualdomains ; fi && cd /etc/exim4/email-virtualdomains && git pull --quiet --ff-only
+ | EOF
+ }
+ }
+ file { '/etc/cron.d/dsa-email-virtualdomains': ensure => absent, }
}