Servidor De Correo En Fedora

21

Click here to load reader

Transcript of Servidor De Correo En Fedora

Page 1: Servidor De Correo En Fedora

SERVIDOR DE CORREO EN FEDORA 9

Por

Jesús Maria Taborda.

Yeison Herrera Balbín.

Hugo Alberto Alvarez.

Victor Hugo Narvaez.

Sergio Alexis Cano.

Jorge Jiménez.

Stiven Marin.

David Echeverry

Grupo #2

Centro de Servicios y Gestión Empresarial.

Sena

Medellín

2008

Page 2: Servidor De Correo En Fedora

INTRODUCCION

El motivo de la elaboración del trabajo que se describe a continuación es realizar un

manual completo y organizado acerca de la instalación de un sistema de correo

seguro sobre el sistema operativo “Fedora 9”, para así ayudar a los futuros

administradores de red a documentarse y llevar a cabo mas fácilmente su trabajo.

Para dicho propósito se tuvieron en cuenta multiples manuales, los cuales nos

sirvieron de guía para la elaboración del presente manual.

El lector(a) encontrara en este documento una base para configurar un MTA (agente de transferencia de mensajes) en un ordenador con GNU/Linux instalado para que los mensajes de correo generados por la propia máquina lleguen a su destino y lo hagan sin generar problemas en los servidores de correo que deben manejar ese tráfico de mensajes.

El MTA elegido para esta tarea es Postfix. Este software es ligero (consume pocos recursos y da buenas medidas de rendimiento). Existen paquetes para todas las distribuciones y por tanto es fácil de instalar; en algunas distribuciones es el MTA instalado por defecto.

En conclusión se pretende servir de ayuda para quienes deseen montar su propio

servidor de correo.

Page 3: Servidor De Correo En Fedora

OBJETIVOS

Diseñar, implementar y gestionar un sistema de correo que cumpla con lo siguiente:

1. Cifre el tráfico entre usuario y servidor.

2. Valide los usuarios contra un sistema de directorios.

3. Almacene los correos de los usuarios en un sistema de directorios o en una base

de datos.

4. Permita configurar usuarios y dominios virtuales.

5. Soporte un sistema de antivirus, antispam y antimalware en general.

6. Soporte administración grafica (fácil de administrar para el usuario).

7. Soporte acceso POP, IMAP y WebMail (hacerlo de forma segura -SSL).

8. Bonus (hacer algo adicional para diferenciar el proyecto de otros similares).

Page 4: Servidor De Correo En Fedora

PLATAFORMA DE CORREO SEGURA SOBRE FEDORA 9

Antes de empezar a configurar debemos estar enterados un poco acerca de unos cuantos

términos:

¿Qué es un servidor de correo?

Aplicación informática que nos permite enviar y recibir correos entre varios usuarios, no importando que clase de red estén utilizando. El E-mail es una aplicación TCP/IP.

¿Qué es un correo electrónico?

Servicio que permite enviar y recibir mensajes, normalmente mediante un programa o aplicación.

¿Cómo funciona?

En cuanto al funcionamiento, es un poco complejo ya que hay que tener en cuenta varios conceptos que para los “novatos” en este campo se les seria un poco complejo el entenderlo pero trataremos de brindárselo muy detalladamente para evitar confusiones.

Por eso antes de explicar su respectivo funcionamiento aclararemos términos:

MTA: (Mail Transport Agent/Agente de transferencia de correo) Es el programa encargado del

transporte del correo de una computadora a otra, un MTA es el muy conocido protocolo SMTP

(Simple Mail Tranfer Protocol), el MTA trabaja en segundo plano lo que quiere decir que el

usuario no interactúa directamente con el MTA.

MUA: (Mail User Agent/Cliente de correo electrónico) Es el programa de ordenador utilizado

para leer y enviar los correos. Es el utilizado por los usuarios para enviar y recibir sus correos,

los e-mails enviados son entregados al MTA y ya luego èl se encarga de transportarlos hasta su

