[Dovecot] Trouble with password scheme module
Ian R. Justman
ianj at ian-justman.com
Tue Mar 29 04:05:57 EEST 2011
Hi, all.
About two and a half years ago, I wrote a hack to add an additional
MD5-based password scheme to Dovecot, but I wrote it as a hack to
src/auth/password_scheme.c since it was relatively easy to do, and I
needed to get a machine running since the machine I was replacing, a Sun
Ultra 5 running Post.Office, had dying hard drives.
Now, I'm actually sitting down and adapting it as a module and am having
trouble getting it to work.
The code tarball itself can be picked up here:
http://www.ian-justman.com/code/dovecot/password_scheme_po_smd5.tar.gz
Before I continued, I made sure that a system-level account worked:
# telnet <server IP> 110
Trying <server IP>...
Connected to <server IP>.
Escape character is '^]'.
+OK Dovecot ready.
user <username>
+OK
pass <password>
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.
I then enabled the module, which introduces the password scheme
"PO-SMD5". I have Dovecot's default scheme set to SMD5. If I get a
password hash whose value has a {PO-SMD5} tag on it, the session looks
like the following:
# telnet <server IP> 110
Trying <server IP>...
Connected to <server IP>.
Escape character is '^]'.
+OK Dovecot ready.
user <user with PO-SMD5 password>
+OK
pass <user's password>
-ERR Authentication failed.
quit
+OK Logging out
Connection closed by foreign host.
The following entry is deposited into the system log:
Mar 28 17:44:51 <hostname> dovecot: auth: Error: sql(<username>,<server
IP>): Unknown scheme PO-SMD5
However, when I try using an account covered by the system (which does
work when the plugin isn't loaded in dovecot.conf), the session looks
like the following:
mikuru# telnet <server IP> 110
Trying <server IP>...
Connected to <server IP>.
Escape character is '^]'.
+OK Dovecot ready.
user <user with system password>
+OK
pass <user's password>
Connection closed by foreign host.
The following entry is deposited into the system log:
Mar 28 17:45:13 <hostname> dovecot: pop3: Error:
dlopen(/usr/local/lib/dovecot/lib_password_scheme_po_smd5.so) failed:
/usr/local/lib/dovecot/lib_password_scheme_po_smd5.so: Undefined symbol
"password_scheme_unregister"
Otherwise, the patch I developed under 1.x applies cleanly to 2.0.x's
password_scheme.c and works perfectly as a builtin.
This work was done under FreeBSD 8.1-RELEASE amd64.
Any ideas?
--Ian.
--
Ian R. Justman
UNIX hacker. Anime fan. Any questions?
ianj (at) ian-justman.com
More information about the dovecot
mailing list