Spent all day configuring... (09 Jan 2004)
Spent all day configuring the new mail servers at DoC. Some useful Exim snippets for future reference are below.
Oh, and someone dug through a very important London backbone fibre this morning which took IV off the face of the net.
This weekend is going to involve a few trial runs of the Union webserver move that I'm doing on Monday for real.
Virtual hosting
domainlist local_domains = @ : cdb;VHOSTCONFIG
# Vhost routing
vhost_aliases:
driver = redirect
allow_fail
allow_defer
domains = cdb;VHOSTCONFIG
data = ${lookup{$local_part}nwildlsearch{${lookup{$domain}cdb{VHOSTCONFIG}}}}
file_transport = address_file
pipe_transport = address_pipe
no_more
Spam Checking with spamd
spamcheck_router:
driver = accept
# ! already spam AND ! already scanned AND from offsite AND !SMTP AUTHed
condition = "${if and { {!def:authenticated_id} {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} {!match{$sender_host_address}{^(146\.169\.|155\.198\.4\.76)}} } {1}{0}}"
transport = spamcheck
no_verify
## Spam Assassin
spamcheck:
driver = pipe
command = /usr/sbin/exim -i -oMr spam-scanned -f "${if eq {${sender_address}}{} {mailer-daemon} {${sender_address}} }" -- ${local_part}
transport_filter = /usr/bin/spamc
home_directory = "/tmp"
current_directory = "/tmp"
# must use a privileged user to set $received_protocol on the way back in!
user = exim
group = exim
log_output = true
return_fail_output = true
SMTP AUTH over TLS using Kerberos via PAM
# SMTP AUTH Settings (see also Authenticators at the bottom)
auth_advertise_hosts = *
received_header_text = "Received: ${if def:sender_fullhost {from ${sender_fullhost} ${if def:sender_ident {(${sender_ident})}}} {${if def:sender_ident {from ${sender_ident} }}}} \n\t by ${primary_hostname} ${if def:received_protocol {with ${received_protocol}}} \n\t ${if def:tls_cipher {(tls_cipher ${tls_cipher})}} ${if def:tls_peerdn {(tls_peerdn ${tls_peerdn})}} (Exim ${version_number} ${compile_number} (DoC)) \n\t id ${message_id} ${if def:authenticated_id { \n\t from user $authenticated_id}}"
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if pam{$2:${sg{$3}{:}{::}}}{yes}{no}}
server_set_id = $2
# server_advertise_condition = ${if eq{$tls_cipher}{}{no}{yes}}
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if pam{$1:${sg{$2}{:}{::}}}{yes}{no}}
server_set_id = $1
# server_advertise_condition = ${if eq{$tls_cipher}{}{no}{yes}}