You are on page 1of 16

SERVIDOR DE CORREO EN FEDORA 9

Por

Jess Maria Taborda. Yeison Herrera Balbn. Hugo Alberto Alvarez. Victor Hugo Narvaez. Sergio Alexis Cano. Jorge Jimnez. Stiven Marin. David Echeverry

Grupo #2

Centro de Servicios y Gestin Empresarial. Sena Medelln 2008


INTRODUCCION

El motivo de la elaboracin del trabajo que se describe a continuacin es realizar un manual completo y organizado acerca de la instalacin 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 fcilmente su trabajo. Para dicho propsito se tuvieron en cuenta multiples manuales, los cuales nos sirvieron de gua para la elaboracin 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 mquina lleguen a su destino y lo hagan sin generar problemas en los servidores de correo que deben manejar ese trfico 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 fcil de instalar; en algunas distribuciones es el MTA instalado por defecto. En conclusin se pretende servir de ayuda para quienes deseen montar su propio servidor de correo.

OBJETIVOS

Disear, implementar y gestionar un sistema de correo que cumpla con lo siguiente: 1. Cifre el trfico 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 administracin grafica (fcil 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).

PLATAFORMA DE CORREO SEGURA SOBRE FEDORA 9

Antes de empezar a configurar debemos estar enterados un poco acerca de unos cuantos trminos: Qu es un servidor de correo? Aplicacin informtica que nos permite enviar y recibir correos entre varios usuarios, no importando que clase de red estn utilizando. El E-mail es una aplicacin TCP/IP.

Qu es un correo electrnico? Servicio que permite enviar y recibir mensajes, normalmente mediante un programa o aplicacin.

Cmo 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 brindrselo muy detalladamente para evitar confusiones. Por eso antes de explicar su respectivo funcionamiento aclararemos trminos:

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 interacta directamente con el MTA.

MUA: (Mail User Agent/Cliente de correo electrnico) 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.