destino.

MDA: (Mail Delivery Agent) Es un software que se encarga de recibir el correo entrante y de

distribuirlo alo buzones de los destinatarios (si el destino esta en la maquina local), o se

convierte en un MTA para reenviarlo hacia otro servidor SMTP.

Page 5: Servidor De Correo En Fedora

Todo empiza cuando el emisor de un correo electrónico manda los mensajes a un servidor y este, a su vez, se encarga de enviarselos al servidor del receptor. Para poder ver el correo-electronico es necesario que el receptor se conecte con su servidor, y que a su vez este utilizando el pop3 o el imap, que son protocolos que permitirán al usuario acceder a sus respectivos correos, visualizarlos, descargarlos……etc.

Este procedimiento se logra gracias al protocolo SMTP que es el encargado de hacer que un mensaje se transporte de un MTA a otro MTA.

El mensaje se genera en el cliente a través de una aplicación llamada MUA (agente de usuario de mail), este a su vez se lo envía a su MTA (Agente de transporte de mail) local, este busca el destinatario en sus registros, si existe inmediatamente le envía el mensaje a su MDA (Agente de entrega de mail), el cual almacenara el correo hasta que el usuario a quien fue dirigido el correo acceda a el por medio del pop3 o imap.

¿ y si no existiera el usuario a quien va dirigido el mensaje localmente que se hace?

Bueno, si el MTA no encuentra el usuario en sus registros, este procede a comunicarse con otro MTA, para enviarle el mensaje, esto se logra a travez del protocolo SMTP, que establece la comunicación y permite que entre varios MTA se envíen los mensajes, este procedimiento se repite cuantas veces sea necesario, hasta que el mensaje logre llegar a su destino. Este proceso se le conoce con el nombre de Relay. Cuando el mensaje llega al MTA destino, este procede a enviárselo a su MDA para que posteriormente el usuario acceda al mensaje a través de MUA.

¿ Que pasaria si un mensaje no puede ser enviado por x o y motivo a su destino?

Si ocurriera algún error por parte de los MTA, y que no se puedan enviar los mensajes a su destino, estos crearan una lista de cola, en donde estarán los mensajes temporalmente para volverlos a enviar, si después de un tiempo limitado estos no se han podido enviar a su destino, se perderá el mensaje.

Page 6: Servidor De Correo En Fedora

¿Qué protocolos utiliza?

Basicamente un servidor de correo funciona a partir de 3 protocolos basicos que son:

SMTP: (Simple Mail Transfer Protocol) :

Es un protocolo de red utilizado para el envió de correo de una maquina a otra. Fue diseñado

en el año 1982 para intercambiar correos para ARPANET (“Advanced Research Projects Agency

Network” Proyectos de investigación avanzada para la red), definido en los RFC 821 y RFC 822.

La primera de ellas define este protocolo y la segunda el formato del mensaje que este

protocolo debia transportarlo.

Smtp se basa en el modelo cliente-servidor, donde un cliente envía un mensaje a uno o varios

receptores, la comunicación entre el cliente y el servidor consiste enteramente en líneas de

texto compuestas por caracteres ASCII. El tamaño máximo permitido para estas líneas es de

1000 caracteres. En el conjunto de protocolos TCP/IP, el SMTP va por encima del TCP, usando

normalmente el puerto 25 en el servidor para establecer la conexión.

Asi funcionaria el SMTP:

El emisor establece una comunicación con smtp El emisor envía un comando MAIL para indicar el remitente del correo Si el receptor SMTP puede aceptar el correo responde con una respuesta OK+ El emisor envia un comando RCPT identificando a quien va dirigido el correo. Si SMTP puede aceptar correos para ese destinatario responde con un OK si no

responde con un error Cuando se a terminado de negociar entre el servidor y el emisor se envian los

mensajes, si todo se concluye satisfactoriamente el servidor responde con un OK

La sintaxis que se utilisaria en dicha comunicación seria:

