[exim] Exim MySQL and PAM

Top Page
Delete this message
Reply to this message
Author: Silmar A. Marca
Date:  
To: exim-users
Subject: [exim] Exim MySQL and PAM
This is my auth clause (tested). If the user not contain "@", this is a real
user (pam). If this contain "@" this is a virtual user in mysql bd (password
stored in md5 format).

..Clause
MYSQL_PASSWD_MD5_LOGIN = SELECT popbox.password_md5 from popbox LEFT JOIN
domain ON ( popbox.domain_name = domain.domain_name ) \
where popbox.local_part='${quote_mysql:${extract {1}{@%!}{$1}}}' and
popbox.domain_name='${quote_mysql:${extract {2}{@%!}{$1}}}' \
AND domain.ativo='1' AND popbox.ativo='1' LIMIT 1


begin authenticators

# PLAIN: user e pass codificados em base64-coded - usado pelo Netscape
plain:
  driver                = plaintext
  public_name           = PLAIN
.ifdef MYSQL_SERVER
  server_condition      = "${if eq {${if match{$2}{@}{yes}{no}}}{yes}\
    {${if and{\
        {!eq {$2}{}} {!eq {$3}{}} \
        {eq {${lookup mysql {MYSQL_PASSWD_MD5_PLAIN}{$value}{*:*}}}{${md5:$3}}}
\
      }{yes}{no}}}\
      {${if pam{$2:${sg{$3}{:}{::}}}{yes}{no}}}}"
.else
  server_condition      = ${if pam{$2:${sg{$3}{:}{::}}}{yes}{no}}
.endif
  server_set_id = $2


# LOGIN: codificacao em md5-encoded com usado pelo Outlook Express
login:
  driver                = plaintext
  public_name           = LOGIN
  server_prompts        = "Username:: : Password::"
.ifdef MYSQL_SERVER
  server_condition      = "${if eq {${if match{$1}{@}{yes}{no}}}{yes}\
    {${if and{\
        {!eq {$1}{}} {!eq {$2}{}} \
        {eq {${lookup mysql {MYSQL_PASSWD_MD5_LOGIN}{$value}{*:*}}}{${md5:$2}}}
\
      }{yes}{no}}}\
      {${if pam{$1:${sg{$2}{:}{::}}}{yes}{no}}}}"
.else
  server_condition      = ${if pam{$1:${sg{$2}{:}{::}}}{yes}{no}}
.endif
  server_set_id = $1






Cordialmente, Silmar A. Marca
GrupoGSN - Desenvolvimento, Implantação e Verificação de Servidores
Profissionais baseados em Linux/Novell
http://www.grupogsn.com.br/~marca/
------------------------------------------------------------
Se algo não lhe faz mal (fisico, moral ou psicologicamente),
experimente! O máximo e você perder tempo! E tempo, e
o que você tem a vida toda pra perder.....
Mais vale um instante de prazer que uma eternidade fútil!
------------------------------------------------------------