Loading...
 

Exim SMTP Authentication

define standard plain text auth

PLAIN:
  driver                     = plaintext
  server_set_id              = $auth2
  server_prompts             = :
  server_condition           = ${if and {{eq{$auth2}{username_here}}{eq{$auth3}{password_here}}}}
  server_advertise_condition = true  ${if def:tls_cipher }

  1. server_set_id defines which parameter to use as the id (this will show up in log messages)
  2. server_condition defines the condition to use for authentication $auth1 is the auth type (PLAIN, LOGIN, etc), a$auth2 and $auth3 are compared to whatever strings are entered between the subsequent braces
  3. the rest is self explanatory

Using a DB

exim.conf
server_condition           = ${lookup{$auth2}dbm{/etc/passworddb}\
                                {${if eq{$value}{$auth3}}} {false}}


Then create a temporary file with key/value list of usernames separated with a colon
plain_text_passwords.txt
bob:bobs_cryptic_password
sue:sues_crap_password


Then run exim_dbm:
exim_dbmbuild plain_text_passwords.txt passworddb


Testing

Below are a list of tests that should be checked along with their results:
With Auth to remote address: Completed
with auth to local address: Completed
Without Auth to remote address: rejected RCPT <user@remote.com>: relay not permitted
without auth to local address from local address: Completed
without auth to local address from remote address: Completed