PDF de programación - Capítulo 7 - El agente de transferencia de correo qmail

<<>>
Imágen de pdf Capítulo 7 - El agente de transferencia de correo qmail

Capítulo 7 - El agente de transferencia de correo qmailgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 12 de Enero del 2018)
254 visualizaciones desde el 12 de Enero del 2018
1,1 MB
34 paginas
Capítulo 7

El agente de transferencia de

correo qmail

Introducción a los MTA 

Características

Funcionamiento

Instalación y configuración

Webmail

Capítulo 7 El agente de transferencia de correo qmail

Capítulo 7 El agente de transferencia de correo qmail

"La resistencia de una cadena la determina el eslabón más débil".

Un sistema seguro, como el que se está configurando en este proyecto, no

puede flaquear por ningún lado. Por ello vamos a usar en él qmail como

MTA.

Su   facilidad   de   instalación   y   configuración   harán   que,   en   muy   poco

tiempo,   podamos   tener   funcionando   el   correo   de   un   gran   número   de

personas.  

Vamos a ayudar a su administración, junto a la del sistema en general,

introduciendo   las   cuentas   de   los   usuarios   en   el   directorio   OpenLDAP,

además de que se autentiquen contra él.

­207­

Integración de los servicios de autenticación en un directorio OpenLDAP

7.1 Introducción a qmail

El  correo electrónico se ha  convertido  en  una forma  de  comunicación

muy usada y a la vez muy necesaria para la empresa. Hoy en día es raro

encontrar   una   organización   que   no   ofrezca   una   cuenta   de   correo   a   sus

empleados. 

Para gestionar este correo existe un software específico conocido como

MTA   (agente   de   transferencia   de   correo).   Entre   los   MTA   más   conocidos

figuran Sendmail, Postfix o qmail.

Hasta hace relativamente pocos años Sendmail era el MTA de Unix, sin

discusión. Fue el primero y por ello se había usado desde siempre. Debido a

que fue creado en una época en la que la memoria era un bien escaso, no

dispone de una fácil configuración y gestión. 

Al principio (y cuando hablamos de principio nos referimos a la década

de los  80)  primaba el  espacio.  No  importaba   demasiado  la  claridad  ni  la

facilidad   de   la   sintaxis.   Sendmail   debía   funcionar   con   las   reducidas

prestaciones   de   las   máquinas   de   entonces.   Además   tantos   años   en

máquinas   en   producción   han   hecho   que   Sendmail   esté   muy   parcheado.

Cada agujero de seguridad que surgía se solucionaba mediante un parche.

Cuando   Sendmail   fue   diseñado,   Internet   era   un   lugar   mucho   menos

hostil de lo que es ahora. No existía la necesidad de una seguridad alta. No

se tuvo en cuenta, por tanto, en el diseño ni en la codificación. 

Como afirman muchos autores,  no se  puede conseguir  una seguridad

verdadera   sino   se   rediseña   el   sistema,   algo   que   no   se   ha   hecho   (y

probablemente no se haga) con Sendmail.

­208­

Capítulo 7 El agente de transferencia de correo qmail

Como   alternativa   a   Sendmail   surgen   distintos   MTAs:   Postfix,   exim   o

qmail. La oferta es variada. Cada cual tiene sus pros y sus contras, aunque

en   uno   de   los   aspectos   más   importantes,   la   seguridad,   hay   uno   que

sobresale. Ningún fallo, en cuanto a seguridad se refiere, desde 1998 (fecha

de creación). Como  anécdota podemos señalar que el creador de qmail, Dan

Bernstein, ofreció en su día una recompensa para todo aquel que encontrara

un agujero de seguridad. El premio sigue estando desierto.   

­209­

Integración de los servicios de autenticación en un directorio OpenLDAP

7.2 Características de qmail

qmail como agente de transferencia de correo que es, proporciona entrega

y retransmisión de correo local y remoto. Podemos enumerar algunas de sus

principales características. 

7.2.1 Características principales

– Rendimiento. qmail puede realizar entrega de correo en paralelo. De hecho

es capaz de entregar hasta 20 mensajes simultáneamente. Este es además

su valor por defecto.

– Fiabilidad.   Una   vez   que  qmail  acepta  un  mensaje   garantiza  que   no   se

perderá.   Además   soporta   un   nuevo   formato   de   buzón   de   correo   que

funciona bien incluso sobre NFS sin bloqueo.

– Simplicidad.   qmail   es   más   pequeño   que   cualquier   otro   MTA   de

características   equivalentes.   Es   fácil   y   rápido   de   instalar   ya   que   no

necesita que se tomen muchas decisiones al principio.

– Seguridad.  Ya hemos hablado de ella en qmail. Es un factor primordial y

como   tal   se   le   confiere   tanta   importancia   como   merece.   Se   consigue

básicamente mediante una separación muy clara entre dirección, ficheros

y programas. Se minimiza el código que debe ejecutarse bajo permiso de

root y se controla minuciosamente.

7.2.2 Otras características

– Construcción   de   mensajes.   Se   adecua   a   las   RFC   822   y   RFC   1123.

Compatibilidad por tanto con los agentes de usuario actuales.

­210­

Capítulo 7 El agente de transferencia de correo qmail

– Soporte completo para grupos de direcciones. Presenta comandos de tipo

Sendmail   que   permite   mantener   la   compatibilidad   con   los   agentes   de

usuario actuales.

