Sistema de Correo POSTFIX - ldc.usb.vedaniela/postfix.pdf · como por ejemplo alpine, thunderbird,...

20
Universidad Sim´ on Bol´ ıvar Laboratorio F Laboratorio Docente de Computaci´ on Sistema de Correo POSTFIX Daniela A. Torres Far´ ıa [email protected] Valle de Sartenejas, 8 de marzo de 2010 1

Transcript of Sistema de Correo POSTFIX - ldc.usb.vedaniela/postfix.pdf · como por ejemplo alpine, thunderbird,...

Universidad Simon BolıvarLaboratorio F

Laboratorio Docente de Computacion

Sistema de Correo

POSTFIX

Daniela A. Torres Farıa

[email protected]

Valle de Sartenejas, 8 de marzo de 2010

1

Indice

1. Introduccion 4

2. Elementos del Sistema de Correo 4

2.1. MUA, Agente Cliente de Correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2. Agentes de Transporte, SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3. Agentes de Entrega (Delivery Agents) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.1. Procmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.2. Maildrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4. Almacenamiento de Correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4.1. Mailbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.4.2. Maildir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.5. Agentes de Acceso (Access Agents) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.5.1. IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5.2. POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5.3. IMAP vs POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6. Agente de Presentacion de Correo (Mail Submission Agent, MSA) . . . . . . . . . . . . 9

2.6.1. Ventajas de tener MTA y MSA por separado . . . . . . . . . . . . . . . . . . . . 9

3. Anatomia de un Mensaje de Correo 10

4. Direccionamiento de Correo 11

5. Filosofıa del correo 11

5.1. Usando home de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6. Aliases 12

6.0.1. Listas de Correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7. SSL 12

8. Open Relay 13

9. POSTFIX 13

9.1. Comandos Basicos de POSTFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10.Instalacion y Configuracion de un Servidor POSTFIX en Debian 14

10.1. Modos de Ejecucion del Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10.1.1. Internet site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

10.1.2. Internet site with smarthost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

10.2. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2

10.2.1. Listas de Bloqueo Basadas en DNS . . . . . . . . . . . . . . . . . . . . . . . . . . 15

10.2.2. Control de Envıos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

10.2.3. ACL, Access Control Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

10.2.4. pop-before-smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

10.2.5. Cifrado del envıo de mensajes mediante TLS . . . . . . . . . . . . . . . . . . . . 17

10.3. Servidores Virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

10.4. Greylisting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

11.Dovecot 19

11.1. Dovecot con Postfix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3

1. Introduccion

Un servidor de correo es una aplicacion informatica cuya funcion es parecida al Correo postalsolo que en este caso los correos (otras veces llamados mensajes) que circulan, lo hacen a traves denuestras Redes de transmision de datos y a diferencia del correo postal, por este medio solo se puedenenviar adjuntos de ficheros de cualquier extension y no bultos o paquetes al viajar la informacion enformato electronico. Los servidores de correo electronico nos rodean constantemente en Internet; raraes la vez que conectamos y no consultamos nuestro buzon de correo electronico para ver los mensajesrecibidos o para enviar mensajes a otros usuarios de la red.

2. Elementos del Sistema de Correo

Todos los sistemas de correo consisten de cuatro componentes principales:

1. Un agente cliente de correo (MUA por mail user agent) que permite al usuario leer y componercorreos.

2. Un agente de transporte de correo (MTA) que direcciona los correos entre las maquinas.

3. Un agente de entrega de correo que coloca el mensaje en el buzon correspondiente.

4. Un agente de acceso opcional que conecta el MUA con el buzon.

2.1. MUA, Agente Cliente de Correo

Los usuarios de correo electronico utilizan el MUA para leer y componer correo, los cuales,generalmente consisten solo de texto, pero, se ha creado un nuevo estandar MIME el cual es usadopara agregar datos adjuntos al correo.

Una de las tareas de los MUA es asegurarse de que cualquier texto incluido en el contenido delmensaje que puede ser mal interpretado por el sistema de correo, sea protegido.

/bin/mail fue el MUA inicial, pero ahora muchas alternativas estan disponibles para ser usadas,como por ejemplo alpine, thunderbird, outlook, etc.

2.2. Agentes de Transporte, SMTP

Un agente de transporte debe aceptar el correo que proviene de un MUA, comprender la di-reccion de llegada y de alguna manera hacer que el correo llegue al usuario correcto. Los agentes detransporte hablan o funcionan bajo el protocolo Simple Mail Transport Protocol (SMTP). Muchosagentes de transporte estan disponibles para UNIX:

Postfix

smail

zmailer

sendmail

4

2.3. Agentes de Entrega (Delivery Agents)

El mail delivery agent es un software que acepta correo entrante de un Agente de Transportey los distribuye a los buzones de los destinatarios en el caso de que la cuenta de destino esta en lamaquina local, o lo reenvıa a un servidor SMTP, si los destinatarios estan en maquinas remotas. Losagentes de entrega mas usados en Unix son procmail y maildrop, dentro del LDC se utiliza procmail.

