Hello,
I am running Exim 3.12 and I can't seem to figure out why PAM support
doesn't work correctly. Here's what I know about this one:
1) I am using PAM support to allow SMTP authentication.
2) The makefile has "SUPPORT_PAM=yes", and "+EXTRALIBS=-lwrap -lpam -ldl"
set as well. Compilation and execution is on a Linux machine.
3) I did a test static username+password for SMTP authentication, and that
works very well. Ex:
<snip>
server_condition = "${if and
{{eq{$1}{john_doe}}{eq{$2}{test_pw}}}{yes}{no}}"
</snip>
This tells me that the mail client is working correctly (using Outlook
Express for testing).
However, when I change it to the following, I get the noted problem:
<snip>
server_condition = "${if pam{john_doe:test_pw}{yes}{no}}"
</snip>
--OR--
<snip>
server_condition = "${if pam{$1:$2}{yes}{no}}"
</snip>
4) In the exim.conf file, I am forcing everyone to authenticate. That line
is:
auth_hosts = *
5) The error that I get from exim is "535 Incorrect authentication data" and
then it asks me to enter in the password again.
6) Using "uuencode -m" and "uudecode", I telnetted to port 25 and did it
interactively, and I get the same error message in #5 above.
7) My real password has more that one word in it, so I changed it to one
word with the same problem.
8) The only thing that I can guess that may have something to do with this
is during compilation, I get the following message:
gcc -c -g -O2 b64decode.c
gcc -c -g -O2 call_pam.c
call_pam.c: In function `auth_call_pam':
call_pam.c:123: warning: assignment from incompatible pointer type
gcc -c -g -O2 xtextencode.c
What am I doing wrong?
Thanks in advance for any help.
-Eric