Los comandos y respuestas se componen de caracteres ASC II (estandar para el intercambio de información)

HELO: Para abrir una sesion con el servidor. MAIL FROM: Para indicar quien envia el mensaje RCPT TO: Para indicar el destinatario del mensaje DATA: Para indicar el comienzo del mensaje, este finalizara cuando haya una linea

unicamente con un punto. QUIT: para cerrar la sesion. RSET: Aborta la transacción en curso y borra todos los registros. SEND: Inicia una transacción en la cual el mensaje se entrega a una Terminal. SOML: El mensaje se entrega a un Terminal o a un buzon.

Page 7: Servidor De Correo En Fedora

SAML: El mensaje se entrega a un Terminal y a un buzon. VRFY: Solicita al servidor la confirmacion del argumento. EXPN: Solicita al servidor uinformacion sobre un comando. HELP: Permite solicitar información sobre un comando. NOOP: Se emplea para reiniciar los temporizadores TURN: Solicita al servidor que intercambien los paquetes.

Las respuestas del servidor se hace de forma numerica la cuales son:

2XX: La operación solicitada mediante el comando anterior a concluido con éxito. 3XX: La orden ha sido aceptada, pero el servidor esta pendiente de que el cliente le

envie nuevos datos para terminar la operación. 4XX: Para una respuesta de error, pero se espera a que se repita la instrucción. 5XX: Para indicar una condicion de error permanente, por lo que no debe repetirse la

orden.

Un ejemplo seria:

S: 220 Servidor ESMTP C: HELO S: 250 Hello, please meet you C: MAIL FROM: [email protected] S: 250 Ok C: RCPT TO: [email protected] S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: Campo de asunto C: From: [email protected] C: To: [email protected] C: C: Hola, C: Esto es una prueba. C: Adios. C: . S: 250 Ok: queued as 12345 C: quit S: 221 Bye

Page 8: Servidor De Correo En Fedora

Aquí no termina la amplia gama de comandos de SMTP a continuación exponemos otros que les serán muy utiles:

VRFY: Se utilize para verificar un nombre de usuario. EXPN: Se utiliza para ampliar una lista de correo. SP: Comando enviar, los mensajes deberán entregarse en la terminal del

usuario, si el usuario no esta cativo. SOML: Comando de enviar, los mensajes deberán entregarse en la terminal de

usuario o buzon de correo, si el usuario esta activo. SAML: Comando de enviar, exige que el mensaje sea entregado a la terminal

del usuario si la terminalesta activa, en cualquier caso el correo se introduce en el buzon del usuario.

Eje:

C: VRFY Smith S: 250 Fred Smith <[email protected]>

C: VRFY Smith S: 251 Usuario no local; remitirá a <[email protected]>

C: VRFY JoneS: Cadena 550 no coincide con nada.

C: VRFY Jones S: 551 Usuario no local, por favor intente <[email protected]>

C: VRFY Gourzenkyinplatz S: 553 Usuario ambigua.

Smith es el nombre de usuario, la respuesta del servidor puede incluir el nombre completo del usuario, y debe incluir el buzon de correo del usuario.

En el caso de ampliación de correo se requiere una respuesta multilinea

Eje:

C: EXPN Ejemplo: Personas S: 250-Jon Postel <[email protected]> S: 250-Fred Fonebone <[email protected]> S: 250-Sam P. Smith <[email protected]> S: 250-Quincy Smith <@ USC-ISIF.ARPA: [email protected]> S: 250 - <[email protected]> S: 250 <[email protected]>

C: EXPN Ejecutivo-Baño-Lista S: 550 Acceso denegado a Usted.

Page 9: Servidor De Correo En Fedora

IMAP: (Internet Message Access Protocol/Protocolo de acceso a mensajes de Internet).

Protocolo de red de acceso a mensajes electrónicos almacenados en un servidor,

Mediante el imap se puede tener acceso al correo electrónico desde cualquier equipo

que tenga acceso a internet, permite visualizar los correos de forma remota, lo que