2.3.1. Procmail

Es un sencillo programa que nos permite procesar correos, haciendo con ellos lo que queramos, deuna forma sencilla pero muy potente. Podemos separar los correos segun determinados filtros, eliminarcorreos spam, re-enviar a otras cuentas, activar antivirus de correos, responder automaticamente,ejecutar programas etc. Procmail es configurable por cada usuario de manera personalizada editandoel fichero .procmailrc ubicado en la carpeta home de cada usuario, este fichero se edita mediante el usode expresiones regulares con el objetivo de filtrar o redireccionar correo a carpetas especificas.

2.3.2. Maildrop

Es el filtro de correo electronico o agente de entrega de correo electronico que es utilizadopor el servidor de correo Courier. Usted no necesita descargar buzon si ya tiene instalado Courier.Un independiente de construir el filtro de correo buzon que se puede utilizar con otros servidores decorreo esta disponible. Buzon esta escrito en C + +, y es significativamente mayor que procmail.Sin embargo, utiliza recursos de manera mas eficiente. A diferencia de procmail, buzon no leera unmensaje de correo electronico de gran tamano en la memoria. Mensajes de gran tamano se guardanen un archivo temporal, y se filtran desde el archivo temporal. Para establecer las reglas de filtradoes necesario configurar el archivo /etc/maildroprc el cual es de uso general para todos los usuarios decorreo electronico.

2.4. Almacenamiento de Correo

Existen dos tipos de Almacenamiento de Correo en Unix, Mailbox y Maildir.

2.4.1. Mailbox

Esta es la forma tradicional de almacenar mensajes de correo electronico en el mundo Unix. Eneste formato, un archivo de texto normal sirve como archivo de buzon del usuario de correo electronico.

5

Pasos para Recibir y almacenar un Correo Electronico

1. Bloquear el buzon de Mensaje (Archivo)

2. Anexar el encabezado (por lo general ”FROM [direccion de correo electronico del remitente][fecha y hora de recepcion]”) y el correo en el archivo de buzon de correo.

3. Desbloquear el buzon de Mensajes.

Pasos para recuperar un Correo electronico

1. Bloquear el buzon de Mensaje (Archivo)

2. Localizar y leer el correo.

3. Actualizar el indicador de estado de correo electronico.

4. Desbloquear el buzon de correo.

Pasos para Eliminar un Mensaje

1. Bloqueo del buzon de correo.

2. Mover el contenido del buzon de correo, a partir de la posicion a la derecha despues de queel correo electronico para suprimir hasta el final del buzon, en la posicion de los correos quedesea borrar.

3. Reducir el tamano del archivo de buzon por el tamano del mensaje de correo eliminado.

4. Desbloquear el buzon de correo.

Ventajas

1. El formato es universalmente compatible.

2. Anadiendo un nuevo correo en el archivo de buzon de correo es rapido.

3. Busqueda de texto dentro de un archivo unico buzon de correo es rapido.

Desventajas

1. Tiene problemas de bloqueo de archivos.

2. Tiene problemas cuando se utiliza con sistemas de archivos de red.

3. El formato es propenso a la corrupcion.

2.4.2. Maildir

Esta es una nueva forma de almacenar los mensajes de correo electronico. En este formato,normalmente un directorio llamado Maildir se crea para cada usuario de correo electronico. Dentro deeste directorio son tres directorios llamados new, cur y tmp.

6

Pasos para Recibir y almacenar un Correo Electronico

1. Crear un archivo unico en el directorio tmp.

2. Escriba el correo en el archivo recien creado.

3. Mover el correo escrito completamente en el nuevo directorio.

Pasos para recuperar un Correo electronico

1. Localizar y leer el correo.

2. Mover el correo de nuevo en el directorio act y anadir el indicador de estado de correoelectronico en el nombre del archivo

Pasos para Eliminar un Mensaje

1. Elimina el archivo que contiene el correo electronico.

Ventajas

1. Localizacion, recuperacion y eliminacion de un correo electronico especıfico es rapido.

2. Mınimo para el bloqueo de archivos no necesarios.

3. Puede ser utilizado en el sistema de archivos de red.

4. Inmunes a la corrupcion de buzon (suponiendo que el hardware no fallara).

Desventajas

1. Algunos sistemas de ficheros no puede manejar eficientemente un gran numero de archivospequenos.

2. Texto de la busqueda, que exige que todos los archivos de correo electronico que se abrira eslento.

2.5. Agentes de Acceso (Access Agents)

Son los encargados de permitir al usuario recuperar y leer sus correos que llegan a un servidorUnix, descargandolos con Internet. Los Agentes de Acceso mas Conocinos son IMAP (Internet MessageAccess Protocol) y POP (Post Office Protocol).

7

2.5.1. IMAP

