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/20 22:58] 70.230.163.142 Removed some old Cyrus info. (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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 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 ===== |