implica no descargar los correos para visualizarlos, a diferencia del pop que si se

necesita descargarlo.

En conclusión, es un servicio que nos permite recoger correo de un servidor remoto (servidor

IMAP), apareció como una alternativa mejorada de POP, ya que ofrece mayores ventajas.

IMAP permite administrar diversos accesos de manera simultánea.

IMAP permite administrar diversas bandejas de entrada.

IMAP brinda más criterios que pueden utilizarse para ordenar los correos electrónicos

(e-mail). El protocolo IMAP utiliza el puerto por defecto 143.

POP: (Post Office Protocol/Protocolo de oficina de correo) Es un servicio que permite recoger

el correo de un servidor remoto (servidor POP), a diferencia del protocolo IMAP, este

protocolo requiere que los correos sean descargados ala maquina local del usuario antes de

poder visualizarlos. Existen dos versiones principales de este protocolo, pop2 y pop3, a los que

se les asignan los puertos 109 y 110 respectivamente, ambos funcionan utilizando comandos

de texto pero totalmente diferentes el uno del otro.

LDAP: (Lightweight Directory Access Protocolo/Protocolo Ligero de Acceso a Directorios) Es

un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y

distribuido para buscar diversa información en un entorno de red. LDAP también es

considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a

la que pueden realizarse consultas.

Page 10: Servidor De Correo En Fedora

Existen diversas implementaciones y aplicaciones reales del protocolo LDAP, como son:

1. Active Directory.

2. Fedora Directory Server (FDS).

3. Mandriva Directory Server (MDS).

4. Apache Directory Server.

Para la instalación de nuestro Ldap implementaremos el FDS (Fedora Directory Server), ya que

como estamos trabajando sobre Fedora 9 lo más conveniente y sencillo seria implementarlo a

él.

FDS: (Fedora Directory Server/Servidor de Directorio Fedora) Es un servicio de directorios de

código abierto diseñado para la gestión de grandes directorios de usuarios y recursos. Fue

desarrollado Red Hat. Fedora Directory Server es idéntico a la versión de Red Hat Directory

Server, solo renombrados.

Se destacan su capacidad de replicación Multimaster (MMR), compatibilidad con Active

Directory, Soporte SNMP, Integridad Referencial, Grupos estáticos y dinámicos, Roles, Clases

de Servicios, vistas, Editor Gráfico de Esquema y todo un conjunto de herramientas para un

control operacional más granulado. En la actualidad esta trabajando en una amplia variedad de

empresas e instituciones a nivel mundial, principalmente por su alto rendimiento y fácil

administración.

BASES DE DATOS: Es un conjunto de datos pertenecientes a un mismo contexto y

almacenados para su posterior uso. En la actualidad, y debido al desarrollo tecnológico de

campos como la informática y la electrónica, la mayoría de las bases de datos están en formato

digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar

datos.

Page 11: Servidor De Correo En Fedora

SISTEMA DE DIRECTORIOS: Un directorio es una base de datos que está optimizada para

lecturas, dónde se van a producir pocas escrituras. Un directorio es, por ejemplo, el DNS,

dónde el número de consultas es mucho mayor que el de adiciones o modificaciones. Los

típicos usos que se le dan incluyen el almacenamiento de la información del usuario, claves,

direcciones de correo, etc.

DNS: (Domain Name System/Sistema de nombres de dominio) Es una base de datos

distribuida y jerárquica que almacena información asociada a nombres de dominio como

Internet, aunque tiene la capacidad de almacenar diferentes tipos de información para cada

nombre, principalmente solo se utiliza para asociar una dirección IP con un nombre de

dominio en especifico y la localización de direcciones de correo electrónico de cada dominio.

Ejemplo, si el servidor WEB www.midominio.com tiene la dirección IP “200.15.33.21”, la

mayoría de la gente llega a este sitio utilizando el nombre de dominio mas no utilizando la

dirección IP, ya que es mas difícil de recordar que el nombre.