Internet Message Access Protocol, o su acronimo IMAP, es un protocolo de red de accesoa mensajes electronicos almacenados en un servidor. Mediante IMAP se puede tener acceso al correoelectronico desde cualquier equipo que tenga una conexion a Internet. La ventaja de utilizar un servidorde correo IMAP es, que los usuarios pueden consultar su correo desde varios ordenadores y siempre venlos mismos mensajes. Esto se debe, a que los mensajes permanecen en el servidor hasta que el usuarioelige descargarlos a su unidad local. La mayoria de los sistemas de correo web estan basados en IMAP.Esto permite a todo el mundo tener acceso tanto a los mensajes enviados como a los recibidos, sinimportar que equipo se esta utilizando para comprobar las diferentes bandejas del correo electronico.Ademas de esto es posible especificar en IMAP carpetas del lado servidor (.subscriptions)

2.5.2. POP

En informatica se utiliza el Post Office Protocol (POP3, Protocolo de la oficina de correo) enclientes locales de correo para obtener los mensajes de correo electronico almacenados en un servidorremoto. Es un protocolo de nivel de aplicacion en el Modelo OSI. POP3 esta disenado para recibircorreo, no para enviarlo; le permite a los usuarios con conexiones intermitentes o muy lentas (talescomo las conexiones por modem), descargar su correo electronico mientras tienen conexion y revisarloposteriormente incluso estando desconectados. Cabe mencionar que la mayorıa de los clientes de correoincluyen la opcion de dejar los mensajes en el servidor, de manera tal que, un cliente que utilice POP3se conecta, obtiene todos los mensajes, los almacena en la computadora del usuario como mensajesnuevos, los elimina del servidor y finalmente se desconecta. En contraste, el protocolo IMAP permitelos modos de operacion conectado y desconectado.

2.5.3. IMAP vs POP

Algunas de las caracterısticas importantes que diferencian a IMAP y POP3 son:

Respaldo para los modos de operacion en lınea y fuera de lınea

Al utilizar POP3, los clientes se conectan brevemente al servidor de correo, solamente el tiempoque les tome descargar los nuevos mensajes. Al utilizar IMAP, los clientes permanecen conectadosel tiempo que su interfaz permanezca activa y descargan los mensajes bajo demanda. Esta manerade trabajar de IMAP puede dar tiempos de respuesta mas rapidos para usuarios que tienen unagran cantidad de mensajes o mensajes grandes.

Respaldo para la conexion de multiples clientes simultaneos a un mismo destinatario

El protocolo POP3 supone que el cliente conectado es el unico dueno de una cuenta de correo.En contraste, el protocolo IMAP4 permite accesos simultaneos a multiples clientes y proporcionaciertos mecanismos a los clientes para que se detecten los cambios hechos a un mailbox por otrocliente concurrentemente conectado.

Respaldo para acceso a partes MIME de los mensajes y obtencion parcial

Casi todo el correo electronico de Internet es transmitido en formato MIME. El protocolo IMAP4le permite a los clientes obtener separadamente cualquier parte MIME individual, ası comoobtener porciones de las partes individuales o los mensajes completos. Es mas seguro.

Respaldo para que la informacion de estado del mensaje se mantenga en el servidor

A traves de la utilizacion de senales definidas en el protocolo IMAP4 de los clientes, se puedevigilar el estado del mensaje, por ejemplo, si el mensaje ha sido o no leıdo, respondido o eliminado.Estas senales se almacenan en el servidor, de manera que varios clientes conectados al mismocorreo en diferente tiempo pueden detectar los cambios hechos por otros clientes.

8

Respaldo para accesos multiples a los buzones de correo en el servidor

Los clientes de IMAP4 pueden crear, renombrar o eliminar correo (por lo general presentadocomo carpetas al usuario) del servidor, y mover mensajes entre cuentas de correo. El soporte paramultiples buzones de correo tambien le permite al servidor proporcionar acceso a los directoriospublicos y compartidos.

Respaldo para busquedas de parte del servidor

IMAP4 proporciona un mecanismo para que los clientes pidan al servidor que busque mensajesde acuerdo a una cierta variedad de criterios. Este mecanismo evita que los clientes descarguentodos los mensajes de su buzon de correo, agilizando, de esta manera, las busquedas.

Respaldo para un mecanismo de extension definido

Como reflejo de la experiencia en versiones anteriores de los protocolos de Internet, IMAP de-fine un mecanismo explıcito mediante el cual puede ser extendido. Se han propuesto muchasextensiones de IMAP4 y son de uso comun.

Un ejemplo de extension es el IMAP IDLE, que sirve para que el servidor avise al cliente cuandoha llegado un nuevo mensaje de correo y estos se sincronicen. Sin esta extension, para realizarla misma tarea, el cliente deberıa contactar periodicamente al servidor para ver si hay mensajesnuevos.

2.6. Agente de Presentacion de Correo (Mail Submission Agent, MSA)

Un agente de la presentacion de correo (MSA) es un programa de ordenador o agente de softwareque recibe mensajes de correo electronico de un agente de usuario de correo (MUA) y coopera conun agente de transferencia de correo (MTA) para la entrega del correo. Se utiliza una variante de laSimple Mail Transfer Protocol (SMTP).

