Courier-0.43.2

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

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 '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

Explicación de los comandos

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

Configuración de Courier

Ficheros de configuración

/etc/courier/authmysqlrc

Información sobre la configuración

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

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

Contenido

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.

Descripciones

cancelmsg

cancelmsg elimina un mensaje de la cola de correo.

couriermlm

couriermlm es el administrador de lista de correo de Courier.

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.

mailq

mailq muestra una lista de todos los mensajes que aún no han sido entregados.

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.

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.

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.

filterctl

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

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.

showconfig

showconfig muestra la configuración actual de Courier.

showmodules

showmodules mustra los módulos actuales de Courier.

authdaemon

authdaemon es la librería de autenticación de Courier.