– Servicio   SMTP   y   POP3     de   acuerdo   con   la   RFC   821   y   RFC   1939,

respectivamente.

– Gestión de cola

– Enrutamiento por dominio

– Entrega locales

– Retransmisión y listas de correo

­211­

Integración de los servicios de autenticación en un directorio OpenLDAP

7.3 Funcionamiento y uso de qmail

No hace falta entender cómo funciona qmail para instalarlo o usarlo. Sin

embargo, el conocimiento de su funcionamiento va a permitirnos llegar a

dominar qmail y poder sacarle el mayor partido.

Afortunadamente, el diseño simple y modular de qmail va a convertir en

fácil la dura tarea de comprender un sistema tan complejo como un MTA.

Una división posible de los módulos de qmail consiste en separarlos en

dos grupos. Aquellos que aceptan nuevos mensajes y los colocan en la cola,

y los que toman los mensajes de la cola y los entregan. Esto es, estamos

separando en dos partes: recepción y entrega.

La   separación   es   completa.   Cualquiera   de   estas   dos   funciones   puede

trabajar con la otra apagada. Veamos a continuación la organización a un

alto nivel conceptual de qmail.

                                              Figura 7.1 Esquema general qmail

7.3.1 Conceptos de recepción y entrega

7.3.1.1 Recepción

Los mensajes llegan a la cola por dos rutas principalmente. 

­ Inyección local: usando qmail­inject o sendmail

­212­

­ Inyección desde red: usando qmail­smtpd, qmail­qmqpd o qmail­qmtpd.

Capítulo 7 El agente de transferencia de correo qmail

Ambas rutas usan el módulo qmail­queue para inyectar los mensajes en

la cola propiamente dicha. La siguiente figura muestra la organización de la

función de recepción.

                                        Figura 7.2 Recepción de mensajes.

7.3.1.2 Entrega

Los mensajes se entregan desde la cola siguiendo dos rutas:

­ entrega local: usando para ello qmail­local, y,

­ entrega remota: usando qmail­remote.

Ambas entregas se gestionan por qmail­send a través de qmail­lspawn y

qmail­rspawn, respectivamente.

Figura 7.3 Entrega de mensajes

­213­

Integración de los servicios de autenticación en un directorio OpenLDAP

7.3.2 Módulos

7.3.2.1 Módulos de recepción
Sendmail

El comando Sendmail prácticamente no es más que un intermediario de

qmail­inject. Acepta muchos de los argumentos y opciones de Sendmail, los

traduce a los equivalentes en qmail­inject, ignora las opciones irrelevantes y

finalmente ejecuta qmail­inject.

qmail-inject

La principal tarea de qmail­inject es la de asegurar que las cabeceras de

los mensajes cumplen con la RFC 2822, antes de pasar a dichos mensajes

hacia qmail­queue. Parte de su trabajo comprende:

­ Comprobar direcciones. Para todas las direcciones que aparecen en los

campos From, To, Cc y demás, qmail­inject asegura que están en formato

usuario@FQDN.

– Si   una   dirección   consiste   en   sólo   la   parte   de   usuario,   añade
@defaulthost.   Con   defaulthost   nos   referimos   al   fichero   del   mismo

nombre que se encuentra en /var/qmail/control.

– Si una dirección consiste en sólo usuario@"nombre de máquina", añade
a esta cadena .defaultdomain. Defaultdomain es otro de los ficheros de

configuración que se encuentran en el directorio control.

– Si una dirección aparece como usuario@"nombre de máquina"+, qmail­
inject reemplazaría el signo + por .plusdomain, otro de los ficheros del

directorio control.

­ comprobar destinatarios. Si no se especifican destinatarios por línea de

comandos, qmail­inject los busca en los campos To, Cc, Bcc, Apparently­To,

Resent­To, Resent­Cc y Resent­Bcc. Por supuesto, todos los cambos Bcc y

Resent­Bcc se eliminan de las cabeceras.

­214­

Capítulo 7 El agente de transferencia de correo qmail

El cumplimiento de la RFC 2822 requiere que todos los mensajes tengan

un   campo   To   o   Cc.   qmail­inject   añade,   si   es   necesario,   un   campo   que

contiene   lo   siguiente:   Cc:   recipient   list   not   shown:;   que   es   un   grupo   de

direcciones vacío.

­ campos requeridos. qmail­inject añade los siguientes campos, sino los

encuentra.

–  From: nombre del usuario que llamó a qmail­inject.
–  Date: hora actual GMT.
–  Message­id. En realidad este campo no debe aparecer necesariamente,
pero es muy útil para seguirle el rastro a los mensajes. El valor de este

campo es <timestamp.pid.qmail@FQDN>. El FQDN se suele construir en

este   caso   mediante   los   archivos   de   configuración   defaulthost   y

defaultdomain. 

­ otras características. qmail­inject también realiza lo siguiente:

–   Las  direcciones  que  aparecen  listadas en  los  campos de  la  cabecera
deben estar separadas por comas. Si qmail­inject encuentra que están

separadas por espacios, inserta automáticamente comas entre ellas. Por

ejemplo To: jose esperanza, será reescrito como To: jose, esperanza.

–   Los campos Return­path y Content­length se eliminan.

qmail-smtpd

Los   mensajes   recibidos   remotamente   llegan   a   través   de   tres   posibles

módulos
  • Links de descarga
http://lwp-l.com/pdf8291

Comentarios de: Capítulo 7 - El agente de transferencia de correo qmail (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad