This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
build:imap [2006/03/18 16:03] 206.80.70.194 Removed obsolete Cyrus stuff. (CMB) |
build:imap [2008/04/06 23:20] (current) 24.217.108.17 |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| (See [[http://www.xman.org/imap/pieces.shtml | this article]] for a description of all the pieces involved in email delivery.) | (See [[http://www.xman.org/imap/pieces.shtml | this article]] for a description of all the pieces involved in email delivery.) | ||
| + | |||
| + | |||
| ===== Installation ===== | ===== Installation ===== | ||
| Line 26: | Line 28: | ||
| </code> | </code> | ||
| - | TODO: Don't forget to create /etc/courier/pop3d.pem and /etc/courier/imapd.pem SSL certificates. | ||
| - | TODO: Need to install on Budlight. | ||
| - | TODO: Hook Postfix to deliver to Maildirs where Courier can pick it up. | ||
| - | TODO: Test. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Security ==== | ||
| + | The courier installation creates a rather sparse certificate that identifies itself as localhost. It's OK as a start for a default installation but the certificate should be updated to contain the correct values. Here is how to do this: | ||
| + | |||
| + | First we need to get a good set of values into the imapd.cnf. This assumes that /etc/ssl/openssl.cnf has been modified to contain the default SLUUG values already, if not see [[http://wiki.sluug.org/build/security#ssl ]] | ||
| + | <code> | ||
| + | mv /etc/courier/imapd.cnf /etc/courier/imapd.cnf.ORIG | ||
| + | cp /etc/ssl/openssl.cnf /etc/courier/imapd.cnf | ||
| + | </code> | ||
| + | |||
| + | Next we should extend the time for the certificates for 10 years. The default is one year, which means a new certificate has to be created every year. I'm too lazy for that. To do this, edit the certificate creation script. | ||
| + | <code> | ||
| + | vi /usr/sbin/mkimapdcert | ||
| + | </code> | ||
| + | |||
| + | Look for the values 365 and add a zero to the end so it is 3650 (ten years) | ||
| + | |||
| + | As a safety measure, the mkimapdcert script checks to see if a certificate already exists and will exit if it finds one. So we need to move the old certificate to the side. This is not necessary if that file is a link to /etc/courier/imapd.pem just delete the link. | ||
| + | <code> | ||
| + | mv /usr/lib/courier/imapd.pem /usr/lib/courier/imapd.ORIG | ||
| + | </code> | ||
| + | |||
| + | At this point everything should be in place to create a new cert, so run the script, if the openssl.cnf has been previously modified you can just hit enter all the way through to accept the defaults. | ||
| + | <code> | ||
| + | /usr/lib/courier/mkimapdcert | ||
| + | </code> | ||
| + | |||
| + | Now we have a shiny new certificate that has all the correct values such as bud.sluug.org instead of localhost. Put the cert in place. | ||
| + | <code> | ||
| + | mv /etc/courier/imapd.pem /etc/courier/imapd.pem.ORIG | ||
| + | ln -s /usr/lib/courier/imapd.pem /etc/courier/ | ||
| + | </code> | ||
| + | |||
| + | Courier only reads the certificate at start up, so we need to bump it. | ||
| + | <code> | ||
| + | /etc/init.d/courier-imap-ssl reload | ||
| + | </code> | ||
| + | |||
| + | The certificate should be ready to go now. Fire up a mail client and connect to bud.sluug.org and check the certificate that is offered for the correct values, ie bud.sluug.org instead of localhost. | ||
| + | |||
| + | Here is the same thing for pop3d | ||
| + | <code> | ||
| + | vi /usr/lib/courier/mkpop3dcert # Change 365 to 3650 | ||
| + | mv /etc/courier/pop3d.cnf /etc/courier/pop3d.cnf.ORIG # Save the old stuff, in case | ||
| + | cp /etc/ssl/openssl.cnf /etc/courier/pop3d.cnf # Get SLUUG default | ||
| + | ls -l /usr/lib/courier/pop3d.pem # See if is a link | ||
| + | rm /usr/lib/courier/pop3d.pem # Script won't run if this file exists | ||
| + | /usr/lib/courier/mkpop3dcert # Run the cert script | ||
| + | mv /etc/courier/pop3d.pem /etc/courier/pop3d.pem.ORIG # Save the old stuff, in case | ||
| + | ln -s /usr/lib/courier/pop3d.pem /etc/courier/ # Create link | ||
| + | ls -l /etc/courier/ # Make sure is OK | ||
| + | /etc/init.d/courier-pop-ssl restart # Reload the cert | ||
| + | </code> | ||
| ===== Configuration ===== | ===== Configuration ===== | ||
| - | ===== TODO ===== | + | TODO. |
| - | * Document configuration details. | + | ===== Startup ===== |
| - | * Make sure IMAP isn't filling up the log files again. It was giving us errors like this, because OpenSSL wasn't configured correctly: | + | |
| - | Mar 6 15:08:58 budlight cyrus/imapd[8947]: Fatal error: imaps: required OpenSSL options not present | + | |
| - | Mar 6 15:08:59 budlight cyrus/pop3d[8950]: pop3s: required OpenSSL options not present | + | |
| - | Mar 6 15:09:01 budlight cyrus/imapd[8951]: imaps: required OpenSSL options not present | + | |
| - | Mar 6 15:09:02 budlight cyrus/imapd[8951]: Fatal error: imaps: required OpenSSL options not present | + | |
| - | Mar 6 15:09:04 budlight cyrus/imapd[8954]: imaps: required OpenSSL options not present | + | |
| - | * Document why we chose Cyrus over Courier IMAP and UW-IMAP. | + | TODO. |
| - | * Review cyrus at <del>thornhill</del> library (do not delete) | + | |
| - | * Install/configure mailadmin (or just use the command-line cyradm) and smartsieve packages. | + | |
| - | Certificates were made using the ssl-cert packages make-ssl-cert script. We had to edit the /usr/sbin/make-ssl-cert script and add the -days 3650 to the openssl command that actually creates the certificate, otherwise it defaults to 30 days (have not yet figured this one out). | + | ===== Testing ===== |
| + | TODO. | ||
| + | |||
| + | ===== TODO ===== | ||
| + | |||
| + | * Document configuration details. Certificates were made using the ssl-cert packages make-ssl-cert script. We had to edit the /usr/sbin/make-ssl-cert script and add the -days 3650 to the openssl command that actually creates the certificate, otherwise it defaults to 30 days (have not yet figured this one out). | ||
| + | * Make sure IMAP isn't filling up the log files again. | ||
| ====== Alternative IMAP Servers ====== | ====== Alternative IMAP Servers ====== | ||
| * [[http://www.bincimap.org/ | BINC IMAP]] - looks simple yet robust; recommended by Matthew Porter | * [[http://www.bincimap.org/ | BINC IMAP]] - looks simple yet robust; recommended by Matthew Porter | ||
| - | * [[http://www.courier-mta.org/imap/ | Courier IMAP]] | + | * [[http://www.dovecot.org/ | Dovecot]] - new, but in active development; concentrates on security, simplicity, speed, low memory use |
| * [[http://www.washington.edu/imap/ | UW-IMAP]] - the original Open Source implementation | * [[http://www.washington.edu/imap/ | UW-IMAP]] - the original Open Source implementation | ||
| + | * [[http://asg.web.cmu.edu/cyrus/imapd/ | Cyrus IMAP]] | ||
| + | |||