Muchos MTA funcionan como MSA, ası, pero tambien hay programas que estan disenados espe-cialmente como acuerdos de servicios administrativos sin funcionalidad MTA completo. Historicamenteen el correo de Internet, tanto MTA (recepcion del correo destinado a nivel local de otros dominios) yMSA (recepcion del correo que envıa a los usuarios locales) las funciones eran desempenadas por losATM con el mismo protocolo (SMTP).

2.6.1. Ventajas de tener MTA y MSA por separado

1. Un MSA, ya que esta interactuando directamente con la MUA del autor, puede corregir pequenoserrores en el formato de un mensaje (como una fecha que falta, Message-ID, a los campos, o unadireccion con un nombre de dominio que falta) y / o inmediatamente un informe de error alautor para que pueda ser corregido antes de que sea enviado a cualquiera de los beneficiarios. UnMTA acepta un mensaje de otro sitio no puede hacer de forma fiable los tipos de correcciones, ycualquier error de los informes generados por ese MTA llegar al autor (o nada), solo despues deque ya ha enviado el mensaje.

2. Hace mas facil para un MTA para denegar la retransmision, que consiste en rechazar cualquiermensaje que no esta dirigida a un destinatario en un dominio que se sirve localmente. Por elcontrario, un MSA generalmente, debe aceptar el correo para cualquier destinatario en la Internet,aunque solo acepta correo de esos autores que estan autorizados a utilizar ese MSA y que hanestablecido su identidad a la MSA a traves de la autenticacion. En momentos en que tanto lapresentacion y aceptacion de correo electronico entrante se realiza normalmente con el mismoprotocolo y el mismo servidor, la capacidad de enviar correo electronico a destinos arbitrariossin autenticacion le ha permitido a los spammers utilizan MTA como medio de difusion de spam

9

(desde un unico mensaje de transaccion puede solicitar que un rele de MTA un mensaje a ungran numero de beneficiarios), y tambien hizo mas difıcil de rastrear un mensaje a su origen.

3. los acuerdos de servicios administrativos y los MTA pueden tener diferentes polıticas de filtradode spam. La mayorıa de los MSA requieren de autenticacion en la forma de un nombre de usuarioy contrasena proporcionada por el autor. Cualquier mensaje recibido por tal MSA, por lo tantoatribuirse a un autor que tiene una relacion directa con la MSA, y que pueden ser responsabi-lizados por sus acciones. Esto permite a la MSA o no tiene el filtro de spam o tiene un filtradode spam mas permisivo que un MTA que existe con el proposito de aceptar el correo entrante deotros dominios. Es difıcil establecer la confianza en el correo enviado entre los dominios arbitra-rios, porque en general no hay relacion directa entre esos dominios a traves del cual, la confianzao incluso de identidad, puede ser establecida. En ausencia de esa confianza, un MTA en generaldeben basarse en metodos heurısticos y de terceros los servicios de reputacion partido distinguirel spam del trafico legıtimo, y ambos mecanismos tienen un historial de ser propenso a errores.

3. Anatomia de un Mensaje de Correo

Un mensaje de correo tiene dos partes que deben ser comprendidas antes de explicar comofunciona POSTFIX.

La Cabecera: Son una coleccion de propiedades/valores que contienen una variedad de informacionacerca del mensaje, como lo puede ser la fecha y la hora a la cual se envio el mensaje y el MTA porel cual el mensaje paso. Cada cabecera consta de un nombre, o identificador, y a continuacion,separado de este por el caracter ’dos puntos’ (:), su valor. Si una lınea de la parte de cabeceras(esto es, antes de la primera lınea vacıa, que indica el fin de las mismas) comienza por espacios,se considera que es continuacion de la lınea anterior. Las principales cabeceras que todo mensajedebe llevar son:

From: Remitente del mensaje

To: Destinatario

Subject: Asunto (breve descripcion, tıpicamente de una lınea o menos)

Date: Fecha en que se envio

Hay otras que aparecen a veces:

Cc: Otro/s destinatario/s, ademas de quien figura en el ’To:’

Reply-To: A que direccion debe ir la respuesta del mensaje (si la hay). Solo aparece en casode que el remitente no desee que se use para eso la direccion que figura en ’From:’

Return-Path: El remitente ’del sobre’ del mensaje

Es importante tener en cuenta que la mayorıa de las cabeceras (entre las que estan todas lasimportantes), las pone el programa que envıa el mensaje, a instancias de la persona que lo utiliza.Pero cuando se trata de mensajes de correo comercial, abusivos o incluso que intentan estafas,no podemos fiarnos de ninguna de esas cabeceras.

El contenido del mensaje: Como hemos dicho, la primera lınea en blanco del mensaje indica elfin de las cabeceras y el inicio del cuerpo del mensaje. En los primeros tiempos del correo-e, el contenido consistıa en un texto, mas o menos breve. No se permitıa nada que no fueratexto, de forma que cuando se necesitaba enviar un programa, un fichero PDF o algun otrotipo de fichero binario, era necesario utilizar algun programa que lo ’codificara’ en caracteres

10

