El paquete Courier contiene un Agente de Transporte de Correo (MTA). Es útil para enviar correo a otros usuarios de tu máquina. También puede configurarse como servidor central de correo para tu dominio o como agente de reenvio de correo. El paquete Courier incluye también una interfaz de correo basada en web, IMAP, IMAP-SSL , POP3, y POP 3-SSL. La configuración listada a continuación permitirá el acceso al correo a usuarios con PAM y a usuarios virtuales en una base de datos MySQL.
Descarga (HTTP): http://osdn.dl.sourceforge.net/sourceforge/courier/courier-0.43.2.tar.bz2
Descarga (FTP): ftp://ftp.pu.edu.tw/Unix/Mail/maildrop/courier-0.43.2.tar.bz2
Tamaño del paquete: 3.3 MB
Estimación del espacio necesario en disco: 104 MB
Tiempo estimado de construcción: 2.79 SBU
Antes de compilar el programa, necesitas crear los usuarios y grupos que se espera encontrar cuando se ejecute el guión de instalación. Añade los usuarios y grupos con los siguientes comandos:
groupadd courier && useradd -c 'Courier Mail Server' -d /dev/null -g courier -s /bin/false courier |
Instala courier ejecutando los siguientes comandos:
./configure --prefix=/usr --sysconfdir=/etc/courier --with-piddir=/var/run \ --libexecdir=/usr/sbin --datadir=/usr/share/courier \ --localstatedir=/var/spool/courier --disable-root-check --with-db=gdbm \ --with-mailuser=courier --with-mailgroup=courier \ --enable-workarounds-for-imap-client-bugs \ --with-ispell=/usr/bin/aspell && make && make install && make install-configure |
--sysconfdir=/etc/courier: Especifica el directorio en el que se instalarán los ficheros de configuración de Courier.
--with-piddir=/var/run: Especifica el directorio en el que se guardará el fichero PID de Courier cuando Courier esté activo.
--libexecdir=/usr/sbin: libexecdir contiene programas y librerías que no pueden ejecutarse en la línea de comandos.
--datadir=/usr/share/courier: Especifica el directorio en el que se instalarán los diversos guiones del intérprete de comandos, guiones de Perl y ficheros de datos.
--localstatedir=/var/spool/courier: Especifica el directorio que contendrá la cola de correo y otros datos temporales. La opción por defecto es el subdirectorio var dentro del directorio especificado con la opción --prefix.
--disable-root-check: Permite que Courier sea construido como usuario root.
--with-db=gbbm: Courier necesita que esté instalada la librería de bases de datos GDBM o DB. Si ambas están presentes se usa GDBM. Esta opción fuerza la selección de la librería de bases de datos.
--with-mailuser=courier: Todos los demonios de Courier excepto dos se ejecutan como usuario sin priviliegios. Esta opción especifica el identificador de usuario con el que Courier se instalará y ejecutará.
--withmailgroup=courier: como --with-mailuser, pero especifica el ID del grupo.
--enable-workarounds-for-imap-client-bugs: Hay varios errores confirmados en algunos clientes IMAP que no implementan correctamente el protocolo IMAP4rev1. Esta opción activa algunos arreglos para esos clientes IMAP erroneos. NOTA: make check fallará si se usa esta opción. Primero deberías configurar sin esta opción y, si todas las pruebas de posconfiguración tienen exito, relanzar configure con esta opción y recompilar.
--with-ispell=/usr/bin/aspell: El servidor webmail de Courier puede usar revisión gramatical, si el programa aspell está disponible. Si configure encuentra ispell activa la revisión gramatical. Si aspell no está en la ruta de búsqueda actual, utiliza --with-ispell=[programa] para indicar explícitamente la localización de aspell.
/etc/courier/authmysqlrc
Haz los siguientes cambios en este fichero si estas usando MySQL:
MYSQL_SERVER localhost MYSQL_USERNAME courier MYSQL_PASSWORD (tu elección) MYSQL_SOCKET /tmp/mysql.sock MYSQL_PORT 3306 MYSQL_DATABASE courier-mail MYSQL_USER_TABLE users MYSQL_CLEAR_PWFIELD clear DEFAULT DOMAIN (tu dominio) MYSQL_QUOTA_FIELD quota |
Si utilizas PAM:
cat > /etc/pam.d/esmtp << "EOF # Inicio de /etc/pam.d/esmtp auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # Fin de /etc/pam.d/esmtp EOF cat > /etc/pam.d/pop3 << "EOF # Inicio de /etc/pam.d/pop3 auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # Fin de /etc/pam.d/pop3 EOF cat > /etc/pam.d/imap << "EOF # Inicio de /etc/pam.d/imap auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # Fin de /etc/pam.d/imap EOF cat > /etc/pam.d/webmail << "EOF # Inicio de /etc/pam.d/webmail auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # Fin de /etc/pam.d/webmail EOF |
Esta comando creará la base de datos mysql para autenticación:
mysqladmin -uroot -p[contraseña] create courier-mail |
Este comando establecerá la tabla de usuarios para la base de datos courier-mail:
mysql -uroot -p[contraseña] courier-mail CREATE TABLE users ( id char(128) DEFAULT '' NOT NULL, crypt char(128) DEFAULT '' NOT NULL, clear char(128) DEFAULT '' NOT NULL, name char(128) DEFAULT '' NOT NULL, uid int(10) unsigned DEFAULT '65534' NOT NULL, gid int(10) unsigned DEFAULT '65534' NOT NULL, home char(255) DEFAULT '' NOT NULL, quota char(255) DEFAULT '' NOT NULL, KEY id (id(128)) ); |
Esto añadirá el usuario courier que especificamos antes en el fichero authmysql:
mysql -uroot -p[contraseña] mysql grant all privileges on *.* to courier@localhost identified by '[contraseña]' with grant option; |
Ajustes generales para el correo
Necesitarás crear los siguientes ficheros con el contenido indicado.
/etc/courier/defaultdomain
cat > /etc/courier/defaultdomain << "EOF" [tudominio] EOF |
/etc/courier/me
cat > /etc/courier/me << "EOF" [nombredelservidor.tudominio] EOF |
/etc/courier/locals
cat > /etc/courier/locals << "EOF" localhost [tudominio] EOF |
/etc/courier/esmtpacceptmailfor.dir/system
cat >/etc/courier/esmtpacceptmailfor.dir/system << "EOF" localhost [tudominio] EOF |
También necesitarás editar el fichero de alias y cambiar la siguiente entrada.
/etc/courier/aliases/system
postmaster: [tu dirección de correo como administrador] |
Si quieres denegar el acceso para enviar correo desde algunas máquinas, necesitarás editar /etc/courier/smtpaccess/default.
Despues de completar los pasos anteriores necesitarás ejecutar los siguientes comandos:
makesmtpaccess makehosteddomains makealiases |
Configuración SMTP/SMTMP-SSL
Esta sección activará el servidor SMTP de Courier
/etc/courier/esmtpd
ESMTPDSTART=YES |
/etc/courier/esmtpd-ssl
ESMTPDSSLSTART=YES |
Configuración POP3/POP3-SSL
Esta sección activará el servidor POP3 de Courier
/etc/courier/pop3d
POP3DSTART=YES |
/etc/courier/pop3d-ssl
POP3DSLLSTART=YES |
Configuración IMAP/IMAP-SSL
Esta sección activará el servidor IMAP de Courier
/etc/courier/imapd
IMAPDSTART=YES |
/etc/courierd/imapd-ssl
IMAPDSSLSTART=YES |
Creación de los directorios de correo para los usuarios del sistema
Esta sección explica cómo crear MailDirs para los usuarios de tu sistema.
cd /home/[usuario] maildirmake Maildir chown [usuario].[grupo] Maildir -R |
Ajustes para usuarios virtuales
Esta sección explica cómo ajustar Maildir para tus usuarios virtuales.
echo "vmailman:x:9000:9000:Virtual Mailman:/home/vmailman:/bin/bash" >> /etc/passwd echo "vmailman:x:9000:" >> /etc/group |
Ahora establece los directorios de correo para estos usuarios virtuales.
cd /home/vmailman mkdir [usuario_virtual] cd [usuario_virtual] maildirmake Maildir chown vmailman.vmailman Maildir -R |
Añade el usuario virtual a la base de datos MySQL. Necesitas introducir al menos una versión de la contraseña, ya sea en texto claro o encriptada.
mysql -ucourier -p[contraseña] courier-mail insert into users values('[usuario_virtual]@[dominio.com], '[contraseña encriptada o vacio]','[contraseña en texto claro o vacio]', '[Nombre del Usuario]',9000,9000,'[ubicación de Maildir]','[Cuota en Bytes']); |
ejemplo
insert into users values ('blfsuser@linuxfromscratch.org',' ','password','BLFS User',9000,9000,'/home/vmailman/blfsuser',''); |
Ajustes para correo basado en Web
Esta sección explica cómo ajustar el sistema de correo basado en Web de Courier.
Necesitarás copiar el fichero webmail de /usr/sbin/courier/webmail/webmail al directorio cgi-bin de tu servidor Apache.
cp -a /usr/sbin/courier/webmail/webmail /var/www/cgi-bin |
Necesitarás copiar las imágenes a un directorio bajo el directorio htdocs de tu servidor Apache. El directorio debe llamarse webmail o deberás especificarlo durante la fase configure con --enable-imageurl=/url.
cp -a /usr/share/courier/sqwebmail/images /var/www/htdocs/webmail |
Ajustes para administración de correo basado en Webl
Esta sección explica cómo ajustar el sistema de administración de Courier basado en Web.
Necestirás copiar el fichero webadmin de /usr/sbin/courier/webmail/webmin al directorio cgi-bin de tu servidor Apache.
cp -a /usr/sbin/courier/webmail/webadmin /var/www/cgi-bin |
/etc/courier/webadmin/password
cat > /etc/courier/webadmin/password << "EOF" [contraseña] EOF |
Si no utilizas SSL en tu servidor Apache, necesitarás añadir /etc/courier/webadmin/unsecureok para ser capaz de usar tus herramientas de administración basadas en web.
touch /etc/courier/webadmin/unsecureok |
El guión de inicio que viene con el paquete Courier es el mas facil de usar. Automáticamente creará los ficheros de datos ausentes y certificados SSL si no los encuentra. Para instalar el fichero init.d de Courier necesitarás usar los siguientes comandos:
cp /usr/src/courier-0.43.2/courier.sysvinit /etc/rc.d/init.d/courier && chmod 755 /etc/rc.d/init.d/courier |
Crea los enlaces simbólicos a este fichero en los directorios rc.d apropiados con los siguientes comandos:
cd /etc/rc.d/init.d && ln -sf ../init.d/courier ../rc0.d/K25courier && ln -sf ../init.d/courier ../rc1.d/K25courier && ln -sf ../init.d/courier ../rc2.d/K25courier && ln -sf ../init.d/courier ../rc3.d/S35courier && ln -sf ../init.d/courier ../rc4.d/S35courier && ln -sf ../init.d/courier ../rc5.d/S35courier && ln -sf ../init.d/courier ../rc6.d/K25courier |
El paquete Courier contiene cancelmsg, courier-config, couriermlm, couriertls, deliverquota, dotforward, imapd, lockmail, mailbot, maildirkw, maildrop, mailq, makedat, makemime, mimegpg, preline, reformail, reformime, rmail, sendmail, testmxlookup, courier, courierfilter, courierlogger, couriertcpd, esmtpd, esmtpd-msa, esmtp-ssl, filterctl, imapd, imapd-ssl, makeacceptmailfor, makealiases, makehosteddomains, makepercentrelay, makesmtpacces, makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mksmtpcert, mkimapdcert, mkpop3cert, pop3d, pop3d-ssl, pw2userdb, showconfig, showmodules, userdb, userdbpw, webgpg, authdaemon, authdaemon.mysql, authdaemon.plain, aliascombine, aliascreate, aliasexp, courierd, courierpop3d, courierpop3login, imaplogin, makedatprog, pcpd, submit, submitmkdir, webadmin, webmail, courierdsn, addcr, authend, authstate, courieresmtp, courieresmtpd, courierfax, courierdeliver, courierlocal, courieruucp, perlfilter y dupfilter.
cancelmsg elimina un mensaje de la cola de correo.
couriermlm es el administrador de lista de correo de Courier.
lockmail es una utilidad de ayuda para trabajar con ficheros mailbox.
mailbot lee un mensaje de correo en la entrada estándar y crea un mensaje de correo en respuesta al remitente del mensaje original.
maildirkw modifica las palabras clave de mensaje en los maildir compatibles de Courier-IMAP.
maildrop es un sustituto para el agente local de entrega de correo que incluye un lenguaje de filtros.
mailq muestra una lista de todos los mensajes que aún no han sido entregados.
reformail lee un mensaje en la entrada estándar, lo reformatea de algún modo y lo escribe en la salida estándar.
reformime es una utilidad para reformatear mensajes MIME.
sendmail lee un mensaje de correo y lo entrega a su destinatario. El comando sendmail es parte del servdor de correo Courier, sin embargo intenta emular el comportamiento del MTA sendmail original.
testmxlookup lista los nombres y direcciones IP de los reenviadores de correo que reciben correo para el dominio. Es útil para diagnosticar problemas de entrega de correo.
courier es un agente de transporte de correo multiprotocolo y modular. El comando courier es un comando administrativo y muchas de sus opciones solo están disponibles para el superusuario.
courierfilter instala o desinstala filtros globales de correo. Los filtros globales de correo se usan para bloquear selectivamente correo indeseado.
filterctl instala o desinstala filtros globales de correo. Los filtros globales de correo se usan para bloquear selectivamente correo indeseado.
makeacceptmailfor construye una lista de dominios de los que se acepta correo procedente del directorio /etc/courier/esmtpacceptmailfor.dir.
makealiases construye una lista de alias procedente de los directorios /etc/courier/aliases o /etc/courier/aliasdir.
makehostedomains construye una base de datos de dominios hospedados procedente de hosteddomains.
makepercentrelay construye una lista de dominios %-relayed procedente del directorio percentrelay.dir.
makesmtpacces construye una lista de acceso a servidores ESMTP procedente del directorio /etc/courier/smtpaccess.
makesmtpaccess-msa construye una lista de acceso a servidores ESMTP procedente del directorio /etc/courier/smtpaccess. Esta lista de esmtp es para el protocolo MSA.
makeuucpneighbors construye una lista de destinatarios UUCP usando /etc/courier/uucpneighbors.
showconfig muestra la configuración actual de Courier.
showmodules mustra los módulos actuales de Courier.
authdaemon es la librería de autenticación de Courier.