Courier-0.45.5

Introducción a Courier

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.

Información sobre el paquete

Instalación de Courier

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 'Servidor de Correo Courier' -d /dev/null -g courier -s /bin/false courier

También necesitas crear un usuario bin. Si ya tienes un usuario de nombre bin, puedes ignorar este paso.

useradd -c 'bin' -d /dev/null -g bin -u 1 bin

Esto crea un directorio /var/run/courier en el que residirán todos los ficheros pid de Courier MTA. Esto permitirá que se cree courierfilter.pid. Sin courierfilter en ejecución, el MTA Courier no funcionará. Ejecuta el siguiente comando para crear /var/run/courier:

mkdir /var/run/courier &&
chown courier:courier /var/run/courier

Instala courier ejecutando los siguientes comandos:

./configure --prefix=/usr --libexecdir=/usr/lib/courier \
    --datadir=/usr/share/courier --sysconfdir=/etc/courier \
    --localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
    --disable-root-check --with-mailuser=courier --with-mailgroup=courier \
    --with-paranoid-smtpext --disable-autorenamesent \
    --enable-workarounds-for-imap-client-bugs --with-db=gdbm &&
make &&
make install &&
make install-configure

Explicación de los comandos

--libexecdir=/usr/lib/courier: Especifica el directorio que contiene los 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.

--with-piddir=/var/run/courier: Especifica el directorio en el que se guardará el fichero PID de Courier cuando Courier esté activo.

--disable-root-check: Permite que Courier sea construido como usuario root.

--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á.

--with-mailgroup=courier: como --with-mailuser, pero especifica el ID del grupo.

--with-paranoid-smtpext: Ser paranoico cuando se negocian extensiones ESMTP específicas de Courier con servidores remotos. El servidor de correo Courier define e implementa ciertas extensiones ESMTP experimentales: XVERP y XEXDATA. Los problemas pueden aparecer en el caso de que alguien use los mismos nombres para implementar alguna otra extensión. Si se especifica esta opción, el servidor ESMTP de Courier advierte sobre una falsa capacidad ESMTP llamada XCOURIEREXTENSIONS, y no reconocerá ninguna extensión propia de Courier a no ser que el servidor de correo remoto también advierta sobre esta falsa capacidad ESMTP.

--disable-autorenamesent: No renombra la carpeta de Enviado cada mes. Esta opción se puede controlar también con la variable de entorno SQWEBMAIL_AUTORENAMESENT.

--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-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-ispell=/usr/bin/aspell: El servidor webmail de Courier puede usar revisión gramatical, si configure encuentra ispell o si explícitamente le indicas la localización de aspell.

--enable-mimetypes=[localización del fichero mime.types]: Utiliza esta opción si aparece un error diciendo que no puede encontrar el fichero mime.types.

Configuración de Courier

Ficheros de configuración

/etc/courier/*

Información sobre la configuración

Haz los siguientes cambios en el fichero /etc/courier/authmysqlrc si utilizas 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

Conectate a la base de datos MySQL:

mysql -p

Este comando creará la base de datos de autenticación:

CREATE DATABASE courier_mail;
USE courier_mail

Este comando establecerá la tabla de usuarios para la base de datos 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 /etc/courier/authmysqlrc:

GRANT ALL PRIVILEGES ON *.* TO courier@localhost IDENTIFIED BY '[contraseña]' WITH GRANT OPTION;
QUIT

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.

groupadd -g 9000 vmailman &&
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 9000 vmailman

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

Conectate a la base de datos MySQL.

mysql -u courier -p

Para añadir el usuario virtual necesitas añadir al menos una versión de la contraseña, ya sea en texto plano o encriptada.

USE courier_mail
INSERT INTO users VALUES (
'[usuario_virtual]@[domain.com],
'[contraseña encriptada o en blanco]',
'[contraseña en texto plano o en blanco]',
'[Nombre del Usuario]',
9000,
9000,
'[localización de Maildir]',
'[Cuota en Bytes']
);
QUIT

Por ejemplo:

INSERT INTO users VALUES (
'blfsuser@linuxfromscratch.org',
'',
'ontraseña',
'Usuario BLFS',
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/lib/courier/courier/webmail/webmail al directorio cgi-bin de tu servidor Apache.

cp -a /usr/lib/courier/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/lib/courier/webmail/webadmin al directorio cgi-bin de tu servidor Apache.

cp -a /usr/lib/courier/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

Guión init.d para Courier

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.45.5/courier.sysvinit /etc/rc.d/init.d/courier &&
chmod 754 /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

Contenido

El paquete Courier contiene addcr, authenumerate, cancelmsg, courier, courier-config, courieresmtpd, courierfilter, courierldapaliasd, courierlogger, couriermlm, couriertcpd, couriertls, deliverquota, dotforward, esmtpd, esmtpd-msa, esmtpd-ssl, filterctl, imapd, imapd, imapd-ssl, lockmail, mailbot, maildiracl, maildirkw, maildirmake, maildrop, makeacceptmailfor, makealiases, makedat, makehosteddomains, makemime, makepercentrelay, makesmtpaccess, makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mimegpg, mkesmtpdcert, mkimapdcert, mkpop3dcert, pop3d, pop3d-ssl, preline, pw2userdb, reformail, reformime, rmail, sendmail, sharedindexinstall, sharedindexsplit, showconfig, showmodules, testmxlookup, userdb, userdbpw, vchkpw2userdb y webgpg.

Descripciones

cancelmsg

cancelmsg elimina un mensaje de la cola de correo.

courier

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

courierfilter instala o desinstala filtros globales de correo. Los filtros globales de correo se usan para bloquear selectivamente correo indeseado.

couriermlm

couriermlm es el administrador de lista de correo de Courier.

filterctl

filterctl instala o desinstala filtros globales de correo. Los filtros globales de correo se usan para bloquear selectivamente correo indeseado.

lockmail

lockmail es una utilidad de ayuda para trabajar con ficheros mailbox.

mailbot

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

maildirkw modifica las palabras clave de mensaje en los maildir compatibles de Courier-IMAP.

maildrop

maildrop es un sustituto para el agente local de entrega de correo que incluye un lenguaje de filtros.

makeacceptmailfor

makeacceptmailfor construye una lista de dominios de los que se acepta correo procedente del directorio /etc/courier/esmtpacceptmailfor.dir.

makealiases

makealiases construye una lista de alias procedente de los directorios /etc/courier/aliases o /etc/courier/aliasdir.

makehosteddomains

makehostedomains construye una base de datos de dominios hospedados procedente de hosteddomains.

makepercentrelay

makepercentrelay construye una lista de dominios %-relayed procedente del directorio percentrelay.dir.

makesmtpaccess

makesmtpacces construye una lista de acceso a servidores ESMTP procedente del directorio /etc/courier/smtpaccess.

makesmtpaccess-msa

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

makeuucpneighbors construye una lista de destinatarios UUCP usando /etc/courier/uucpneighbors.

reformail

reformail lee un mensaje en la entrada estándar, lo reformatea de algún modo y lo escribe en la salida estándar.

reformime

reformime es una utilidad para reformatear mensajes MIME.

sendmail

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.

showconfig

showconfig muestra la configuración actual de Courier.

showmodules

showmodules mustra los módulos actuales de Courier.

testmxlookup

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.