textuales (imprimibles). El destinatario debıa usar el mismo programa para ‘decodificarlo’ yextraer ası el fichero original. El programa mas utilizado en esta primera epoca (aun hay quienlo usa) fue uuencode/uudecode.

4. Direccionamiento de Correo

El direccionamiento del correo de manera local es bastante simple porq el nombre de usuarioes un idenfiticador unico, pero, cuando las direcciones no tienen una cuenta en la maquina local eldireccionamiento y entrega del correo se pone un poco mas complicada.

Existen dos tipos de direcciones de correo:

Basadas en la ruta (Relativas): Requieren que el emisor del correo conozca las maquinas interme-dias por las que va a pasar el mensaje hasta llegar a su destino.

Basadas en la ubicacion (Absolutas): Simplemente se espeficica el destino final.

Por lo general la especificacion de una direccion de correo es [email protected]. donde el @separa el nombre de usuario del host y el correo es enviado al buzon del correo de user en la maquinahost.domain.

5. Filosofıa del correo

Los servidores de correo tienen tres funciones basicas:

1. Aceptar correo saliente de los MUA e inyectarlos en el sistema de correo.

2. Recibir correo entrante desde afuera.

3. Entregar correo a usuarios finales usando IMAP o POP.

Funcionamiento General

11

5.1. Usando home de correo

Es conveniente para los usuarios recibir y mantener su correo en una sola maquina, incluso siquieren tener acceso desde diferentes sistemas. Los home de correo pueden ser forzados por medio delarchivo de aliases o usando LDAP. El acceso a los correos de cada usuario se puede dar por medio deIMAP o POP.

6. Aliases

Los aliases permiten redirecionar el correo bien sea por el administrador del sistema o porusuarios individuales. Se pueden crear listas de correo, hacer forward de correos entre maquinas ypermitir que los usuarios puedan ser referenciados por mas de un nombre. Si se quiere usar el conceptode home de correo es recomendale que se guarden los aliases en un servidor LDAP para que el servidorde correo ası como utiliza el DNS utilice el LDAP para saber a que buzon mandar el correo.

El mecanismo tradicional de aliases indica que se pueden almacenar los aliases en tres lugaresdistintos:

En el archivo de configuracion del MUA

En el archivo de aliases de todo el sistema /etc/mail/aliases el cual debe ser editado por eladministrador del sistema.

En el archivo /.forward del usuario receptor.

El archivo /etc/mail/aliases siempre debe tener un alias llamado postmaster que redireccionacorreo a quien sea que mantenga el sistema, en el caso del ldc es postmaster: root. Ademas de esto losarchivos de aliases permiten tener includes o hacer referencia a otros archivos que contengan aliasescomo por ejemplo en el caso del ldc el archivo principal de aliases hace referencia a otros.

6.0.1. Listas de Correo

Las listas de correo son una gran utilidad y permiten mandar un correo con un nombre sencilloy facil de recordar a un grupo de usuarios del sistema. Un ejemplo practico dentro del LDC serıan laslistas de correo, maquinas, backups, 3h,4h, etc. Son muy faciles de crear con postfix, ya que solo esnecesario colocar un alias en el archivo de aliases /etc/aliases, por ejemplo:

maquinas: :include:/etc/postfix/aliases.d/maquinas

Donde el archivo maquinas contiene las direcciones de correos u usuarios a los cuales referenciala lista.

7. SSL

El protocolo SSL permite la autenticacion de servidores, la codificacion de datos y la integridadde los mensajes. Con SSL tanto en el cliente como en el servidor, sus comunicaciones en Internetseran transmitidas en formato codificado. De esta manera, puede confiar en que la informacion queenvıe llegara de manera privada y no adulterada al servidor que usted especifique. Los servidoresseguros suministran la autenticacion del servidor empleando certificados digitales firmados emitidospor organizaciones llamadas .Autoridades del certificado”. Un certificado digital verifica la conexionentre la clave de un servidor publico y la identificacion del servidor. Las verificaciones criptograficas,mediante firmas digitales, garantizan que la informacion dentro del certificado sea de confianza. Esto

12

se implementa mas que todo en el caso de tener un servicio WebMail implantado dentro de la red quepermita a los usuarios revisar sus correos via WEB, logrando asi que la comunicacion Cliente/Servidorse de de manera encriptada. SSL es util tmb para permitir al usuario descargar sus correos medianteIMAP o POP.

El protocolo SSL fue reemplazado por el protocolo TLS.

8. Open Relay

Un relay de correo abierto es un servidor SMTP configurado de tal manera que permite quecualquier usuario de Internet para enviar e-mail a traves de el, no solo los envıos a, o procedentes deusuarios conocidos.Esta era ser la configuracion por defecto en muchos servidores de correo y, de hecho,fue la forma en que Internet fue creado inicialmente, pero retransmisiones de correo abiertas se hanconvertido en impopular debido a su explotacion por parte de los spammers y los gusanos. Muchos secerraron o fueron colocados en listas negras de otros servidores.

9. POSTFIX