Tipos de registro en el DNS que son necesarios para nuestro servidor de correo:

REGISTRO “A”: (Address/Dirección) Este tipo de registro se utiliza para traducir nombres a

direcciones de Internet.

REGISTRO “MX”: (Mail Exchange/Registro de Intercambio de Correo) Este registro asocia

un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio.

Los registros MX apuntan a los servidores a los cuales enviar un correo electrónico, y a cual de

ellos debería ser enviado en primer lugar según su numero de prioridad.

El mecanismo MX permite usar múltiples servidores de correo para un solo dominio y

establece el orden en el cual deberían ser interrogados, aumentando la probabilidad que el

correo pueda ser entregado y proporcionando la capacidad de distribuir el procesamiento del

correo entrante a través de múltiples servidores físicos.

VIRUS: Es un programa capaz de instalarse y ejecutarse por sí mismo ("reproducirse") en un

equipo, y usualmente causar daños a archivos y programas. Algunos virus pueden enviarse por

correo electrónico, e instalarse ("infectar y propagarse") en otros equipos remotos. Ejemplos

de virus recientes que se extienden por SMTP son NetSky, Mydoom, etc.

Page 12: Servidor De Correo En Fedora

SPAM: Son mensajes de correo enviados por robots (programas automáticos) que en el

pasado usaban las vulnerabilidades de los MTA para ser enviados por servidores de correo.

Generalmente envían publicidad, cadenas, y otras clases de basura. Los mensajes son

inofensivos y sólo son fuente de distracción para los usuarios y almacenamiento inútil de

espacio en disco.

MALWARE: (Malicious software, también llamado badware, software malicioso o software

malintencionado) Es un software que tiene como objetivo infiltrarse en o dañar un ordenador

sin el conocimiento de su dueño y con finalidades muy diversas, como es bloquear el

ordenador, destruir software y archivos, entre otros.

ANTIVIRUS: Es un programa con la capacidad de detectar y eliminar virus informáticos y

otros maliciosos (malware). Básicamente, un antivirus compara el código de cada archivo con

una base de datos de los códigos (también conocidos como firmas o vacunas) de los virus

conocidos, por lo que es importante actualizarla periódicamente a fin de evitar que un virus

nuevo no sea detectado.

ANTISPAM: Es un programa o aplicación encargado de filtrar todos los mensajes de correo

electrónico remitido a las direcciones de correo electrónico de su dominio en busca de SPAM y

de correo electrónico no deseado, aplicando una serie de reglas internas.

SSL: (Secure Socket Layer/Protocolo de capa de conexión segura) Es un protocolo

criptográfico que proporciona una conexión segura a través de una red, comúnmente Internet.

Su sucesor TLS (Transport Layer Security) contiene pequeñas diferencias frente a SSL pero el

protocolo permanece sustancialmente igual.

TLS: (Transport Layer Security) Es un nivel (Layer) que garantiza seguridad (conexión segura) y

privada a la interacción de un protocolo ya que provee mecanismos de encriptación a la

comunicación. Su antecesor es SSL (Security Socket Layer). Los protocolos en nivel TLS cambian

su nomenclatura y el puerto de comunicaciones que utilizan. Así “http” (puerto 80) sobre TLS

cambia a “https” (puerto 443). Los protocolos mencionados arriba cambian a: “Smtps” puerto

465, “Pop3s” puerto 995, “Imaps” puerto 993.

Page 13: Servidor De Correo En Fedora

DOMNINIOS VIRTUALES: Son aquellos dominios que realmente no existen, es decir nuestro

servidor tiene un nombre de dominio en especifico, pero puede recibir correos destinados

hacia dominios con los que el nombre de nuestra maquina no tiene nada que ver. Ejemplo,

nuestro servidor posee el nombre <mail.midominio.com>, pero si en la variable

“virtual_mailbox_domain” especificamos un dominio como dominiodos.com, nuestro servidor