Todo empiza cuando el emisor de un correo electrnico 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 permitirn al usuario acceder a sus respectivos correos, visualizarlos, descargarlosetc. 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 travs de una aplicacin llamada MUA (agente de usuario de mail), este a su vez se lo enva a su MTA (Agente de transporte de mail) local, este busca el destinatario en sus registros, si existe inmediatamente le enva 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 comunicacin y permite que entre varios MTA se enven 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 envirselo a su MDA para que posteriormente el usuario acceda al mensaje a travs de MUA. Que pasaria si un mensaje no puede ser enviado por x o y motivo a su destino? Si ocurriera algn 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 estarn los mensajes temporalmente para volverlos a enviar, si despus de un tiempo limitado estos no se han podido enviar a su destino, se perder el mensaje.

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 diseado en el ao 1982 para intercambiar correos para ARPANET (Advanced Research Projects Agency Network Proyectos de investigacin 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 enva un mensaje a uno o varios receptores, la comunicacin entre el cliente y el servidor consiste enteramente en lneas de texto compuestas por caracteres ASCII. El tamao mximo permitido para estas lneas 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 conexin. Asi funcionaria el SMTP: El emisor establece una comunicacin con smtp El emisor enva 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 comunicacin seria: Los comandos y respuestas se componen de caracteres ASC II (estandar para el intercambio de informacin)

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 transaccin en curso y borra todos los registros. SEND: Inicia una transaccin en la cual el mensaje se entrega a una Terminal. SOML: El mensaje se entrega a un Terminal o a un buzon. 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 informacin 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 operacin 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 operacin. 4XX: Para una respuesta de error, pero se espera a que se repita la instruccin. 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: yo@midominio.com S: 250 Ok C: RCPT TO: hackerhigueyano@hotmail.com S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: Campo de asunto C: From: yo@midominio.com C: To: destinatario@sudominio.com C: C: Hola, C: Esto es una prueba. C: Adios.

C: . S: 250 Ok: queued as 12345 C: quit S: 221 Bye

Aqu no termina la amplia gama de comandos de SMTP a continuacin exponemos otros que les sern 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 debern entregarse en la terminal del usuario, si el usuario no esta cativo. SOML: Comando de enviar, los mensajes debern 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 <Smith@USC-ISIF.ARPA> C: VRFY Smith S: 251 Usuario no local; remitir a <Smith@USC-ISIQ.ARPA> C: VRFY Jone S: Cadena 550 no coincide con nada. C: VRFY Jones S: 551 Usuario no local, por favor intente <Jones@USC-ISIQ.ARPA> 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 ampliacin de correo se requiere una respuesta multilinea

Eje: C: EXPN Ejemplo: Personas

S: 250-Jon Postel <Postel@USC-ISIF.ARPA> S: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA> S: 250-Sam P. Smith <SQSmith@USC-ISIQ.ARPA> S: 250-Quincy Smith <@ USC-ISIF.ARPA: Q-Smith@ISI-VAXA.ARPA> S: 250 - <joe@foo-unix.ARPA> S: 250 <xyz@bar-unix.ARPA> C: EXPN Ejecutivo-Bao-Lista S: 550 Acceso denegado a Usted.

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


de Internet). Protocolo de red de acceso a mensajes electrnicos almacenados en un servidor, Mediante el imap se puede tener acceso al correo electrnico 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 conclusin, 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 simultnea. IMAP permite administrar diversas bandejas de entrada. IMAP brinda ms criterios que pueden utilizarse para ordenar los correos electrnicos (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 aplicacin que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa informacin en un entorno de red. LDAP tambin es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.

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 instalacin de nuestro Ldap implementaremos el FDS (Fedora Directory Server), ya que como estamos trabajando sobre Fedora 9 lo ms conveniente y sencillo seria implementarlo a l.

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


de directorios de cdigo abierto diseado para la gestin de grandes directorios de usuarios y recursos. Fue desarrollado Red Hat. Fedora Directory Server es idntico a la versin de Red Hat Directory Server, solo renombrados. Se destacan su capacidad de replicacin Multimaster (MMR), compatibilidad con Active Directory, Soporte SNMP, Integridad Referencial, Grupos estticos y dinmicos, Roles, Clases de Servicios, vistas, Editor Grfico de

Esquema y todo un conjunto de herramientas para un control operacional ms granulado. En la actualidad esta trabajando en una amplia variedad de empresas e instituciones a nivel mundial, principalmente por su alto rendimiento y fcil administracin.

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 tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos estn en formato digital (electrnico), que ofrece un amplio rango de soluciones al problema de almacenar datos.

SISTEMA DE DIRECTORIOS: Un directorio es una base de datos que


est optimizada para lecturas, dnde se van a producir pocas escrituras. Un directorio es, por ejemplo, el DNS, dnde el nmero de consultas es mucho mayor que el de adiciones o modificaciones. Los tpicos usos que se le dan incluyen el almacenamiento de la informacin del usuario, claves, direcciones de correo, etc.

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


de datos distribuida y jerrquica que almacena informacin asociada a nombres de dominio como Internet, aunque tiene la capacidad de almacenar diferentes tipos de informacin para cada nombre, principalmente solo se utiliza para asociar una direccin IP con un nombre de dominio en especifico y la localizacin de direcciones de correo electrnico de cada dominio. Ejemplo, si el servidor WEB www.midominio.com tiene la direccin IP 200.15.33.21, la mayora de la gente llega a este sitio utilizando el nombre de dominio mas no utilizando la direccin IP, ya que es mas difcil de recordar que el nombre. Tipos de registro en el DNS que son necesarios para nuestro servidor de correo:

REGISTRO A: (Address/Direccin) 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 electrnico, y a cual de ellos debera ser enviado en primer lugar segn su numero de prioridad. El mecanismo MX permite usar mltiples servidores de correo para un solo dominio y establece el orden en el cual deberan ser interrogados, aumentando la probabilidad que el correo pueda ser entregado y proporcionando la capacidad de distribuir el procesamiento del correo entrante a travs de mltiples servidores fsicos.

VIRUS: Es un programa capaz de instalarse y ejecutarse por s mismo


("reproducirse") en un equipo, y usualmente causar daos a archivos y programas. Algunos virus pueden enviarse por correo electrnico, e instalarse ("infectar y propagarse") en otros equipos remotos. Ejemplos de virus recientes que se extienden por SMTP son NetSky, Mydoom, etc.

SPAM: Son mensajes de correo enviados por robots (programas


automticos) que en el pasado usaban las vulnerabilidades de los MTA para ser enviados por servidores de correo. Generalmente envan publicidad, cadenas, y otras clases de basura. Los mensajes son inofensivos y slo son fuente de distraccin para los usuarios y almacenamiento intil de espacio en disco.

MALWARE: (Malicious software, tambin llamado badware, software


malicioso o software malintencionado) Es un software que tiene como objetivo infiltrarse en o daar un ordenador sin el conocimiento de su dueo 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 informticos y otros maliciosos (malware). Bsicamente, un antivirus compara el cdigo de cada archivo con una base de datos de los cdigos (tambin conocidos como firmas o vacunas) de los virus conocidos, por lo que es importante actualizarla peridicamente a fin de evitar que un virus nuevo no sea detectado.

ANTISPAM: Es un programa o aplicacin encargado de filtrar todos los


mensajes de correo electrnico remitido a las direcciones de correo electrnico de su dominio en busca de SPAM y de correo electrnico no deseado, aplicando una serie de reglas internas.

SSL: (Secure Socket Layer/Protocolo de capa de conexin segura) Es un


protocolo criptogrfico que proporciona una conexin segura a travs de una red, comnmente Internet. Su sucesor TLS (Transport Layer Security) contiene pequeas diferencias frente a SSL pero el protocolo permanece sustancialmente igual.

TLS: (Transport Layer Security) Es un nivel (Layer) que garantiza seguridad


(conexin segura) y privada a la interaccin de un protocolo ya que provee mecanismos de encriptacin a la comunicacin. 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.

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.

SERVICIOS A UTILIZAR: Existen varios servidores de correo, los cuales nos ofrecen mltiples caractersticas en su configuracin, en este manual como ya lo habamos mencionado antes, utilizaremos el postfix. Conozcamos un poco acerca de lo que es postfix, sus funciones y caractersticas.

POSTFIX:

Postfix es un MTA (Mail Transport Agent ) rpido, fcil de administrar y seguro, es totalmente compatible con sendmail, manteniendo externamente las formas de este. Postfix es una combinacin de diversos programas que realizan su funcin determinada dentro del conjunto.

Postfix, originalmente desarrollado en IBM por el experto de seguridad y programador Wietse Venema, es un MTA compatible con Sendmail diseado para ser seguro, rpido y fcil de configurar. Postfix utiliza un diseo modular para mejorar la seguridad, en el que los procesos pequeos con privilegios limitados son lanzados por un demonio master. Los procesos ms pequeos, con menos privilegios, realizan tareas muy especficas 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 configuracin 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 mayora de las opciones usadas frecuentemente se describen en archivos muy bien comentados. Postfix almacena sus archivos de configuracin en el directorio /etc/postfix/. A continuacin se muestra una lista de los archivos usados ms 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 configuracin de Postfix. La mayora de las opciones de configuracin se especifican en este archivo. master.cf Especfica la forma en que Postfix interacta con diferentes procesos para lograr la entrega de correo. transport Hace las correspondencias entre direcciones de correo electrnico y los hosts de transmisiones.

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

*No es necesario una cuenta de sistema Linux para cada uno de los usuarios de correo. Es un cliente de correo electrnico (MUA), es decir con este paquete instalaramos 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 validacin de los usuarios contra este sistema de directorios, tambin si lo instalas desde los .rpm, podra pedirte las siguientes dependencias: 1. libtermcap-xxxxx.rpm 2. termcap-xxxxx.rpm

Terminada la conceptualizacin ahora si procederemos a la respectiva instalacin y configuracin de nuestro servidor.