Es uno de los mas populares servidores de correo electronico despues de Sendmail. Se beneficiade la mayor parte de las caracterısticas de Sendmail, pero es mucho mas facil de instalar y mantener.En caso de Sendmail utiliza archivos de configuracion m4, Postfix utiliza la clave de los archivos deconfiguracion familiar key=valor. Su archivo de configuracion se encuentra en /etc/main.cf, es bastantepractico, flexible, facil de usar y facil de instalar.

13

9.1. Comandos Basicos de POSTFIX

Existen varios comandos que nos pueden ser utiles mientras usemos Postfix. Una breve listaserıa

postfix stop. Este comando para el servidor.

postfix start. Este comando arranca el servidor.

postfix reload. Este comando hace que el servidor relea la configuracion sin parar el servicio.

mailq. Para ver la cola de mensajes.

postfix flush. Fuerza el envıo de mensajes de la cola de espera.

postmap. Este comando sirve para construir los ficheros auxiliares de Postfix.

postconf. Muestra toda la configuracion de Postfix.

newaliases. Este comando reconstruye la base de datos de alias.

10. Instalacion y Configuracion de un Servidor POSTFIX enDebian

En primer lugar hay que tener en cuenta los paquetes a instalar:

postfix. Este es el paquete principal de Postfix. (*)

postfix-dev. Entorno de desarrollo.

postfix-doc. Documentacion. (*)

postfix-ldap. Soporte LDAP.

postfix-mysql. Soporte MySQL.

postfix-pcre. Soporte de expresiones regulares. (*)

postfix-snap-*. Versiones snapshot. Pueden ser inestables.

postfix-tls. Soporte TLS y SASL (SMTP autentificado).

Los paquetes con (*) son aquelos que son indispensables para poder realizar la instalacioncorrecta del servidor Postfix.

Para realizar una buena configuracion de un servidor de correo Postfix es necesario tomar encuenta las diferentes modos de configuracion que existen para luego poder adaptar el servidor segunconvenga.

10.1. Modos de Ejecucion del Servidor

Existen 2 modos de ejecucion, por ası decirlo. El modo internet site y el modo internet site withsmarthost

14

10.1.1. Internet site

El modo internet site se caracteriza porque el propio servidor se encarga de repartir los men-sajes a sus destinatarios directamente, sin pasar por otro servidor predefinido. Para usar este modo,en el fichero de configuracion /etc/postfix/main.cf NO debe estar definida la opcion relayhost Estaconfiguracion es util para ordenadores individuales que no estan en una red local o tienen conexionpermanente a Internet (como ADSL, cable, etc)

relayhost =

10.1.2. Internet site with smarthost

El modo internet site with smarthost se caracteriza porque el servidor no envıa los mensajesdirectamente a sus destinatarios, sino que los envia a otro servidor de correo, y aquel ya se encargara deenviarlo. Para usar este modo, hay que definir la opcion relayhost y ponerle como argumento la direccionIP o el nombre de host del servidor SMTP que queramos

relayhost = smtp.mi-red-local.com

Esta configuracion se suele dar en redes locales que ya tienen un servidor SMTP o en conexionesesporadicas a Internet con modem, por ejemplo (el servidor definido serıa el de tu proveedor).

10.2. Seguridad

Es necesario tener una buena configuracion de seguridad para evitar que personas indeseadasenvıen correo spam por medio de nuestro servidor.

10.2.1. Listas de Bloqueo Basadas en DNS

Las listas de bloqueo son unas listas de IP de servidores que supuestamente envian spam. Entrelas listas mas usadas se encuentran las RBL de mail-abuse.org o las SBL de spamhaus.org. Puede verun listado completo de listas de bloqueo en http://www.declude.com/JunkMail/Support/ip4r.htm.Al configurar Postfix para que use estas listas significa que cada vez que llegue un correo a nuestroservidor, Postfix comprobara que la IP del servidor que nos envia el mensaje no se encuentra en esaslistas. Una configuracion tıpica en el main.cf serıa

smtpd_client_restrictions =permit_mynetworksreject_non_fqdn_recipienthash:/etc/postfix/accessreject_rbl_client sbl.spamhaus.orgreject_rbl_client relays.ordb.orgreject_rbl_client opm.blitzed.orgreject_unauth_destination

Listas RTBL significa Real Time Blackhole List.

10.2.2. Control de Envıos

El control de envios significa que se pueden definir que direcciones de correo pueden enviarcorreo a traves de nuestro servidor, y que direcciones de correo no pueden enviar correo a nuestroservidor.

15

Por host o Redes

Mediante la directiva mynetworks definimos que redes o hosts pueden enviar correo a traves denuestro Postfix. Un ejemplo serıa:

mynetworks = 127.0.0.0/8, 192.168.2.0/24, 172.16.3.4/32

Con esta configuracion estamos definiendo:

La red 127.0.0.0 puede enviar. Esta red siempre sera nuestra propia maquina (localhost).

Los 254 hosts de la red 192.168.2.0 pueden usar nuestro servidor.

Solo el host 172.16.3.4 puede usar nuestro servidor, y ninguno mas de la red 172.16.3.0. Porejemplo, el 172.16.3.14 no podrıa.

