X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fexim%2Ftemplates%2Feximconf.erb;h=b40926dacbd7ac5ca9e89dfd32658bfb77d5b8dd;hb=c855baee11e851eab1909fdce6861894f39a1fd3;hp=eb28176e276aac5e201f21111c98042f99232593;hpb=a47b2670e5d383854ebebc8ce9390c1d81932149;p=mirror%2Fdsa-puppet.git diff --git a/modules/exim/templates/eximconf.erb b/modules/exim/templates/eximconf.erb index eb28176e2..b40926dac 100644 --- a/modules/exim/templates/eximconf.erb +++ b/modules/exim/templates/eximconf.erb @@ -107,7 +107,7 @@ allow_domain_literals = true # local_domains. It will be referenced # later on by the syntax "+local_domains". # Other domain and host lists may follow. -# @ is the local FQDN, @[] matches the IP adress of any local interface. +# @ is the local FQDN, @[] matches the IP address of any local interface. domainlist local_domains = @ : \ @[] : \ @@ -307,10 +307,10 @@ GREYLIST_LOCAL_PARTS = ${if match_domain{$domain}{+virtual_domains}\ # If a user has not explicitly disabled the option, the assumption is in # favour of filtering. HAS_DEFAULT_OPTIONS = ${if and {\ - {eq{${lookup{$local_part}dbmnz{/var/lib/misc/$primary_hostname/default-mail-options.db}{$value}{TRUE}}}{TRUE}}\ - {exists{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}\ - {! eq {${lookup{$local_part}dbmnz{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}{}}\ - }} + {eq{${lookup{$local_part}dbmnz{/var/lib/misc/$primary_hostname/default-mail-options.db}{$value}{TRUE}}}{TRUE}}\ + {exists{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}\ + {! eq {${lookup{$local_part}dbmnz{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}{}}\ + }} <%- if @is_rtmaster -%> # This subject rewrite is embedded in double-quoted strings. As such, some of # the items need more escaping than usual, otherwise \N becomes simply "N" and @@ -725,7 +725,7 @@ check_recipient: <%- if @is_packagesmaster -%> warn condition = ${if eq {$acl_m_prf}{PackagesMail}} condition = ${if eq {$sender_address}{$local_part@$domain}} - message = X-Packages-FromTo-Same: yes + add_header = X-Packages-FromTo-Same: yes <%- end -%> deny condition = ${if !eq {$acl_m_prf}{PopconMail}} @@ -810,7 +810,7 @@ check_recipient: log_message = greylisted. condition = ${if or { \ {eq{$acl_m_grey_recip}{1}} \ - {bool_lax{HAS_DEFAULT_OPTIONS}} \ + {bool_lax{$acl_m_defopt}} \ } \ } !senders = : @@ -851,7 +851,7 @@ check_recipient: domains = +handled_domains condition = ${if or { \ {eq{$acl_m_grey_recip}{1}} \ - {bool_lax{HAS_DEFAULT_OPTIONS}} \ + {bool_lax{$acl_m_defopt}} \ } \ } set acl_m_pgr = request=smtpd_access_policy\n\ @@ -881,7 +881,7 @@ check_recipient: domains = +handled_domains condition = ${if or { \ {eq{$acl_m_grey_recip}{1}} \ - {bool_lax{HAS_DEFAULT_OPTIONS}} \ + {bool_lax{$acl_m_defopt}} \ } \ } condition = ${if eq{${uc:${substr_0_7:$acl_m_pgr}}}{PREPEND}} @@ -900,46 +900,46 @@ check_recipient: domains = +virtual_domains : +bsmtp_domains <%- unless @use_smarthost -%> - deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value); see $dnslist_text + deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} + domains = +handled_domains + !hosts = +debianhosts : WHITELIST dnslists = ${if match_domain{$domain}{+virtual_domains}\ {${if exists {${extract{directory}{VDOMAINDATA}{${value}/rbllist}}}\ {${lookup{$local_part}lsearch*{${extract{directory}{VDOMAINDATA}{${value}/rbllist}}}{$value}{}}}{}}}\ {${lookup{$local_part}lsearch{/etc/exim4/rbllist}{$value}{}}}} : \ ${lookup{$local_part}lsearch{/var/lib/misc/$primary_hostname/mail-rbl}{$value}{}} - domains = +handled_domains - !hosts = +debianhosts : WHITELIST - deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value); see $dnslist_text - dnslists = noserver.dnsbl.sorbs.net + deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} domains = +handled_domains !hosts = +debianhosts : WHITELIST + dnslists = noserver.dnsbl.sorbs.net - deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value); see $dnslist_text - condition = ${if bool_lax{HAS_DEFAULT_OPTIONS}} - dnslists = relays.dnsbl.sorbs.net : xbl.spamhaus.org + deny message = host $sender_host_address is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} + condition = ${if bool_lax{$acl_m_defopt}} domains = +handled_domains !hosts = +debianhosts : WHITELIST + dnslists = relays.dnsbl.sorbs.net : xbl.spamhaus.org <%- end -%> - deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value); see $dnslist_text + deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} + domains = +handled_domains + !hosts = +debianhosts : WHITELIST dnslists = ${if match_domain{$domain}{+virtual_domains}\ {${if exists {${extract{directory}{VDOMAINDATA}{${value}/rhsbllist}}}\ {${expand:${lookup{$local_part}lsearch*{${extract{directory}{VDOMAINDATA}{${value}/rhsbllist}}}{$value}{}}}}{}}}\ {${expand:${lookup{$local_part}lsearch{/etc/exim4/rhsbllist}{$value}{}}}}} : \ ${expand:${lookup{$local_part}lsearch{/var/lib/misc/$primary_hostname/mail-rhsbl}{$value}{}}} - domains = +handled_domains - !hosts = +debianhosts : WHITELIST - deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value); see $dnslist_text - dnslists = nomail.rhsbl.sorbs.net/$sender_address_domain + deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} domains = +handled_domains !hosts = +debianhosts : WHITELIST + dnslists = nomail.rhsbl.sorbs.net/$sender_address_domain - deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value); see $dnslist_text - condition = ${if bool_lax{HAS_DEFAULT_OPTIONS}} - dnslists = dbl.spamhaus.org/$sender_address_domain + deny message = domain $sender_address_domain is listed in $dnslist_domain ($dnslist_value)${if >{${strlen:${dnslist_text}}}{0}{; see $dnslist_text}} + condition = ${if bool_lax{$acl_m_defopt}} domains = +handled_domains !hosts = +debianhosts : WHITELIST + dnslists = dbl.spamhaus.org/$sender_address_domain <%- unless @use_smarthost -%> deny domains = +handled_domains @@ -993,7 +993,7 @@ acl_check_mime: condition = ${if eq {$acl_m_prf}{markup}} set acl_m_srb = ${perl{surblspamcheck}} condition = ${if !eq{$acl_m_srb}{false}} - message = X-Surbl-Hit: $primary_hostname: $acl_m_srb + add_header = X-Surbl-Hit: $primary_hostname: $acl_m_srb # Dump MIME parts to disk. "default" creates sequentially-named files # in /scan// which should then be @@ -1020,6 +1020,10 @@ check_message: # header. Take their crack pipe away. drop condition = ${if match{${lc:$h_From:}}{\Npostmaster@([^.]+\.)?debian\.org\N}} + # If the sending system says the mail is spam, believe them + deny condition = ${if eqi {$h_X-Spam-Status:}{YES}} + message = Incoming spam flags + <%- if @is_rtmaster -%> deny condition = ${if eq {$acl_m_prf}{RTMail}} condition = ${if and{{!match {${lc:$rh_Subject:}} {debian rt}} \ @@ -1056,7 +1060,7 @@ check_message: # postfix's strict_7bit_headers option, but only checks a few common problem # headers, as there doesn't appear to be an easy way to check them all. deny - condition = ${if or {{match {$rh_Subject:}{[\200-\377]}}\ + condition = ${if or {{match {$rh_Subject:}{[\200-\377]}}\ {match {$rh_To:}{[\200-\377]}}\ {match {$rh_From:}{[\200-\377]}}\ {match {$rh_Cc:}{[\200-\377]}}}} @@ -1068,6 +1072,29 @@ check_message: condition = ${if !eq {$acl_m_prf}{PopconMail}} message = Your mailer is not RFC 2047 compliant: message rejected + warn condition = ${if bool_lax{$acl_m_defopt}} + condition = ${if or {\ + {match {$message_body}{Wenn Sie zukünftig keine weiteren Informationen erhalten möchten,
unwissentlich oder unbeabsichtigt in den Verteiler aufgenommen wurden,}} \ + {match {$message_body}{\N(?i)Dear Beneficiary.*You have been selected.*Thousand United States Dollars\N}} \ + {match {$message_body}{\N(?i)receiving sum of money into your account for safe keeping\N}} \ + {match {$message_body}{\N(?i)I got your e-mail address through an internet marketing firm\N}} \ + {match {$message_body}{\N(?i)De conformidad con lo establecido en la Ley 34/2002 Lssice le comunicamos que este escrito procede de Search Task\N}} \ + }\ + } + set acl_m_content = 1 + + discard condition = ${if eq {$acl_m_prf}{blackhole}} + condition = ${if eq {$acl_m_content}{1}} + log_message = Discarded suspicious content for $recipients + + deny condition = ${if !eq {$acl_m_prf}{markup}} + condition = ${if eq {$acl_m_content}{1}} + message = Rejected due to suspicious content + + warn condition = ${if eq {$acl_m_prf}{markup}} + condition = ${if eq {$acl_m_content}{1}} + add_header = X-debian-content-warning: yes + <%- if has_variable?("clamd") && @clamd -%> discard condition = ${if eq {$acl_m_prf}{blackhole}} malware = */defer_ok