podrá procesar los correos que vallan dirigidos hacia dicho dominio.

Page 14: Servidor De Correo En Fedora

SERVICIOS A UTILIZAR:

Existen varios servidores de correo, los cuales nos ofrecen múltiples características en su configuración, en este manual como ya lo habíamos mencionado antes, utilizaremos el postfix.

Conozcamos un poco acerca de lo que es postfix, sus funciones y características.

POSTFIX:

Postfix es un MTA (Mail Transport Agent ) rápido, fácil de administrar y seguro, es totalmente compatible con sendmail, manteniendo externamente las formas de este. Postfix es una combinación de diversos programas que realizan su función determinada dentro del conjunto.

Postfix, originalmente desarrollado en IBM por el experto de seguridad y programador Wietse Venema, es un MTA compatible con Sendmail diseñado para ser seguro, rápido y fácil de configurar.

Postfix utiliza un diseño modular para mejorar la seguridad, en el que los procesos pequeños con privilegios limitados son lanzados por un demonio master. Los procesos más pequeños, con menos privilegios, realizan tareas muy específicas relacionadas con las diferentes etapas de la entrega de correos y se ejecutan en un ambiente de cambio de root para limitar los efectos de ataques.

Los archivos de configuración de Postfix son legibles y aceptan hasta 250 directrices. A diferencia de Sendmail, no se requiere procesar ninguna macro para que los cambios tomen efecto y la mayoría de las opciones usadas frecuentemente se describen en archivos muy bien comentados.

Postfix almacena sus archivos de configuración en el directorio /etc/postfix/. A continuación se muestra una lista de los archivos usados más a menudo:

access — Utilizado para el control de acceso, este archivo especifica los sistemas que pueden conectarse a Postfix.

aliases — Una lista configurable que el protocolo de correo requiere. main.cf — El archivo global de configuración de Postfix. La mayoría de las

opciones de configuración se especifican en este archivo. master.cf — Específica la forma en que Postfix interactúa con diferentes

procesos para lograr la entrega de correo. transport — Hace las correspondencias entre direcciones de correo electrónico

y los hosts de transmisiones.

Page 15: Servidor De Correo En Fedora

Otros servicios a implementar son:

CYRUS-IMAPD

Cyrus IMAP (Internet Message Access Protocol) es desarrollado y mantenido por Andrew Systems Group. A diferencia de otros gestores de correo IMAP, cyrus almacena cada correo en un fichero independiente. Las ventajas son obvias:

*Mayor fiabilidad de almacenamiento.

*Rapidez de acceso inusitada.

*Los índices de cada mensaje y su estado se guardan en una base de datos a parte.

*Los mensajes se indexan para una mayor rapidez en el acceso de la búsqueda.

*No es necesario una cuenta de sistema Linux para cada uno de los usuarios de correo.

Es un cliente de correo electrónico (MUA), es decir con este paquete instalaríamos los

servicios POP e IMAP para poder enviar y recibir el correo, hemos decidido utilizar

Cyrus-imapd porque nos permite un formato para los buzones de correo que mejora el

rendimiento y escalabilidad de Maildir. Este formato almacena los datos por partes del

sistema de archivos y que solo pueden ser accedidos por el servicio de Cyrus-imapd.

Igualmente si estas trabajando en fedora 9 y lo instalas desde los .rpm, te podrá

solicitar las siguientes dependencias:

1. cyrus-imapd-perl-xxxxx.rpm

2. cyrus-imapd-utils-xxxxx.rpm

3. db4-utils-xxxxx.rpm

FEDORA-DS

Con este paquete instalaremos el servidor Fedora Directory Server para la validación de los

usuarios contra este sistema de directorios, también si lo instalas desde los .rpm, podría

pedirte las siguientes dependencias:

1. libtermcap-xxxxx.rpm

2. termcap-xxxxx.rpm

Page 16: Servidor De Correo En Fedora

Terminada la conceptualización ahora si procederemos a la respectiva instalación y configuración de nuestro servidor.