En el caso de nuestro servidor de correo tenemos:

mynetworks = 159.90.10.0/23, 127.0.0.0/8, 159.90.200.0/24

relay-host

Mediante el sistema relay-host definimos que direcciones de correo pueden enviar a traves denuestro servidor. Esto es util si las personas que queremos que envien correo tienen una direccione-mail estable, pero una IP que cambia muy a menudo. Una configuracion tıpica serıa esta:

smtpd_recipient_restrictions =permit_mynetworks,check_sender_access hash:/etc/postfix/usuariosreject_unauth_pipelining,reject_non_fqdn_recipient,reject_non_fqdn_sender,reject_unknown_recipient_domain,reject_unknown_sender_domain,check_relay_domains

En fichero llamado /etc/postfix/usuarios. Este fichero contiene algo parecido a esto:

[email protected] [email protected] [email protected] OK

Esta lista de e-mails significa que dichas direcciones pueden enviar a traves de nuestro servidor,independientemente de la IP que tengan. Como se puede observar este metodo no es muy seguro, yaque si algun spammer averigua una direccion de correo valida del servidor, podra usarla para enviarcorreo de manera indiscriminada.

Cada vez que se modifique este fichero se debe ejecutar el comando

cd /etc/postfix && postmap usuarios && postfix reload

16

10.2.3. ACL, Access Control Lists

son las direcciones de e-mail que NO pueden enviar correo a nuestro servidor. Si llega un mensajecon alguna de esas direcciones, el servidor lo rechazara. La configuracion de las ACL serıa:

smtpd_sender_restrictions =hash:/etc/postfix/accessreject_unknown_sender_domainpermit_mynetworks

Y el fichero /etc/postfix/access contendrıa:

[email protected] REJECTMETHOSYSTEM.IT REJECTtechemail.com REJECTtrafficmagnet.net REJECTemail.com REJECTseekercenter.net REJECTicai.ie REJECT

Como vemos se pueden denegar direcciones e-mail concretas ([email protected]), o dominiosenteros (techemail.com). Cada vez que se modifique este fichero debemos ejecutar:

cd /etc/postfix && postmap access && postfix reload

10.2.4. pop-before-smtp

Este metodo consiste en que los clientes, antes de poder enviar correo a traves de nuestroservidor, deben recoger primero el correo mediante POP3 o IMAP. Al recoger el correo, un demoniocontrola los logs de los servidores POP3 o IMAP, e introduce en un fichero las IPs de los clientes.A partir de ese momento, desde esa IP se podran enviar correos, con cualquier remitente, duranteel tiempo especificado, que por defecto son 30 minutos.En la distribucion Debian, existe un paquetellamado pop-before-smtp.

Luego es necesario editar el fichero /etc/pop-before-smtp/pop-before-smtp.conf para elegir elpatron (expresion regular) que se ajusta a las lineas de log que genera el servidor POP3 o IMAP.Reiniciamos el demonio para que los cambios tengan efecto y luego y comprobamos que al recoger elcorreo, nuestra IP se introduce en el fichero /var/lib/pop-before-smtp/hosts.db

mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/var/lib/pop-before-smtp/hosts

Finalmente es necesario reiniciar el demonio de POSTFIX.

10.2.5. Cifrado del envıo de mensajes mediante TLS

Los mensajes que se envıan desde un servidor a otro viajan en texto claro por defecto. Esto es,cualquier persona que pueda interponerse entre ambos servidores podra leer el contenido del mensaje.Para evitar esta situacion podemos recurrir al cifrado de la conexion mediante TLS (Transport LayerSecurity). Para empezar debemos tener instalada la version de Postfix con soporte TLS y las utilidadesopenssl. En Debian los paquetes se llaman postfix-tls y openssl.

Es necesario crear un certificado que servira para cifrar la conexion, ejecutando este comando:

17

openssl req -new -x509 -nodes -out postfix.pem -keyout postfix.pem -days 3650

El certificado lo tendremos en el fichero postfix.pem. Ponle los permisos adecuados para quenadie excepto el servidor Postfix pueda leerlo, y pon el fichero en un directorio seguro.

Configuracion en el cliente

configurar un servidor Postfix para que envıe mensajes mediante TLS. Esta configuracion puedeservir para los usuarios que usan su propia maquina como servidor de correo saliente, o envıan todo elcorreo a otro servidor Postfix que permite conexiones cifradas.

En el fichero main.cf debemos poner las siguientes opciones:

# fichero de clave publicasmtpd_tls_cert_file = /etc/ssl/postfix.pem# fichero de clave privadasmtpd_tls_key_file = /etc/ssl/postfix.pem# nivel de log. Pon 2 hasta que todo funcione biensmtpd_tls_loglevel = 0# mostrar la posibilidad de recibir mediante TLSsmtpd_use_tls = yes# fuente de entropiatls_random_source = dev:/dev/urandom# tiempo maximo de validez de las clavessmtpd_tls_session_cache_timeout = 3600s

10.3. Servidores Virtuales

