Plaintext only for loopback?
Jorey Bump
list at joreybump.com
Mon Jan 14 09:10:01 EST 2008
Chris Pepper wrote, at 01/13/2008 06:48 PM:
> Arrgh! SquirrelMail offers plain, cram-md5, and digest-md5, and only
> plain appears to work against /etc/shadow. I don't want the overhead of
> running TLS over loopback, so I think I will have to do without forcing
> secure auth for non-SSL IMAP/POP, and use the firewall to prevent
> Internet users from connecting over the Internet w/o SSL (so I don't
> have to worry about them unwisely using PLAIN or LOGIN over plaintext
> connection).
Using TLS over loopback isn't entirely crazy, especially if webmail
accounts only for a fraction of your service (unless your platform has a
serious problem maintaining entropy).
There are also compelling reasons to switch to sasldb for mail accounts.
I used /etc/shadow for years, but I have to say I'm happy I switched,
in spite of some of the negatives. The truth is that less than 1% of my
mail users need shell accounts, so there's no incentive to create them
as system users, and there's no obstacle to providing shells to the
users that need them. Creating users in sasldb isn't that much harder,
and is more in keeping with the black box paradigm employed by cyrus.
Some mail clients use the md5 methods by default, or failover to them,
so it's worth adding support. Give it a try, you might like it.
> Pity. It would be nice to have the option of doing IMAP on the IMAP
> port without worrying about unencrypted plaintext auth.
>
> Thanks,
>
> Chris
> PS-Bron, I don't want to deal with multiple instances, and I don't need
> too, since I can firewall IMAP (non-SSL) and only let SquirrelMail
> connect to port 143. I'm not looking forward to the SpamAssassin/ClamAV
> sandwich on the SMTP side.
Don't co-opt a standard port for a nonstandard purpose. Bron & Phil have
both indicated how Cyrus IMAP offers additional options. It's not always
obvious in the documentation, but there are roughly three kinds of options:
Global settings
Named service settings
Arguments
Don't be deceived by the service names in cyrus.conf; they are just
arbitrary strings. You can create an imapd service dedicated to
SquirrelMail and call it anything you want:
imap cmd="imapd" listen="192.168.1.100:143" prefork=0
imaps cmd="imapd -s" listen="imaps" prefork=0
nuts cmd="imapd" listen="localhost:143" prefork=0
Just make sure you avoid IP or port conflicts. Now you'll need to either
prefix the appropriate settings in imapd.conf for each named service:
imap_tls_cert_file: /path/to/cert.crt
imaps_tls_cert_file: /path/to/cert.crt
nuts_tls_cert_file: disabled
...
Or simply create a dedicated configuration file for the new service, and
specify it in cyrus.conf:
nuts cmd="imapd -C /etc/nuts.conf" listen="localhost:143" prefork=0
So, what you want to do is supported, it's just not intuitively obvious,
because there's a fair amount of flexibility and interaction between
settings at different levels.
NOTE: I've set this up in the past, but didn't confirm the examples
above. Be sure to consult the documentation for your version of Cyrus
IMAP. Using a separate imapd config file may be the safest way to get
your alternate service running to your specifications without disrupting
an existing configuration too much (and follow Bron's advice and version
control everything).
More information about the Info-cyrus
mailing list