Los MTA son los programas que transportan el correo de una máquina a otra. El MTA tradicional es Sendmail, sin embargo hay otras alternativas.
Aparte de servidores SMTP hay un servidor POP (qpopper) y un servidor IMAP (Courier-IMAP).
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 POP3-SSL.
Descarga (HTTP): http://prdownloads.sourceforge.net/courier/courier-0.47.tar.bz2
Suma MD5 del paquete: 639bb3b236914e3b86f287ce3f55264e
Tamaño del paquete: 4.3 MB
Estimación del espacio necesario en disco: 102 MB
Tiempo estimado de construcción: 2.62 SBU
El paquete de Courier debe extraerse como usuario sin privilegios o el guión configure fallará.
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, como usuario root:
groupadd courier &&
useradd -c 'Courier Mail Server' -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
Courierfilter necesita el directorio /var/run/courier para almacenar todos los ficheros pid y de bloqueo de Courier. También debe existir /var/lock/subsys para el fichero maestro de bloqueo de Courier. Ejecuta los siguientes comandos para crear estos directorios:
install -d /var/run/courier -o courier -g courier -m755 &&
install -d /var/lock/subsys -o root -g root -m755
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 \
--with-paranoid-smtpext --disable-autorenamesent \
--enable-workarounds-for-imap-client-bugs --with-db=gdbm &&
make
Una vez más, vuelve al usuario root e instala Courier con los siguientes comandos:
make install &&
make install-configure
--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.
--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.
Estando aún como root, necesitarás crear los siguientes ficheros con el contenido especificado.
/etc/courier/defaultdomain
cat > /etc/courier/defaultdomain << "EOF" [yourdomain] EOF
/etc/courier/me
cat > /etc/courier/me << "EOF" [servername.yourdomain] EOF
/etc/courier/locals
cat > /etc/courier/locals << "EOF" localhost [yourdomain] EOF
/etc/courier/esmtpacceptmailfor.dir/system
cat > /etc/courier/esmtpacceptmailfor.dir/system << "EOF" localhost [yourdomain] EOF
También necestiarás editar el fichero /etc/courier/aliases/system y cambiar la siguiente entrada.
postmaster: [your administrator email]
Si quieres denegarle el acceso al envio de correo a algunos anfitriones, necesitarás editar el fichero /etc/courier/smtpaccess/default.
Si deseas hospedar correo de dominios no locales, incluidos dominios virtuales, debes añadirlos a /etc/courier/hosteddomains. Este fichero debería existir necesites o no una lista de dominios hospedados:
touch /etc/courier/hosteddomains
Una vez completados los pasos anteriores, necesitarás ejecutar los siguientes comandos:
makesmtpaccess &&
makehosteddomains &&
makealiases
Para cada usuario necesitas crear un directorio Maildir:
cd /home/[username] &&
maildirmake Maildir &&
chown [username].[username] Maildir -R
Si deseas usar SSL con Courier, deberías obtener certificados y almacenarlos en /usr/share/courier. Opcionalmente puedes crear certificados de prueba autofirmados con los siguientes comandos:
mkesmtpdcert &&
mkimapdcert &&
mkpop3dcert
Todos los ficheros de configuración de Courier residen en el directorio /etc/courier/. Para cada servicio SMTP, POP3 e IMAP tendrás un fichero de configuración estandar y un fichero de configuración SSL. Para cada servicio que desees utilizar necesitarás editar el fichero de configuración y cambiar la variable [DEMONIO]START de 'NO' a 'YES'. Por ejemplo, para usar SMTP con SSL necesitarás editar /etc/courier/esmtpd-ssl y cambiar el valor de 'ESMTPDSSLSTART' a 'YES'. Haz el mísmo cambio para cada configuración del servicio que desees utilizar con Courier.
Si deseas usare LDAP, debería crearse un fichero de configuración LDAP:
echo "LDAPALIASDSTART=YES" > /etc/courier/ldapaliasd
Similarmente, si deseas usar webmail deberias crear el fichero de configuración webmail:
echo "WEBMAILDSTART=YES" > /etc/courier/webmaild
También necesitarás copiar el fichero webmail de /usr/lib/courier/courier/webmail al directorio cgi-bin de tu servidor Apache.
cp -a /usr/lib/courier/courier/webmail/webmail /srv/www/cgi-bin
Entonces 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 de configuración con --enable-imageurl=[URL].
cp -a /usr/share/courier/sqwebmail/images /srv/www/htdocs/webmail
Si deseas usar la utilidad webadmin, necesitarás copiar el fichero webadmin de /usr/lib/courier/courier/webmail al directorio cgi-bin de tu servidor Apache.
cp -a /usr/lib/courier/courier/webmail/webadmin /srv/www/cgi-bin
También necesitarás poner la contraseña dentro del fichero /etc/courier/webadmin/password:
cat > /etc/courier/webadmin/password << "EOF" [password] EOF
Si no utilizas SSL con tu servidor Apache, necesitarás añadir /etc/courier/webadmin/unsecureok para poder utilizar las herramientas de administración basadas en web.
touch /etc/courier/webadmin/unsecureok
Si utilizas Linux-PAM en tu sistema, necesitarás crear los ficheros de configuración de PAM:
cat > /etc/pam.d/esmtp << "EOF" # Begin /etc/pam.d/esmtp auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # End /etc/pam.d/esmtp EOF cat > /etc/pam.d/pop3 << "EOF" # Begin /etc/pam.d/pop3 auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # End /etc/pam.d/pop3 EOF cat > /etc/pam.d/imap << "EOF" # Begin /etc/pam.d/imap auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # End /etc/pam.d/imap EOF cat > /etc/pam.d/webmail << "EOF" # Begin /etc/pam.d/webmail auth required pam_unix.so try_first_pass account required pam_unix.so session required pam_unix.so # End /etc/pam.d/webmail EOF
Por último, si deseas iniciar el servidor Courier en el arranque, instala el guión de arranque /etc/rc.d/init.d/courier incluido en el paquete blfs-bootscripts-20050313.
make install-courier
Estas instrucción configurarán Courier para que busque usuarios virtuales en una base de datos MySQL. Comienza haciendo los siguientes cambios en /etc/courier/authmysqlrc:
MYSQL_SERVER localhost MYSQL_USERNAME courier MYSQL_PASSWORD [your choice] MYSQL_SOCKET /var/run/mysql/mysql.sock MYSQL_PORT 3306 MYSQL_DATABASE courier_mail MYSQL_USER_TABLE users MYSQL_CLEAR_PWFIELD clear DEFAULT DOMAIN [your domain] MYSQL_QUOTA_FIELD quota
Conectate a MySQL:
mysql -p
Crea la base de datos courier_mail y establece la tabla de usuarios:
CREATE DATABASE courier_mail;
USE 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))
);
Garantizale todos los privilegios al usuario courier creado anteriormente:
GRANT ALL PRIVILEGES ON *.* TO courier@localhost \
IDENTIFIED BY '[password]' WITH GRANT OPTION;
QUIT
Crea un usuario y grupo para el cartero virtual:
groupadd -g 9000 vmailman &&
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 9000 vmailman
Crea un directorio de correo para un nuevo usuario virtual:
cd /home/vmailman &&
mkdir [virtual_user] &&
cd [virtual_user] &&
maildirmake Maildir &&
chown vmailman.vmailman Maildir -R
Ahora conectate a la base de datos MySQL como usuario courier:
mysql -u courier -p
Para añadir un usuario virtual necesitas entral al menos una versión de la contraseña, ya sea en texto claro o encriptada.
Añade el primer usuario virtual con los siguientes comandos:
USE courier_mail
INSERT INTO users VALUES (
'[virtual_users]@[domain.com],
'[encrypted password or blank]',
'[clear text password or blank]',
'[User's Name]',
9000,
9000,
'[location of Maildir]',
'[Quota in Bytes']
);
QUIT
Por ejemplo:
INSERT INTO users VALUES (
'blfsuser@linuxfromscratch.org',
'',
'password',
'BLFS User',
9000,
9000,
'/home/vmailman/blfsuser',
''
);
Elimina un mensaje de la cola de correo.
Un comando administrativo usado para controlar en mecanismo de planificación de Courier.
Envia mensajes de correo por fax.
Inicia y para todos los filtros instalados por filterctl.
Soporta alias de direcciones de correo usando un directortio LDAP.
Captura mensaje de error de otras aplicaciones Courier y las reenvía al sistema de registro.
Activa, mantiene y maneja listas de correo.
Un filtro de ejemplo escrito en Perl.
Un servidorCourier para POP3.
Lee la indentificación de usuario y contraseña POP3 y se la pasa a los módulos de autenticación.
Acepta conexiones en trantes de red y lanza otros programas Courier tras establecer cada conexión.
Lo usan las aplicaciónes para encriptar una conexión de red con SSL/TLS.
Un módulo de compatibilidad que lee intrucciones de reenvío en $HOME/.forward.
Un filtro de hilos que intenta bloquear correo basura mediante el intento de detección de copias mútiples de un mismo mensaje, que son rechazadas.
Un guión de control para courieresmtpd.
Un guión de control para courieresmtpd, pero añade envio de mensaje por el puerto 587 para el protocolo MSA.
Instala odesinstala filtros globales de correo.
El servidor Courier-IMAP.
Utilidad de ayda para el bloqueo de ficheros mailbox.
Una utilidad de autorespuesta con capacidad MIME.
Maneja listas de control de acceso.
Modifica palabras clave de mensaje de Courier-IMAP compatibles con maildir.
Crea maildirs, y carpetas maildir.
Un sustituto para el agente de entrega de correo local que incluye un lenguaje de filtrado de correo.
Muestra una lista de todos los mensajes que no se han entregado aún.
Contruye una lista de los dominios de los que se acepta correo a partir del directorio /etc/courier/esmtpacceptmailfor.dir directory.
Contruye una base de datos de alias a partir de uno o más ficheros fuente en texto plano.
Utilidad para crear ficheros GDBM o DB a partir de ficheros en texto plano.
Reconstruye la base de datos de dominios hospedados a partir del contenido de /tools/etc/courier/hosteddomains.
Crea mensajes con formato MIME a partir de uno o más ficheros.
Contruye una lista de dominios %-relayed a partir del directorio percentrelay.dir directory.
Construye ficheros de acceso del servidor ESMTP a partir del directorio /etc/courier/smtpaccess.
Construye ficheros de acceso del servidor ESMTP a partir del directorio /etc/courier/smtpaccess. Esta lista esmtp es para el protocolo MSA.
Contruye una base de datos usuario/contraseña a partir del contenido de /tools/etc/courier/userdb.
Firma, encripta o desencripta mensajes de correo en formato MIME usando GnuPG.
Crea un certificado seguro SMTP de prueba.
Crea un certificado seguro IMAP de prueba.
Crea un certificado seguro POP3 de prueba.
Guión envoltorio para couriertcpd para iniciar y detener el servicio POP3.
Guión envoltorio para couriertcpd para iniciar y detener el servicio POP3 sobre SSL.
Preañade cabeceras mbox heredadas a mensajes de correo.
Lee un mensaje de la entrada estandar, lo formatea en cierto modo y lo escribe en la salida estandar.
Utilidad para reformatear mensajes MIME.
Lee un mensaje de correo y lo entrega a su destinatario.
Envia mensajes a Courier para su procesamiento.
Lista los nombres y direcciones IP de los reenviadores de correo que reciben correo para el dominio.
Guión para manipular individualmente entradas en /tools/etc/courier/userdb.
Lee una línea de texto de la entrada estandar, la encripta y la imprime en la salida estandar.