X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/4c35cca55478f6c0f76b2620a8beb22e18fb2278..daa069c2e0be98ecc5a4f0366a3ddde5a8a71b5e:/cookbooks/exim/templates/default/exim4.conf.erb diff --git a/cookbooks/exim/templates/default/exim4.conf.erb b/cookbooks/exim/templates/default/exim4.conf.erb index 52816e7fa..caac72c52 100644 --- a/cookbooks/exim/templates/default/exim4.conf.erb +++ b/cookbooks/exim/templates/default/exim4.conf.erb @@ -146,6 +146,10 @@ spamd_address = 127.0.0.1 783 tls_advertise_hosts = <; !127.0.0.1 ; !::1 +# Configured TLS cipher selection. + +tls_require_ciphers = NORMAL:%LATEST_RECORD_VERSION:-VERS-SSL3.0 + # Specify the location of the Exim server's TLS certificate and private key. # The private key must not be encrypted (password protected). You can put # the certificate and private key in the same file, in which case you only @@ -306,6 +310,12 @@ log_selector = +all -skip_delivery trusted_users = <%= node[:exim][:trusted_users].join(" : ") %> +# Don't keep any environment when starting programs - this is the +# default but setting it stops exim warning + +keep_environment = + + ###################################################################### # ACL CONFIGURATION # @@ -324,9 +334,7 @@ acl_check_rcpt: # testing for an empty sending host field. accept hosts = : -<% if node[:lsb][:release].to_i >= 10.04 -%> control = dkim_disable_verify -<% end -%> ############################################################################# # The following section of the ACL is concerned with local parts that contain @@ -371,9 +379,20 @@ acl_check_rcpt: deny message = Restricted characters in address domains = !+local_domains - local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + local_parts = ^[./|] : ^.*[@!] : ^.*/\\.\\./ ############################################################################# + # Block bounces to selected addresses + + deny local_parts = root:postmaster:webmaster:abuse:support + senders = : + + # Block blacklisted senders + + deny senders = lsearch*@;/etc/exim4/blocked-senders + message = Rejected because $sender_address is blacklisted\nQueries to postmaster@$qualify_domain + !hosts = +relay_from_hosts + # Accept mail to postmaster in any local domain, regardless of the source, # and without verifying the sender. @@ -385,10 +404,6 @@ acl_check_rcpt: deny !hosts = +relay_from_hosts !verify = sender - deny !hosts = +relay_from_hosts - !senders = lsearch*@;/etc/exim4/callout_exempt_senders - !verify = sender/callout/defer_ok - # Accept if the message comes from one of the hosts for which we are an # outgoing relay. It is assumed that such hosts are most likely to be MUAs, # so we set control=submission to make Exim treat the message as a @@ -410,9 +425,7 @@ acl_check_rcpt: accept hosts = +relay_from_hosts control = submission -<% if node[:lsb][:release].to_i >= 10.04 -%> control = dkim_disable_verify -<% end -%> # Accept if the message arrived over an authenticated connection, from # any host. Again, these messages are usually from MUAs, so recipient @@ -421,9 +434,7 @@ acl_check_rcpt: accept authenticated = * control = submission -<% if node[:lsb][:release].to_i >= 10.04 -%> control = dkim_disable_verify -<% end -%> # Insist that any other recipient address that we accept is either in one of # our local domains, or is in a domain for which we explicitly allow @@ -491,6 +502,13 @@ acl_check_data: message = This message scored $spam_score SpamAssassin points. <% end -%> + # Deny spammy messages with headers of the form: + # X-PHP-Originating-Script: :.php + # X-PHP-Originating-Script: :.class.php + deny condition = ${if match {$h_X-PHP-Originating-Script:}{^[0-9]+:[A-Za-z]+(\\.class)?\\.php\$}} + !hosts = +relay_from_hosts + message = This message failed local spam checks. + # Accept the message. accept @@ -529,7 +547,7 @@ begin routers system_aliases: driver = redirect - domains = +local_domains + domains = !noreply.openstreetmap.org : +local_domains allow_fail allow_defer data = ${lookup{$local_part}lsearch{/etc/aliases}} @@ -575,6 +593,8 @@ noreply: <% end -%> <% if details[:local_parts] -%> local_parts = <%= details[:local_parts].join(" : ") %> + local_part_suffix = +* + local_part_suffix_optional <% end -%> <% if details[:host] -%> <% if details[:host].kind_of?(Array) -%> @@ -641,6 +661,8 @@ begin transports remote_smtp: driver = smtp + multi_domain = false + tls_require_ciphers = NORMAL:%LATEST_RECORD_VERSION:-VERS-SSL3.0 # This transport is used for handling pipe deliveries generated by alias or @@ -705,7 +727,8 @@ noreply: driver = pipe command = <%= details[:command] %> home_directory = <%= details[:home_directory] %> - return_output + path = <%= details[:path] || "/bin:/usr/bin" %> + return_fail_output <% else -%> driver = appendfile <% if details[:file] -%> @@ -758,6 +781,10 @@ begin retry # There are no rewriting specifications in this default configuration file. begin rewrite +*@<%= node[:fqdn] %> "${if !match {${lookup{$1}lsearch{/etc/aliases}{$value}}}{@} {$1@openstreetmap.org}fail}" Eh +<% node[:exim][:rewrites].each do |rewrite| -%> +<%= rewrite[:pattern] %> <%= rewrite[:replacement] %> <%= rewrite[:flags] %> +<% end -%>