Los servidores virtuales son realmente todos los dominios que gestiona nuestro servidor.Es decir,que un solo servidor de correo puede recibir e-mails para muchos dominios diferentes. La configuracionde los servidores virtuales para el LDC es:

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain, www.$mydomain, ftp.$mydomain

Es decir que uno puede mandar un correo a [email protected] y va a llegar correctamente.

10.4. Greylisting

Greylisting es el metodo por el cual se deniega el primer envıo de un remitente desconocido,mediante un codigo de error 450 (deferred). Muchos de los virus y spammers no siguen el protocoloSMTP correctamente, con lo que nunca volveran a enviar ese mensaje. Mediante el greylisting podemosevitar que nos lleguen mensajes de virus y proxies abiertos, pero no podemos evitar que nos lleguen deservidores de correo mal configurados que permiten relay, aunque con un poco de suerte en el siguientereenvıo ese servidor ya este en alguna lista RBL y podremos evitarlo.

El funcionamiento es como sigue:

Llega un correo con remitente desconocido

Se deniega con un error 450 (intentar mas tarde)

Se guarda la IP, el From y el To en un fichero

Si el correo era un spam o un virus, es muy raro que nos lo vuelvan a enviar

18

Si el correo viene de un servidor SMTP, sera enviado de nuevo pasados unos minutos

Cuando llega de nuevo el correo, lo dejara pasar

Para poder implementar un Greylist en Debian es necesario tener Postfix 2.1 o superior debidoa que las versiones anteriores no lo soportan. Una vez que tenemos Postfix en la version adecuada hayque instalar el paquete postgrey. Posterior a la instalacion del paquete se edita el fichero /etc/main.cfde manera que quede ası:

[...]smtpd_recipient_restrictions =[...]

reject_unauth_destination,check_policy_service inet:127.0.0.1:60000

[...]

Con se configura Postfix para que compruebe cada correo que llega mediante el demonio greylist,que esta escuchando en el puerto 60000 de la IP 127.0.0.1 Se reinicia el demonio Postfix y ya estarafuncionando.

11. Dovecot

Dovecot es un servidor de IMAP y POP3 de codigo abierto para sistemas GNU/Linux / UNIX-like, escrito fundamentalmente pensando en seguridad. Desarrollado por Timo Sirainen, Dovecot fueliberado por primera vez en julio del ano 2002. Dovecot apunta fundamentalmente a ser un servidorde correo de codigo abierto ligero, rapido, facil de instalar y por sobre todo seguro.

Dovecot puede trabajar con el estandar mbox, Maildir y sus propios formatos nativos dboxde alto desempeno. Es completamente compatible con implementaciones de servidores UW IMAP yCourier IMAP, ası como con clientes que accesen directante a los buzones de correo.

Dovecot tambien incluye un Agente de Entrega de Correo (llamado Local Delivery Agent (agentede entrega local o LDA en la documentacion de Dovecot) con un filtro de apoyo Sieve opcional.

En nuestro caso dovecot es el encargado de permitir que se puedan visualizar correos medianteIMAP y bajarlos mediante POP, ası como tambien establecer conexiones seguras utilizando el protocolossl TLS.

11.1. Dovecot con Postfix

En primer lugar es necesario instalar los paquetes relacionados con dovecot en nuestro sistema:

dovecot-common - secure mail server that supports mbox and maildir mailboxes

dovecot-dev - header files for the dovecot mail server

dovecot-imapd - secure IMAP server that supports mbox and maildir mailboxes

dovecot-pop3d - secure POP3 server that supports mbox and maildir mailboxes

Los demonios imap-login y pop3-login, los cuales implementan los protocolos IMAP y POP3 seencuentran incluidos en el paquete dovecot. El uso de IMAP y POP se configura a traves de dovecot;por defecto, dovecot ejecuta solamente IMAP. Para configurar dovecot para que utilice POP:

19

Modificar /etc/dovecot.conf para que tenga la siguiente lınea:

protocols = imap imaps pop3 pop3s

Y luego de esto es necesario reiniciar el demonio de dovecot y posteriormente hacer ese cambiosea operacional despues del siguiente reinicio ejecutando el comando:

chkconfig dovecot on

A diferencia de SMTP, estos protocolos requieren autenticacion de los clientes usando un nombrede usuario y una contrasena. Por defecto, las contrasenas para ambos protocolos son pasadas a travesde la red sin encriptar

Configurar SSL en dovecot

1. Modifique el archivo de configuracion dovecot/etc/pki/dovecot/dovecot-openssl.conf como desee.Sin embargo, en una instalacion tıpica este archivo no necesita modificacion.

2. Renombra, mueve o borra los archivos /etc/pki/dovecot/certs/dovecot.pem y /etc/pki/dovecot/private/dovecot.pem.

3. Ejecute el script /usr/share/doc/dovecot-1.0/examples/mkcert.sh, el cual crea certificados auto-firmados dovecot. Estos certificados se copian en los directorios /etc/pki/dovecot/certs y /etc/pki/dovecot/private.Para implementar los cambios reinicie dovecot.

20