833ba262c1ba8e6d20a832ee500436070359fa94
[mirror/dsa-puppet.git] / modules / exim / manifests / mx.pp
1 class exim::mx inherits exim {
2   include clamav
3   include postgrey
4   include fail2ban::exim
5
6   file { '/etc/exim4/ccTLD.txt':
7     source => 'puppet:///modules/exim/common/ccTLD.txt',
8   }
9   file { '/etc/exim4/surbl_whitelist.txt':
10     source => 'puppet:///modules/exim/common/surbl_whitelist.txt',
11   }
12   file { '/etc/exim4/exim_surbl.pl':
13     source => 'puppet:///modules/exim/common/exim_surbl.pl',
14     notify => Service['exim4'],
15   }
16
17   # MXs used as smarthosts
18   ferm::rule { 'dsa-exim-submission':
19     description => 'Allow SMTP',
20     rule        => '&SERVICE_RANGE(tcp, submission, $SMTP_SOURCES)'
21   }
22   ferm::rule { 'dsa-exim-v6-submission':
23     description => 'Allow SMTP',
24     domain      => 'ip6',
25     rule        => '&SERVICE_RANGE(tcp, submission, $SMTP_V6_SOURCES)',
26   }
27   $autocertdir = hiera('paths.auto_certs_dir')
28   dnsextras::tlsa_record{ 'tlsa-submission':
29     zone     => 'debian.org',
30     certfile => "${autocertdir}/${::fqdn}.crt",
31     port     => 587,
32     hostname => $::fqdn,
33   }
34   package { 'monitoring-plugins-standard':
35     ensure => installed,
36   }
37
38   if $exim::is_mailrelay {
39     concat::fragment { 'puppet-crontab--email-virtualdomains':
40       target  => '/etc/cron.d/puppet-crontab',
41       content => @(EOF)
42         @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
43         | EOF
44     }
45   }
46   file { '/etc/cron.d/dsa-email-virtualdomains': ensure => absent, }
47 }