sistema de mensajería electrónica del centro de cálculo

Upload: jose-ramon-cerquides-bueno

Post on 30-Oct-2015

207 views

Category:

Documents


0 download

TRANSCRIPT

  • Escuela Tcnica Superior de Ingeniera

    Universidad de Sevilla

    Sistema de Mensajera Electrnica del Centro de Clculo

    autor: Vctor Manuel Ponferrada Luque tutor: Dr. Jos Ramn Cerquides Bueno

    Proyecto fin de carrera Ingeniera de telecomunicacin

    Sevilla, 2012

  • AGRADECIMIENTOS

    A Estefana Vzquez Torres por estar siempre ah.

    A mi familia por haberme apoyado hasta el final de mi etapa acadmica.

    A mi tutor Jos Ramn Cerquides Bueno por su gran compresin y su enorme amabilidad.

    Y a Corsino lvarez Moro por su constante implicacin, gua y apoyo con este proyecto.

  • ndice de contenido

    V

    NDICE DE CONTENIDO

    1. OBJETIVO ............................................................................................................................ 1

    MOTIVACIN ........................................................................................................................................ 2 REQUISITOS .......................................................................................................................................... 3

    2. ESTADO DEL ARTE ............................................................................................................... 5

    SOLUCIONES MODULARES ....................................................................................................................... 5 SOLUCIONES INTEGRADAS ....................................................................................................................... 6 SOLUCIONES CLOUD ............................................................................................................................... 7 SISTEMAS EN PRODUCCIN DE REFERENCIA ................................................................................................. 8

    3. PLANIFICACIN ................................................................................................................... 9

    TAREAS ................................................................................................................................................ 9 DIAGRAMA DE GANTT .......................................................................................................................... 10

    4. DISEO ............................................................................................................................. 11

    MARCO TERICO ................................................................................................................................. 11 Correo electrnico ...................................................................................................................... 11

    MTA ..................................................................................................................................................... 13

    Virtualizacin.............................................................................................................................. 14 Alta disponibilidad ...................................................................................................................... 15

    5. IMPLEMENTACIN ............................................................................................................ 17

    SOLUCIN SOFTWARE ESCOGIDA ............................................................................................................. 17 Zimbra ........................................................................................................................................ 19 Mailman ..................................................................................................................................... 20 Z-Push ......................................................................................................................................... 21

    CORREO ELECTRNICO: INSTALACIN BSICA ............................................................................................. 22 Instalacin e integracin de mailman ........................................................................................ 26 Instalacin de Z-Push ................................................................................................................. 29 Tamao de la instalacin ........................................................................................................... 33

    VIRTUALIZACIN.................................................................................................................................. 34 ALTA DISPONIBILIDAD ........................................................................................................................... 37

    Introduccin ............................................................................................................................... 37 Heartbeat ................................................................................................................................... 38 Watchdog ................................................................................................................................... 41 DRBD (Distributed Replicated Block Device) .............................................................................. 42

    Actualizacin de DRBD ....................................................................................................................... 45

    GFS2 (Global File System 2) ........................................................................................................ 46 DRBD + GFS2 .............................................................................................................................. 48

    CONFIGURACIN MULTISERVIDOR ........................................................................................................... 50 LDAP + MAILBOX ........................................................................................................................ 52 MTA ............................................................................................................................................ 55 Configuracin final ..................................................................................................................... 57 Instalacin e integracin de mailman (multiservidor) ............................................................... 58 Instalacin de Z-Push (multiservidor) ......................................................................................... 63

    SISTEMA FINAL .................................................................................................................................... 64

  • PFC SME del CdC

    VI

    Arquitectura general .................................................................................................................. 64 Recursos ..................................................................................................................................... 66

    Tamao de la instalacin .................................................................................................................... 66

    Planificacin de direcciones ....................................................................................................... 68 Presupuesto ................................................................................................................................ 70 Instalacin .................................................................................................................................. 71

    Creacin y configuracin de las mquinas virtuales........................................................................... 71 Instalacin del sistema operativo en las mquinas virtuales ............................................................. 72 Instalacin de Zimbra en la primera pareja ........................................................................................ 73 Configuracin final de la primera pareja ............................................................................................ 76

    mbx1sme ........................................................................................................................................ 78 mta1sme......................................................................................................................................... 84

    Puesta en marcha de la primera pareja .............................................................................................. 90 Preparacin de la segunda pareja ...................................................................................................... 91 Instalacin de Zimbra en la segunda pareja ....................................................................................... 91 Configuracin final de la segunda pareja ........................................................................................... 93

    mbx2sme ........................................................................................................................................ 94 mta2sme......................................................................................................................................... 96

    Puesta en marcha de la segunda pareja ............................................................................................. 99 Instalacin de @etsi.us.es ................................................................................................................ 100

    LDAPS ........................................................................................................................................... 100 SMTP Auth .................................................................................................................................... 101 Mejora del rendimiento de amavisd-new .................................................................................... 101 Desactivacin de GAL ................................................................................................................... 102 Utilizacin de XMLRPC ................................................................................................................. 102

    Verificacin de la instalacin .................................................................................................... 103 Servicios y recursos ofrecidos ................................................................................................... 105 Entrega del sistema .................................................................................................................. 106

    6. ASPECTOS DE MEJORA .................................................................................................... 107

    REQUISITOS NO CUMPLIDOS ................................................................................................................ 107 PUNTOS DBILES ............................................................................................................................... 107 POSIBLES MEJORAS ............................................................................................................................ 107 ACTUALIZACIONES DEL SISTEMA ............................................................................................................ 108

    7. CONCLUSIONES ............................................................................................................... 109

    8. BIBLIOGRAFA ................................................................................................................. 110

    RECURSOS BIBLIOGRFICOS ELECTRNICOS ............................................................................................. 110 RECURSOS BIBLIOGRFICOS FSICOS ....................................................................................................... 114

    ANEXOS ................................................................................................................................. 115

    ANEXO 1: ACTUALIZACIN DE ZIMBRA ................................................................................................... 115 ANEXO 2: MANUAL DE USUARIO DEL SISTEMA DE MENSAJERA ELECTRNICA ............................................... 118 ANEXO 3: ESPEFICACIONES TCNICAS DE LOS EQUIPOS IMPLICADOS ............................................................. 169

  • ndice de ilustraciones

    VII

    NDICE DE ILUSTRACIONES

    ILUSTRACIN 1: LOGO GMAIL ...................................................................................................................... 8 ILUSTRACIN 2: LOGO HOTMAIL .................................................................................................................. 8 ILUSTRACIN 3: LOGO YAHOO! MAIL ............................................................................................................ 8 ILUSTRACIN 4: DIAGRAMA DE GANTT DEL PROYECTO .................................................................................... 10 ILUSTRACIN 5: LOGO POSTFIX .................................................................................................................. 13 ILUSTRACIN 6: LOGO EXIM ...................................................................................................................... 13 ILUSTRACIN 7: LOGO QMAIL .................................................................................................................... 13 ILUSTRACIN 8: LOGO SENDMAIL ............................................................................................................... 13 ILUSTRACIN 9: SITUACIN INICIAL ............................................................................................................. 15 ILUSTRACIN 10: FALLO DEL EQUIPO PRINCIPAL ............................................................................................. 15 ILUSTRACIN 11: RESTABLECIMIENTO DEL EQUIPO PRINCIPAL ........................................................................... 16 ILUSTRACIN 12: FALLO DEL EQUIPO DE RESERVA ........................................................................................... 16 ILUSTRACIN 13: LOGO ZIMBRA ................................................................................................................ 19 ILUSTRACIN 14: ZIMBRA COLLABORATION SERVER OPEN SOURCE EDITION ....................................................... 19 ILUSTRACIN 15: LOGO MAILMAN (ANTIGUO) .............................................................................................. 20 ILUSTRACIN 16: LOGO MAILMAN ............................................................................................................. 20 ILUSTRACIN 17: LOGO Z-PUSH................................................................................................................. 21 ILUSTRACIN 18: LOGO ZIMBRA BACKEND ................................................................................................... 21 ILUSTRACIN 19: LOGO VMWARE ............................................................................................................. 34 ILUSTRACIN 20: PGINA WEB MOSTRADA AL ACCEDER A: HTTPS://IPHIPERVISOR/ .............................................. 35 ILUSTRACIN 21: PGINA PRINCIPAL DE CONFIGURACIN DEL HIPERVISOR .......................................................... 35 ILUSTRACIN 22: HABILITACIN DE LA CONSOLA DE COMANDOS DEL HIPERVISOR ................................................. 35 ILUSTRACIN 23: LOGO HEARTBEAT ............................................................................................................ 38 ILUSTRACIN 24: LOGO DRBD .................................................................................................................. 42 ILUSTRACIN 25: ESQUEMA DE FUNCIONAMIENTO DE DRBD .......................................................................... 42 ILUSTRACIN 26: ESQUEMA FUNDAMENTAL DE ALTA DISPONIBILIDAD ................................................................ 42 ILUSTRACIN 27: SOLUCIN QUE APORTA DRBD A LA ALTA DISPONIBILIDAD ....................................................... 43 ILUSTRACIN 28: LOGO REDHAT ................................................................................................................. 46 ILUSTRACIN 29: ARQUITECTURA COMPLETA DEL SISTEMA FINAL ...................................................................... 64

  • PFC SME del CdC

    VIII

  • ndice de tablas

    IX

    NDICE DE TABLAS

    TABLA 1: COMPARATIVA ENTRE IREDMAIL Y ZIMBRA ....................................................................................... 18 TABLA 2: TAMAO NECESARIO PARA LA INSTALACIN DE ZIMBRA ...................................................................... 33 TABLA 3: TAMAO NECESARIO PARA LA INSTALACIN DE ZIMBRA ...................................................................... 66 TABLA 4: ORGANIZACIN DEL ALMACENAMIENTO DEL HIPERVISOR .................................................................... 67 TABLA 5: CONFIGURACIN DE LOS REGISTROS DNS NECESARIOS ....................................................................... 68 TABLA 6: DIRECCIONAMIENTO DE LOS EQUIPOS FSICOS ................................................................................... 68 TABLA 7: DIRECCIONAMIENTO DE LOS SERVIDORES DE ALMACENAMIENTO ........................................................... 68 TABLA 8: DIRECCIONAMIENTO DE LAS MQUINAS VIRTUALES ............................................................................ 69 TABLA 9: PRESUPUESTO DEL SISTEMA FINAL .................................................................................................. 70 TABLA 10: FRMULA PARA EL CLCULO DEL ESPACIO TEMPORAL NECESARIO PARA AMAVISD .................................... 89 TABLA 11: PARMETROS DE LA FRMULA PARA EL CLCULO DEL ESPACIO TEMPORAL DE AMAVISD ............................ 89

  • PFC SME del CdC

    X

  • 1. Objetivo

    1

    1. Objetivo

    El objetivo de este proyecto es el diseo e implementacin de un sistema de mensajera electrnica basado en software libre, cuyo componente fundamental es el correo electrnico, destinado a remplazar al sistema actual, descrito ms adelante. Dicho diseo debe hacer uso de tcnicas de virtualizacin y alta disponibilidad para cumplir con unos requisitos altos de seguridad, rendimiento y disponibilidad necesarios para la mejora del servicio existente. Este servicio se encuentra contextualizado en el siguiente marco institucional:

    El servicio se presta, por parte del Centro de Clculo, para la utilizacin del Personal Docente e Investigador (PDI) y del Personal de Administracin y Servicios (PAS) de la Escuela Tcnica Superior de Ingeniera de la Universidad de Sevilla, en Sevilla. Responde al dominio esi.us.es en Internet y da soporte a 600 usuarios, aproximadamente.

    La Universidad de Sevilla (US) es una institucin con ms de cinco siglos de historia, de acreditada tradicin acadmica y que ha sido reconocida como Campus de Excelencia Internacional. Presta un servicio pblico de educacin superior mediante el estudio, la docencia y la investigacin, as como la generacin, desarrollo y difusin del conocimiento al servicio de la Sociedad y de la Ciudadana.

    La Escuela Tcnica Superior de Ingeniera (ETSI) es uno de los centros oficiales de la

    Universidad de Sevilla. Est ubicada en la Isla de la Cartuja, en el que fuera el Pabelln de Amrica durante la Exposicin Universal de 1992. Cuenta en la actualidad con cerca de 6000 alumnos que son formados por ms de 400 profesores, siendo el nmero anual de egresados superior a 400 ingenieros. En ella se imparten 5 titulaciones de grado (Ingeniera en Tecnologas Industriales, Ingeniera de Tecnologas de Telecomunicacin, Ingeniera Qumica, Ingeniera Aeroespacial e Ingeniera Civil) que se complementarn con los msteres correspondientes, 3 titulaciones de grado dentro del Campus de Excelencia Internacional Andaluca Tech (Ingeniera de la Energa, Ingeniera Electrnica, Robtica y Mecatrnica e Ingeniera de Organizacin Industrial) y 7 msteres universitarios.

    El Centro de Clculo (CDC) de la Escuela Tcnica Superior de Ingeniera tiene como objetivo facilitar el soporte informtico y de comunicaciones, necesario para el desarrollo de las actividades docente e investigadora propias de la ETSI. Se encuentra situado en la Entreplanta 2 de la misma, enlazando a travs de un largo pasillo las alas Noreste y Noroeste del edificio que alberga a la ESTI. Consta de 11 aulas de informtica con ms de 350 ordenadores destinados a la docencia y prcticas de las distintas asignaturas que se cursan en ella. Adems da soporte a los ordenadores instalados en las aulas de docencia habitual, con idea de mejorar la calidad de los medios instalados para facilitar las tareas docentes del profesorado.

  • PFC SME del CdC

    2

    Motivacin

    El servicio actual es una solucin modular, basada en Postfix, con un cliente web llamado SquirrelMail, con una versin de 2009. Los principales motivos que fomentan su cambio son:

    La autenticacin del sistema es en texto plano.

    Los correos electrnicos son enviados sin cifrar.

    No permite envo autenticado. Para evitar esta carencia de seguridad, se ha decidido cortar el envo de correos desde el exterior de la red de la Universidad de Sevilla, no siendo posible configurar un cliente para enviar correo desde el exterior, aunque s para recibir.

    El espacio de almacenamiento es muy reducido, 100 MB por usuario.

    Las aplicaciones integradas, calendario, contactos, etc. son precarias y no permiten ninguna sincronizacin con ningn cliente.

    No se dispone de ningn mecanismo de redundancia.

    El sistema de ficheros empleado para el almacenamiento del correo electrnico (llamado mailbox) es muy inestable ante fallos, pudiendo dar lugar a la corrupcin de un buzn completo.

    La interfaz web dista mucho de los sistemas de mensajera electrnica empleados en la actualidad, incluyendo el nuevo sistema de la Universidad de Sevilla.

    Adems, se han producido mejoras en los posibles sistemas sustitutos:

    Han aparecido nuevos recursos de programacin mejorando las interfaces y produciendo un avance significativo en lo que se refiere a esttica y prestaciones. Todo ello brinda numerosas ventajas para el usuario final.

    Las soluciones modulares para implementar un servidor de correo electrnico se han actualizado y han aparecido nuevos mdulos, que aportan distintas mejoras al servicio.

    Las soluciones integradas se han constituido como una forma sencilla, rpida y estable de instalar un servidor de correo electrnico muy completo. Por todo ello, se han decidido evaluar nuevas alternativas que puedan sustituir y mejorar el

    sistema actual, instalado hace ya varios aos.

  • 1. Objetivo

    3

    Requisitos

    Los requisitos que se han exigido para el diseo de este sistema, son los siguientes:

    Virtualizacin, para aprovechar el uso de los equipos y aumentar su productividad.

    Alta disponibilidad, para evitar interrupciones del servicio.

    Autenticacin en envo, por motivos evidentes de seguridad.

    Interfaz web moderna, con una esttica y funcionalidad adecuadas.

    Antivirus y antispam.

    Sistemas de buzones maildir, para evitar corrupcin de un buzn completo.

    Cuotas de usuario.

    Monitorizacin y estadsticas.

    Listas de distribucin automantenidas, ofrecidas bajo determinados requisitos a los usuarios.

    Polticas de servicio, para evitar usos inadecuados del servicio.

    Solucin sin coste de mantenimiento; basada en software libre.

  • PFC SME del CdC

    4

  • 2. Estado del arte

    5

    2. Estado del arte

    El diseo de un servidor de correo electrnico hace referencia a cmo utilizar una solucin software existente para convertir un equipo en un servidor de correo electrnico. Para tomar la decisin sobre qu solucin emplear, se ha de evaluar el estado en el que se encuentran aquellas que sean compatibles con los requisitos de diseo.

    Soluciones modulares

    Las soluciones modulares se basan en la eleccin de un componente para cada una de las aplicaciones que componen el servicio. Posteriormente, habr que configurar todas ellas para que interacten entre s y cumplan el objetivo deseado. Por lo general, resulta una tarea complicada, debido a que la documentacin que se puede encontrar al respecto no hace referencia a las versiones utilizadas de cada aplicacin o no es posible encontrar esas versiones porque estn desactualizadas. Resulta, por tanto, un trabajo difcil, que tiene como ventaja el hecho de poder decidir cmo implementar cada funcin con total libertad. Un ejemplo de solucin modular basada en software libre podra ser la siguiente: Exim + ClamAV + SpamAssasin + Dovecot + STARTTLS + SMTP AUTH + Mailman.

    Exim: intercambiador de correo o MTA (Mail Transfer Agent).

    ClamAV: Antivirus.

    SpamAssasin: Antispam.

    Dovecot: Webmail.

    STARTTLS: Seguridad en la autenticacin.

    SMTP AUTH: Envo autenticado.

    Mailman: Listas de distribucin.

  • PFC SME del CdC

    6

    Soluciones integradas

    Las soluciones integradas son proyectos surgidos de la necesidad de instalar un servidor de correo electrnico sin tener un profundo conocimiento sobre la materia. Las empresas han aprovechado esta circunstancia y han lanzado las ms completas versiones de servidores, con todos sus mdulos perfectamente integrados, formando un conjunto completamente operativo desde el primer momento. Por otro lado, tambin se han desarrollado proyectos de cdigo abierto con el mismo objetivo. Incluso muchas de las empresas mencionadas anteriormente han lanzado versiones de cdigo abierto y gratuitas. El objetivo que se persigue no es ms que mejorar las versiones de pago con la experiencia de los usuarios de las versiones gratuitas. No obstante, el producto, en la mayora de los casos, es completamente funcional, con lo que resulta beneficioso para ambas partes. Algunas de estas soluciones integradas son: Zimbra, Horde, iRedmail, Kolab, Citadel... La mayora de ellas, adems de servidores de correo electrnico, se catalogan como software colaborativos (o groupware) debido a que incluyen multitud de aplicaciones: calendario, contactos, mensajera instantnea, servicio de almacenamiento, herramientas para compartir informacin, etc. Todas estas soluciones integradas se encuentran en un estado muy avanzado y, salvando la ventaja de la personalizacin que permiten las soluciones modulares, son mucho mejor alternativa a la hora de implementar un servidor de correo electrnico. Esto se debe a que permiten dedicar la mayor parte del tiempo y esfuerzo a personalizar y ajustar el sistema final y no a batallar con la integracin de los diferentes componentes.

  • 2. Estado del arte

    7

    Soluciones cloud

    Las soluciones cloud para un servidor de correo consisten en la contratacin de los servidores de un tercero para alojar el dominio deseado. As, el servidor que sirve el dominio es transparente a quien lo contrata. La ventaja que tienen esta clase de servicios es que el servidor, su gestin y dems necesidades son satisfechas por la empresa que nos ofrece el servicio de cloud email. De este tipo de solucin no existen versiones gratuitas ya que requieren del uso de recursos (equipos, mantenimiento, suministro elctrico, etc.) que tienen un coste intrnseco. Estas alternativas estn en un estado completamente maduro de funcionamiento, debido a que existe un gran nmero de empresas que desean el servicio sin tener que mantener sus propios servidores, al igual que con el resto de servicios tipo nube. Algn ejemplo de soluciones cloud seran:

    Google Apps.

    PanTerra Networks.

    Cisco Mail.

    LotusLive iNotes: Webmail.

    Elastic Email.

  • PFC SME del CdC

    8

    Sistemas en produccin de referencia

    Los servicios de correo electrnico ms conocidos que ofrecen sus servicios a los usuarios de Internet son:

    Gmail (de Google): https://www.gmail.com/

    Gmail o Google Mail es un servicio de correo electrnico con posibilidades POP3 e IMAP gratuito proporcionado por la empresa estadounidense Google a partir de abril de 2004 y que ha captado la atencin de los medios de informacin por sus innovaciones tecnolgicas y por su capacidad (inicialmente de 1 GB por usuario, actualmente de 10 GB y creciendo da a da). Tras ms de 5 aos, el servicio de Gmail dej de ser una versin Beta para convertirse en una versin final. Con el enorme despliegue actual de Google y la perfecta integracin de todas sus aplicaciones, Gmail se ha convertido en el correo ms completo e imprescindible. Cuenta con 350 millones de usuarios (enero de 2012).

    Windows Live Hotmail (de Microsoft): https://login.live.com/

    Windows Live Hotmail, anteriormente MSN Hotmail (Hotmail, popularmente), es un servicio gratuito de correo electrnico propiedad de Microsoft. Se puso en marcha en julio de 1996 siendo uno de los primeros servicios de correo electrnico basado en una interfaz web y tambin uno de los primeros gratuitos. Cuenta con 369 millones de usuarios, siendo el ms utilizado. Dispone de 5 GB para cada usuario.

    Yahoo! Mail: https://login.yahoo.com/

    Yahoo! Mail es el servicio de correo electrnico gratuito de Yahoo!. Es uno de los mayores proveedores de correo electrnico de Internet, sirviendo a 310 millones de usuarios. Se puso en funcionamiento en octubre de 1997. Actualmente ofrece almacenamiento ilimitado.

    Ilustracin 1: Logo Gmail

    Ilustracin 2: Logo Hotmail

    Ilustracin 3: Logo Yahoo! Mail

  • 3. Planificacin

    9

    3. Planificacin

    Tareas

    Estado del arte

    Diseo de la solucin Software principal

    Seleccin de candidatos Instalacin de candidatos Evaluacin de candidatos Eleccin del software a implementar

    Sistema bsico Implementacin del sistema sin alta disponibilidad Integracin con utilidades adicionales

    Sistema virtualizado Estudio de las tcnicas de virtualizacin Pruebas de virtualizacin Implementacin del sistema virtualizado sin alta disponibilidad

    Alta disponibilidad Estudio de las tcnicas de alta disponibilidad Pruebas de alta disponibilidad Estudio del sistema en modo multiservidor Implementacin del sistema virtualizado con alta disponibilidad

    Implementacin Implementacin en el entorno de produccin Fase inicial de pruebas Modificaciones y ajustes del sistema (preproduccin) Fase final de pruebas Migracin del sistema anterior Puesta en servicio (produccin) Actualizacin de otros servicios dependientes de este sistema

  • PFC SME del CdC

    10

    Diagrama de Gantt

    Ilustracin 4: Diagrama de Gantt del proyecto

  • 4. Diseo

    11

    4. Diseo

    Marco terico

    Correo electrnico

    El correo electrnico es un servicio que permite intercambiar informacin entre dos personas. Su modo de funcionamiento es similar al del correo postal ya que los mensajes recibidos quedan en un buzn a la espera de que la persona a la que van destinados los consulte. Tanto los buzones como la entrega corren a cargo de lo que se conoce como servidor de correo electrnico.

    Un servidor de correo electrnico es una mquina informtica, conectada a la red a la que da servicio, que realiza dos funciones:

    Intercambia correo con otros servidores de correo, permitiendo as la propagacin del servicio entre distintas redes.

    Almacena los correos de sus usuarios para que puedan ser consultados por ellos. Los mtodos de consulta, a su vez, son dos: Mediante POP (Post Office Protocol), que permite descargar los correos del servidor al

    equipo del usuario. Se puede mantener una copia de lo descargado en el servidor o no, segn la configuracin del cliente y del servidor.

    Mediante IMAP (Internet Message Access Protocol), que tambin descarga los correos del servidor, pero a diferencia de POP, IMAP mantiene sincronizados los cambios que realice el usuario sobre su gestor de correo con los mensajes almacenados en el servidor.

    Estas dos funciones, en un servidor de correo electrnico, se implementan por separado, de forma que se tendr:

    El intercambiador de correo (MTA) es la parte del servidor destinada a intercambiar correo electrnico con otros servidores. Su funcin es recibir y transmitir correos exclusivamente. Una vez recibidos, sern almacenados en los distintos buzones de los usuarios. Ya que se utiliza para comunicar distintos servidores de correo de distintas redes, en su uso en Internet, por ejemplo, debe ser accesible a travs de un recurso de DNS (Domain Name System) llamado MX (Mail Exchanger).

    Acceso remoto mediante una interfaz web, o como se ha comentado antes, webmail. Este servicio no es estrictamente necesario pero, a efectos prcticos, todos los servidores lo implementan por comodidad.

    Una direccin de correo electrnico se compone de un nombre de usuario, un smbolo arroba (@) y un dominio. Dicho dominio identifica, con ayuda del registro MX comentado anteriormente, a qu equipo, y en concreto MTA, debe ser entregado un correo. El nombre de usuario sirve para distinguir a los usuarios dentro del mismo servidor. As, por ejemplo, las direcciones de correo electrnico son nicas en todo Internet: los dominios son nicos pero los nombres de usuario son locales a cada dominio (servidor). As pues, los recursos necesarios para poner en servicio un servidor de correo en Internet

  • PFC SME del CdC

    12

    seran un registro DNS de tipo MX que apunte el nombre de dominio a la IP pblica del equipo y un registro DNS de tipo A tambin apuntando a la misma IP del equipo para poder acceder a la interfaz web.

  • 4. Diseo

    13

    MTA

    Como ya se ha comentado, un componente imprescindible en un servidor de correo electrnico es el MTA. Bsicamente, existen cuatro alternativas fundamentales. Estos MTA son los que usan tanto las soluciones modulares como las integradas.

    POSTFIX EXIM

    Fecha de lanzamiento: 1997 Objetivos: Seguridad y facilidad de uso Licencia: IPL (IBM Public License), en desuso Configuracin: Un solo archivo Seguridad: Muy buena Rendimiento: Excelente URL: http://www.postfix.org

    Fecha de lanzamiento: 1982 Objetivos: MTA de propsito general Licencia: GPL Configuracin: Un solo archivo Seguridad: Buena Rendimiento: Muy buena URL: http://www.exim.org

    QMAIL SENDMAIL

    Fecha de lanzamiento: 1996 Objetivos: Seguridad, simplicidad y eficiencia Licencia: De dominio pblico Configuracin: Varios archivos sencillos Seguridad: Buena Rendimiento: Excelente URL: http://www.qmail.org

    Fecha de lanzamiento: 1982 Objetivos: Compatibilidad hacia atrs Licencia: BOS (Bespoke Open Source) Configuracin: Un solo archivo Seguridad: No muy buena Rendimiento: Aceptable URL: http://www.sendmail.org

    Ilustracin 5: Logo Postfix Ilustracin 6: Logo Exim

    Ilustracin 7: Logo Qmail Ilustracin 8: Logo Sendmail

  • PFC SME del CdC

    14

    Virtualizacin

    La virtualizacin es una tcnica informtica que permite la creacin de varios equipos ficticios sobre un mismo equipo o agrupar varios equipos fsicos en uno virtual de mayor capacidad. En cualquier caso, al nuevo equipo ficticio se le denomina mquina virtual (VM, Virtual Machine) y al equipo capaz de alojar mquinas virtuales se le conoce como hipervisor (hypervisor o Virtual Machine Monitor, VMM). Una de las principales ventajas que permite esta tcnica es el aprovechamiento de los recursos de un equipo. Las distintas mquinas virtuales alojadas en un hipervisor tendrn definidos unos recursos mximos a los cuales pueden acceder. Posteriormente, el hipervisor, en funcin del uso que est haciendo cada mquina, asignar dinmicamente los recursos (algunos) que considere adecuados a cada mquina virtual. De esta forma, podrn tenerse en un mismo hipervisor distintas mquinas virtuales (con distintos servicios) mejorando el aprovechamiento de recursos del hipervisor. Este hecho tiene como consecuencia directa un ahorro econmico y espacial muy importante. Adems, cada mquina virtual ser independiente de otra, pudiendo ejecutar distintos sistemas operativos, servicios, aplicaciones, etc. En general, las ventajas que aporta la virtualizacin sern las siguientes:

    Aprovechamiento de recursos.

    Aislamiento de distintos servicios en distintos equipos (mquinas virtuales) para evitar que el fallo o sobrecarga de un servicio afecte a los dems.

    Modificacin de los recursos asignados a una mquina virtual de forma rpida.

    Reduccin de costes espaciales y de consumo.

    Centralizacin de la administracin global.

  • 4. Diseo

    15

    Alta disponibilidad

    La alta disponibilidad es un concepto que, en el contexto informtico, se refiere a la prestacin de un servicio an cuando el equipo destinado a darlo pasa a estar indisponible. Para ello, har falta otro equipo redundante que est listo para dar el servicio, pero inactivo. Debido a que el servicio prestado debe ser el mismo para ambos equipos, es necesario que existan unos recursos compartidos por ambos. Asimismo, debe haber intercomunicacin entre los dos equipos para que uno pueda reaccionar ante los eventos del otro. En adelante, siempre que se hable de alta disponibilidad se dar por hecho que se trata de un equipo que da el servicio con otro que est a la espera de que el primero falle para sustituirlo en la prestacin del servicio. Los recursos compartidos sern, en el escenario ms bsico, los siguientes:

    Direccin IP, de dominio pblico, que estar asociada al servicio propiamente dicho. Este recurso ser esttico; siempre ser la misma IP aunque la usen distintos equipos de manera alternativa.

    Datos necesarios para prestar el servicio. Existen dos opciones distintas para estos datos: Servicio cuyos datos son invariantes, con lo que no se hace necesaria la presencia de un

    sistema de ficheros compartidos. Cada equipo tendr una rplica de los datos necesarios para prestarlo. Esta situacin es bastante poco comn ya que la mayor parte de los servicios requieren interaccin con el usuario y, probablemente, generarn nuevos datos necesarios para seguir dando el servicio.

    Servicios cuyos datos varan mientras se da el servicio, por lo que deben ser accesibles por los dos equipos de forma alternativa, segn cual tenga el servicio activo. Esta situacin es la ms comn ya que abarca la mayora de los servicios ms habituales.

    Escenario bsico para prestar un servicio de alta disponibilidad con datos dinmicos:

    Cuando un equipo se vuelve indisponible, ya sea debido a una interrupcin elctrica, a un

    Ilustracin 9: Situacin inicial Ilustracin 10: Fallo del equipo principal

  • PFC SME del CdC

    16

    fallo de red o a un fallo (software o hardware), el otro equipo lo detecta y asume el rol del primero. Para ello, activa la IP del servicio en su interfaz hacia la red pblica y, haciendo uso de los datos almacenados en el sistema de ficheros compartido, inicia el servicio y comienza a prestarlo (situacin del escenario 2).

    Posteriormente, debido a la interaccin manual de una persona, el reinicio del sistema operativo o la reparacin adecuada, si el primer equipo volviera a estar disponible, volvera a tomar el rol de activo, pasando el segundo equipo a estar inactivo (caso del escenario 3). En este sentido, podramos hablar de equipo primario y secundario. Es importante destacar, que no tiene por qu ser as. Es decir, el equipo activo en un momento dado podra seguir prestando el servicio de forma indefinida, sin importar si el otro se repone. Todo ello depender de la configuracin general del sistema. Por ltimo, en caso de que ambos equipos estn activos y el equipo secundario se desactive por cualquier motivo, el primer equipo detectar qu ocurre, pero el servicio no se ver afectado (caso del escenario 4). Tan slo se perder la redundancia mientras que el equipo secundario permanezca inactivo. Esta situacin puede ser idnea para realizar copias de seguridad del sistema, parando un equipo y replicando el otro mientras se sigue prestando el servicio sin interrupciones.

    Ilustracin 11: Restablecimiento del equipo principal

    Ilustracin 12: Fallo del equipo de reserva

  • 5. Implementacin

    17

    5. Implementacin

    Solucin software escogida

    Despus de haber hecho un anlisis sobre las distintas alternativas software, se ha decidido usar Zimbra como servidor de correo electrnico para implementar el sistema de mensajera del centro de clculo. Las alternativas evaluadas han sido:

    Soluciones modulares: Exim + ClamAV + SpamAssasin + Dovecot + STARTTLS + SMTP AUTH + Mailman: Esta

    solucin est basada en los mdulos ms conocidos.

    Soluciones integradas: iRedMail: Utiliza Postfix como MTA. Es de cdigo abierto. Es una solucin integrada y se

    anuncia como libre. Sin embargo, la parte gratuita es la integracin ya realizada de todos los paquetes, prcticamente los mismos que en la solucin modular mencionada anteriormente. Una vez integrados todos los paquetes, desde iRedMail se vende una interfaz de configuracin y administracin que aporta numerosas ventajas y posibilidades.

    Zimbra: Utiliza Postfix como MTA. Es un software colaborativo. Incluye varias funciones adems del correo electrnico. Tiene una versin de cdigo abierto que incluye una versin completa del sistema. Presenta una serie de limitaciones pero ninguna en la prestacin del servicio. Algunas de ellas: no se pueden eliminar los logotipos de Zimbra, no incluye funciones avanzadas (por ejemplo, configuraciones de cluster), etc.

    Horde: Utiliza Postfix como MTA. Al igual que Zimbra, se trata de un software colaborativo de cdigo abierto. Est distribuido en mdulos propios, facilitando una instalacin modular sus distintos componentes.

    Soluciones cloud: no han sido evaluadas ya que no son compatibles con los requisitos de coste requeridos.

    Antes de tomar una decisin definitiva, se redujo la lista de candidatos a dos: iRedMail y Zimbra. El descarte de la solucin modular se debe a que Postfix y Exim tienen un rendimiento similar, con lo cual, la solucin modular e iRedMail son prcticamente la misma, con el inconveniente de que en la solucin modular es necesaria la instalacin e integracin de los paquetes uno a uno. Por tanto se descarta la solucin modular frente a iRedMail. Horde se desecha al compararlo con Zimbra. Zimbra tiene una comunidad inmensa, donde los desarrolladores participan activamente, resolviendo dudas concretas, haciendo seguimiento de errores conocidos y facilitando soluciones a cualquier tipo de configuracin que no est englobada en las versiones de pago de Zimbra. Sin embargo, la informacin relativa a Horde es ms escasa y aunque tambin cuenta con una comunidad, no es tan completa. La informacin y la diversidad son fundamentales desde el punto de vista del desarrollo de una solucin concreta, como la que nos ocupa. Por tanto, de entre estas dos soluciones integradas, se prefiere Zimbra. Tras realizar las instalaciones y configuraciones bsicas de iRedMail y Zimbra, finalmente se

  • PFC SME del CdC

    18

    opta por Zimbra (http://www.zimbra.com). A continuacin se puede ver una tabla comparativa de ambos en cuantos a los requisitos

    del proyecto:

    Requisitos iRedMail Zimbra

    Autenticacin en envo

    Accesibilidad completa WEBMAIL y cliente

    Filtros antispam, correo basura, virus

    Integracin de servicios (webdav)

    Sistema de buzones por mails

    Cuotas de usuario y carpetas

    Monitorizacin y estadsticas

    Listas de distribucin automantenidas (mailman)

    (mailman)

    Virtualizacin

    Tabla 1: Comparativa entre iRedmail y Zimbra

    Los motivos que condujeron a la decisin final de elegir Zimbra son los siguientes:

    Integracin perfecta entre los distintos mdulos, ya que han sido ajustados por Zimbra para que encajen adecuadamente.

    Amplia comunidad de consulta.

    Wiki propia con instrucciones, configuraciones, mtodos de importacin y casi cualquier problema ya resuelto.

    Todo integrado: Correo electrnico, calendario, contactos, tareas, almacenamiento.

    Interfaz web muy potente, elaborada con AJAX (Asynchronous JavaScript And XML). Permite una multitud de funciones tales como: arrastrar y soltar, men en el botn derecho, versin mvil, versin ligera (html), etc. Adems, la interfaz web integra todas las aplicaciones con una gran interoperabilidad entre todas ellas.

    Rendimiento probado en numerosos escenarios, siendo la versin bsica, instalada en un nico servidor, capaz de dar servicio a varios miles de usuarios.

    Galera de extensiones (Zimlets) de instalacin trivial, con actualizaciones constantes.

    Instalacin sencilla.

    Numerosos casos de xito.

    Todos los requisitos satisfechos.

    La versin elegida es ZCS (Zimbra Collaboration Server) Open Source Edition 7.1.4, la ms reciente.

  • 5. Implementacin

    19

    Zimbra

    La empresa Zimbra (http://www.zimbra.com) fue comprada por Yahoo! (http://www.yahoo.com) en 2007. Poco despus de mejorar su propio correo electrnico y dejarlo muy parecido al de Zimbra, en 2010 Yahoo! vendi Zimbra a VMWare (http://www.vmware.com).

    La versin de cdigo abierto se ofrece bajo la licencia ZPL (Zimbra Public License), derivada de CPL (Common Public License) y MPL (Mozilla Public License). La versin de cdigo abierto hace uso de los siguientes proyectos tambin de cdigo abierto:

    Postfix

    MySQL

    OpenLDAP

    Jetty

    Lucene

    ClamAV

    SpamAssasin

    Amavisd y Amavisd-new

    DSPAM

    Aspell

    James

    Sieve

    nginx

    Ilustracin 13: Logo Zimbra

    Ilustracin 14: Zimbra Collaboration Server Open Source Edition

  • PFC SME del CdC

    20

    Mailman

    Para cumplir adecuadamente con los requisitos, se hace necesaria la utilizacin de Mailman (http://www.gnu.org/software/mailman/index.html) integrado con Zimbra. Mailman es un gestor de listas de distribucin con licencia GNU GPL. La ventaja de este sistema frente al que incluye Zimbra de forma integrada, es la posibilidad de que distintos usuarios gestionen distintas listas. As, en Zimbra, si se desea aadir una persona a una lista de distribucin, deber ser el administrador quien se encargue de hacerlo. Mientras que Mailman cuenta con una interfaz de gestin web preparada para definir mltiples administradores de las distintas listas de distribucin y un nico administrador del sistema (el encargado de crear y eliminar listas), de forma tal que se pueden considerar listas de distribucin automantenidas (requisito del proyecto). La instalacin depender de si se va a realizar sobre una instalacin bsica de Zimbra o si se va a instalar sobre una instalacin multiservidor.

    Ilustracin 15: Logo Mailman (antiguo) Ilustracin 16: Logo Mailman

  • 5. Implementacin

    21

    Z-Push

    La versin de cdigo abierto de Zimbra no incluye el servicio de sincronizacin de contactos, tareas y correo electrnico, conocido como Exchange, para dispositivos mviles. Aunque s permitira esta sincronizacin haciendo uso de IMAP, CalDav (para la agenda) y CardDav (para los contactos), es difcil encontrar aplicaciones gratuitas que lo permitan. Z-Push (http://z-push.sourceforge.net/soswp/) es un proyecto de cdigo abierto que implementa un Exchange usando Microsoft ActiveSync. El funcionamiento de Z-Push, est basado en mdulos (conocidos como backends) que implementan la interaccin con los distintos sistemas comerciales existentes.

    Z-Push Zimbra Backend (http://sourceforge.net/projects/zimbrabackend/) es una implementacin de cdigo abierto de un backend mediante el cual puede usarse Z-Push sobre Zimbra. La instalacin se debe realizar en un servidor distinto a Zimbra, ya que z-push necesita apache y apache es incompatible con Zimbra (debido a que Zimbra utiliza su propio apache). No obstante, puede configurarse la instalacin de Zimbra para que coexista con apache, aunque no es recomendable. Debido a que la instalacin definitiva que se va a emplear de Zimbra ser multiservidor, como se comentar ms adelante, el servidor MTA de Zimbra ser el escenario perfecto para instalar Z-Push, ya que en l Zimbra no estar usando apache y, por tanto, no habr incompatibilidad.

    Ilustracin 17: Logo Z-Push

    Ilustracin 18: Logo Zimbra backend

  • PFC SME del CdC

    22

    Correo electrnico: instalacin bsica

    Se va a analizar cmo se realiza la instalacin de ZCS OS 7.1.4 (Zimbra a partir de ahora) para un nico servidor. Se implementar esta instalacin sobre Ubuntu Server 10.04.3 LTS para 64 bits (http://www.ubuntu.com/). La decisin de utilizar este sistema operativo est fundamentada en que el centro de clculo utiliza habitualmente Debian. ZCS OS 7.1.4 no est recomendado sobre Debian y Ubuntu es la alternativa con mayor afinidad a Debian. En primer lugar, se debe descargar la instalacin de la pgina web de Zimbra (www.zimbra.com), para ello:

    Posteriormente, se descomprime:

    Es necesario instalar, como root, los siguientes paquetes:

    Una vez instalados, ya es posible instalar Zimbra. No obstante, la instalacin hace una comprobacin sobre el nombre del equipo (hostname). Dicho nombre debe ser de tipo FQDN (Fully Qualified Domain Name), es decir, de la forma nombrepropio.subdominio.dominio. Es un requisito indispensable para continuar la instalacin. La motivacin de esto es evitar errores derivados de que el equipo no est correctamente identificado. Adems, es muy recomendable que se haga uso de un nombre asociado a un DNS. La instalacin har una peticin DNS para comprobarlo y permitir continuar si no es as aunque no sea lo ideal. Para satisfacer esto, habra que ajustar los siguientes ficheros del sistema operativo:

    /etc/hostname

    /etc/hosts

    Ahora:

    Aceptamos la licencia e instalamos todos los paquetes con [Y] por defecto: ldap, logger, mta, snmp, store, apache y spell.

    wget http://files2.zimbra.com/downloads/7.1.4_GA/\ zcs-7.1.4_GA_2555.UBUNTU10_64.20120105094803.tgz

    tar xvfz zcs-7.1.4_GA_2555.UBUNTU10_64.20120105094803.tgz

    apt-get install sysstat sqlite3

    - nombre_no_FDQN #se elimina esta lnea + nombrepropio.subdominio.dominio #se aade esta lnea

    + IP_del_equipo nombrepropio.subdominio.dominio nombrepropio

    cd zcs-7.1.4_GA_2555.UBUNTU10_64.20120105094803 ./install.sh

  • 5. Implementacin

    23

    Autorizamos que se modifique el sistema y llegamos a la pantalla de configuracin de la instalacin:

    (contina en la siguiente pgina)

    Checking for installable packages

    Found zimbra-core Found zimbra-ldap Found zimbra-logger Found zimbra-mta Found zimbra-snmp Found zimbra-store Found zimbra-apache Found zimbra-spell

    Select the packages to install

    Install zimbra-ldap [Y] y Install zimbra-logger [Y] y Install zimbra-mta [Y] y Install zimbra-snmp [Y] y Install zimbra-store [Y] y Install zimbra-apache [Y] y Install zimbra-spell [Y] y Checking required space for zimbra-core checking space for zimbra-store

    Installing: zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell

    Main menu

    1) Common Configuration:

    +Hostname: mailhost.example.com +Ldap master host: mailhost.example.com +Ldap port: 389 +Ldap Admin password: set +Secure interprocess communications: yes +TimeZone: America/Los_Angeles

    2) zimbra-ldap: Enabled +Status Enabled +Create Domain: yes +Domain to create: mailhost.example.com +Ldap root password: set +Ldap replication password: set +Ldap postfix password: set +Ldap amavis password: set +Ldap nginx password: set

  • PFC SME del CdC

    24

    Las lneas marcadas con **** al inicio indican que necesitan ser revisadas para completar la configuracin. Para el correcto funcionamiento del sistema, tan slo habra que definir la contrasea de administrador, en zimbra-store (3) => admin password (4). No obstante, sera adecuado configurar las contraseas de administracin de LDAP y los dems servicios del men zimbra-ldap (2). Para ello configuramos adecuadamente las opciones:

    ldap root password (4)

    ldap replication password (5)

    ldap postfix password (6)

    ldap amavis password (7)

    ldap nginx password (8) Podemos definir la zona horaria en common configuration (1) => timezone (6), aunque

    3) zimbra-store: Enabled +Status Enabled +Create Admin User: yes +Admin user to create: [email protected] ******* +Admin Password UNSET +Anti-virus quarantine user: [email protected] +Enable automated spam training: yes +Spam training user [email protected] +Non-spam(Ham) training user: [email protected] +SMTP host: mailhost.example.com +Web server HTTP port: 80 +Web server HTTPS port: 443 +Web server mode: http +IMAP server port: 143 +IMAP server SSL port: 993 +POP server port: 110 +POP server SSL port: 995 +Use spell check server: yes +Spell server URL: http://mailhost.example.com:7780/aspell.php +Configure for use with mail proxy: FALSE +Configure for use with web proxy: FALSE +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: [email protected] +Version update source email: [email protected]

    4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-logger: Enabled 7) zimbra-spell: Enabled 8) zimbra-convertd: Enabled 9) Default Class of Service Configuration: 10) Enable default backup schedule: yes c) Collapse menu r) Start servers after configuration: yes s) Save config to file q) Quit

  • 5. Implementacin

    25

    tambin se puede ajustar posteriormente. Finalmente, en zimbra-ldap (2) => domain to create (3) tenemos el nombre de dominio que se va a crear. Al acabar, pulsamos la opcin apply (letra a), que solo aparecer cuando no haya lneas marcadas con ****. Al concluir la instalacin, estara instalado y funcionando el servidor de correo electrnico de Zimbra. La informacin bsica para poder gestionarlo:

    Estado del servicio. Ejecutando:

    Parar el servicio. Ejecutando:

    Iniciar el servicio. Ejecutando:

    Reiniciar el servicio. Ejecutando:

    Interfaz de usuario:

    Consola de administracin:

    service zimbra status

    service zimbra stop

    service zimbra start

    service zimbra restart

    http://mailhost.example.com/

    https://mailhost.example.com:7071/zimbraAdmin/

  • PFC SME del CdC

    26

    Instalacin e integracin de mailman

    Como se ha comentado en el diseo de la solucin, se va a integrar mailman con Zimbra. Para ello, ser necesario tener el siguiente script:

    /root/mailman.sh (permisos 777)

    (contina en la siguiente pgina)

    #!/bin/sh # Script para la instalacion de mailman con zimbra if [ $# -gt "1" ]; then echo "USO: instalacionmailman.sh" echo "ejemplo: instalacionmailman.sh (para un unico servidor en el sistema)" echo "USO: instalacionmailman.sh nombre_servidor" echo "ejemplo: instalacionmailman.sh servidor.dominio.com" else #******************* Nombre del servidor ********************* if [ $# -eq "0" ]; then SERVIDOR=$(sudo -u zimbra /opt/zimbra/bin/zmprov gad) echo "Mailman se instalara para el siguiente servidor:" echo $SERVIDOR echo "si es correcto pulse ENTER, si no CONTROL-C" echo "y ejecute: instalacionmailman.sh nombre_servidor" read variable else SERVIDOR=$1 fi echo $SERVIDOR #************************************************************* apt-get update apt-get install python-dev make chkconfig adduser --no-create-home --disabled-login mailman #***************** Instalacion de mailman ******************* cd /usr/local/ wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.14-1.tgz #procede si el tamano de la instalacion de mailman es correcto if [ $(ls -l mailman-2.1.14-1.tgz | awk '{print $5-8201307}') -eq "1" ]; then mkdir mailman chgrp mailman mailman chmod a+rx,g+ws mailman tar xvfz mailman-2.1.14-1.tgz cd mailman-2.1.14-1 ./configure --with-cgi-gid=zimbra make install cd / rm /usr/local/mailman-2.1.14-1.tgz rm -r /usr/local/mailman-2.1.14-1 #*************************************************************** cd /usr/local/mailman/archives chown zimbra private chmod o-x private /usr/local/mailman/bin/check_perms -f /usr/local/mailman/bin/check_perms -f cp /opt/zimbra/conf/httpd.conf /opt/zimbra/conf/httpd.confBK #*************** Modificacion de httpd.conf ******************** echo "ServerName ${SERVIDOR}" >> /etc/apache2/httpd.conf echo >> /opt/zimbra/conf/httpd.conf echo "ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/" >> /opt/zimbra/conf/httpd.conf

  • 5. Implementacin

    27

    (contina en la siguiente pgina)

    echo >> /opt/zimbra/conf/httpd.conf echo "" >> /opt/zimbra/conf/httpd.conf echo "AllowOverride None" >> /opt/zimbra/conf/httpd.conf echo "Options ExecCGI" >> /opt/zimbra/conf/httpd.conf echo "Order allow,deny" >> /opt/zimbra/conf/httpd.conf echo "Allow from all" >> /opt/zimbra/conf/httpd.conf echo "" >> /opt/zimbra/conf/httpd.conf echo >> /opt/zimbra/conf/httpd.conf echo "Alias /pipermail/ /usr/local/mailman/archives/public/" >> /opt/zimbra/conf/httpd.conf echo >> /opt/zimbra/conf/httpd.conf echo "" >> /opt/zimbra/conf/httpd.conf echo "Options Indexes MultiViews FollowSymLinks" >> /opt/zimbra/conf/httpd.conf echo "AllowOverride None" >> /opt/zimbra/conf/httpd.conf echo "Order allow,deny" >> /opt/zimbra/conf/httpd.conf echo "Allow from all" >> /opt/zimbra/conf/httpd.conf echo "" >> /opt/zimbra/conf/httpd.conf echo >> /opt/zimbra/conf/httpd.conf echo "RedirectMatch ^/mailman[/]*$ http://${SERVIDOR}:7780/mailman/listinfo" >> /opt/zimbra/conf/httpd.conf echo >> /opt/zimbra/conf/httpd.conf chown zimbra:zimbra /opt/zimbra/conf/httpd.conf chmod 444 /opt/zimbra/conf/httpd.conf #************************************************************** cd /opt/zimbra/httpd/htdocs mkdir mmimages cp /usr/local/mailman/icons/* mmimages/ sudo -u zimbra /opt/zimbra/bin/zmapachectl stop sudo -u zimbra /opt/zimbra/bin/zmapachectl start cp /opt/zimbra/postfix/conf/main.cf /opt/zimbra/postfix/conf/main.cfBK #***************** Modificacion de main.cf ******************** cat /opt/zimbra/postfix/conf/main.cf | awk '{if($1=="virtual_alias_maps"){ print "virtual_alias_maps = ldap:/opt/zimbra/conf/ldap-vam.cf"} else{ print $0}}' > prueba.txt mv prueba.txt /opt/zimbra/postfix/conf/main.cf cat /opt/zimbra/postfix/conf/main.cf | awk '{if($1=="alias_maps"){ print "alias_maps = hash:/etc/aliases,hash:/usr/local/mailman/data/aliases"} else{ print $0}}' > prueba.txt mv prueba.txt /opt/zimbra/postfix/conf/main.cf chown zimbra:zimbra /opt/zimbra/postfix/conf/main.cf chmod 644 /opt/zimbra/postfix/conf/main.cf #************************************************************** echo >> /usr/local/mailman/Mailman/mm_cfg.py echo "MTA = 'Postfix'" >> /usr/local/mailman/Mailman/mm_cfg.py echo "POSTFIX_ALIAS_CMD = '/opt/zimbra/postfix/sbin/postalias'" >> /usr/local/mailman/Mailman/mm_cfg.py echo "POSTFIX_MAP_CMD = '/opt/zimbra/postfix/sbin/postmap'" >> /usr/local/mailman/Mailman/mm_cfg.py echo "IMAGE_LOGOS = '/mmimages/'" >> /usr/local/mailman/Mailman/mm_cfg.py echo "DEFAULT_URL_PATTERN = 'http://%s:7780/mailman/'" >> /usr/local/mailman/Mailman/mm_cfg.py /usr/local/mailman/bin/newlist mailman /usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman /usr/local/mailman/bin/genaliases /opt/zimbra/postfix-2.7.4.2z/sbin/newaliases

  • PFC SME del CdC

    28

    Basta con ejecutarlo y seguir las instrucciones para la correcta instalacin de mailman y su integracin con Zimbra.

    chown mailman:mailman /usr/local/mailman/data/aliases* chown mailman:mailman /usr/local/mailman/data/virtual-mailman* cd /usr/local/mailman/cron crontab -u mailman crontab.in cp /usr/local/mailman/scripts/mailman /etc/init.d chkconfig --add mailman cp /opt/zimbra/conf/zmmta.cf /opt/zimbra/conf/zmmta.cfBK #***************** Modificacion de zmmta.cf ******************** cat /opt/zimbra/conf/zmmta.cf | awk '{if($0=="\t\tPOSTCONF mydestination VAR zimbraMtaMyDestination"){ print "\t\tPOSTCONF mydestination LOCAL postfix_mydestination"} else{ print $0}}' > prueba.txt mv prueba.txt /opt/zimbra/conf/zmmta.cf cat /opt/zimbra/conf/zmmta.cf | awk '{if($1=="POSTCONF" && $2=="alias_maps"){ print "#"$0} else{ print $0}}' > prueba.txt mv prueba.txt /opt/zimbra/conf/zmmta.cf chown zimbra:zimbra /opt/zimbra/conf/zmmta.cf chmod 444 /opt/zimbra/conf/zmmta.cf #************************************************************** /etc/init.d/mailman stop; /etc/init.d/mailman start /etc/init.d/zimbra stop; /etc/init.d/zimbra start echo "sudo -u zimbra /opt/zimbra/bin/zmlocalconfig -e postfix_mydestination='localhost ${SERVIDOR}'" > /1.txt sh /1.txt rm /1.txt else echo "Error en la descarga" fi clear echo "Instalacion correcta" echo "Puede comprobar el correcto funcionamiento del servicio en la url:" echo "http://${SERVIDOR}:7780/mailman/listinfo" fi

  • 5. Implementacin

    29

    Instalacin de Z-Push

    Como se ha comentado en el diseo de la solucin, se va a hacer uso de Z-Push para el intercambio con dispositivos mviles. En una instalacin bsica de Zimbra, Z-Push deber ser instalado en otro servidor distinto al de Zimbra. Para la instalacin, puede hacerse uso del siguiente script, teniendo apache2 ya instalado:

    /root/z-push.sh (permisos 777)

    (contina en la siguiente pgina)

    #!/bin/sh cd /root/; mkdir zpushTempinstall; cd zpushTempinstall apt-get install -y subversion php5-curl mkdir /var/www/z-push svn checkout svn://svn.berlios.de/z-push/branches/as12.1 /var/www/z-push mkdir /var/www/z-push/zimbra svn checkout https://zimbrabackend.svn.sourceforge.net/svnroot/zimbrabackend/zimbra-backend/branches/as12.1 /var/www/z-push/zimbra mkdir /var/www/z-push/backend-old mv /var/www/z-push/backend/* /var/www/z-push/backend-old mv /var/www/z-push/backend-old/backend.php /var/www/z-push/backend/ mv /var/www/z-push/backend-old/diffbackend.php /var/www/z-push/backend/ mv /var/www/z-push/zimbra/zimbra.php /var/www/z-push/backend/ chgrp www-data /var/www/z-push/state chmod g+w /var/www/z-push/state touch /var/www/z-push/debug.txt chmod 777 /var/www/z-push/debug.txt #ajusta configuracion de z-push para usar el backend de zimbra fechaunica1=`date +%s` sleep 1 fechaunica2=`date +%s` touch $fechaunica1 touch $fechaunica2 cat /var/www/z-push/config.php | awk '{if($1!="$BACKEND_PROVIDER"){print $0}else{print "\t$BACKEND_PROVIDER = \"BackendZimbra\";"}}' > $fechaunica1 cat $fechaunica1 | sed 's/Europe\/Berlin/Europe\/Madrid/g' > $fechaunica2 cat $fechaunica2 | awk -F \' '{if($2!="PROVISIONING"){print $0}else{print $1"\x27"$2"\x27, false);"}}' > $fechaunica1 cat $fechaunica1 | awk '{if($1!="?>"){print $0}else{}}' > $fechaunica2 echo "define('ZIMBRA_DEBUG',true);" >> $fechaunica2 echo "define('ZIMBRA_URL', 'https://mbxetsi.us.es');" >> $fechaunica2 echo "define('ZIMBRA_USER_DIR', 'zimbra');" >> $fechaunica2 echo "define('ZIMBRA_SYNC_CONTACT_PICTURES', true);" >> $fechaunica2 echo "define('ZIMBRA_VIRTUAL_CONTACTS',true);" >> $fechaunica2 echo "define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);" >> $fechaunica2 echo "define('ZIMBRA_VIRTUAL_TASKS',true);" >> $fechaunica2 echo "define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);" >> $fechaunica2 echo "define('ZIMBRA_HTML',true);" >> $fechaunica2 echo >> $fechaunica2 echo "?>" >> $fechaunica2 cat $fechaunica2 > /var/www/z-push/config.php rm $fechaunica1; rm $fechaunica2 #sitio disponible z-push con puerto 80 echo "" > /etc/apache2/sites-available/z-push echo "ServerAdmin [email protected]" >> /etc/apache2/sites-available/z-push echo "ServerName etsi.us.es" >> /etc/apache2/sites-available/z-push echo >> /etc/apache2/sites-available/z-push echo "DirectoryIndex index.php" >> /etc/apache2/sites-available/z-push echo "DocumentRoot /var/www/z-sync/" >> /etc/apache2/sites-available/z-push echo "Alias /Microsoft-Server-ActiveSync /var/www/z-sync/index.php" >> /etc/apache2/sites-available/z-push

  • PFC SME del CdC

    30

    (contina en la siguiente pgina)

    echo >> /etc/apache2/sites-available/z-push echo "" >> /etc/apache2/sites-available/z-push echo "AllowOverride All" >> /etc/apache2/sites-available/z-push echo "" >> /etc/apache2/sites-available/z-push echo >> /etc/apache2/sites-available/z-push echo "php_flag magic_quotes_gpc off" >> /etc/apache2/sites-available/z-push echo "php_flag register_globals off" >> /etc/apache2/sites-available/z-push echo "php_flag magic_quotes_runtime off" >> /etc/apache2/sites-available/z-push echo "php_flag short_open_tag on" >> /etc/apache2/sites-available/z-push echo >> /etc/apache2/sites-available/z-push echo "ErrorLog /var/log/apache2/z-sync/error.log" >> /etc/apache2/sites-available/z-push echo "CustomLog /var/log/apache2/z-sync/access.log combined" >> /etc/apache2/sites-available/z-push echo "" >> /etc/apache2/sites-available/z-push #sitio disponible z-push con SSL y puerto 443 echo "" > /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "ServerAdmin [email protected]" >> /etc/apache2/sites-available/z-push_ssl echo "ServerName etsi.us.es" >> /etc/apache2/sites-available/z-push_ssl echo "DirectoryIndex index.php" >> /etc/apache2/sites-available/z-push_ssl echo "DocumentRoot /var/www/z-push/" >> /etc/apache2/sites-available/z-push_ssl echo "Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "AllowOverride None" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "php_flag magic_quotes_gpc off" >> /etc/apache2/sites-available/z-push_ssl echo "php_flag register_globals off" >> /etc/apache2/sites-available/z-push_ssl echo "php_flag magic_quotes_runtime off" >> /etc/apache2/sites-available/z-push_ssl echo "php_flag short_open_tag on" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "ErrorLog /var/log/apache2/z-push/error.log" >> /etc/apache2/sites-available/z-push_ssl echo "CustomLog /var/log/apache2/z-push/access.log combined" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "SSLEngine on" >> /etc/apache2/sites-available/z-push_ssl echo "SSLCertificateFile /etc/apache2/ssl/web.crt" >> /etc/apache2/sites-available/z-push_ssl echo "SSLCertificateKeyFile /etc/apache2/ssl/server.key" >> /etc/apache2/sites-available/z-push_ssl echo "SSLCertificateChainFile /etc/apache2/ssl/ca.crt" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "SSLCACertificateFile /etc/apache2/ssl/ca.crt" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl echo "" >> /etc/apache2/sites-available/z-push_ssl #activa por defecto el seguro y pasa a generar los certificados cd /etc/apache2/sites-enabled ln -s ../sites-available/z-push_ssl z-push_ssl #activa el modulo ssl y php cd /etc/apache2/mods-enabled ln -s ../mods-available/ssl.conf ssl.conf ln -s ../mods-available/ssl.load ssl.load if [ -e /etc/apache2/mods-available/php5.conf ]; then echo > /dev/null else

  • 5. Implementacin

    31

    (contina en la siguiente pgina)

    echo "" > /etc/apache2/mods-available/php5.conf echo " AddType application/x-httpd-php .php .phtml .php3" >> /etc/apache2/mods-available/php5.conf echo " AddType application/x-httpd-php-source .phps" >> /etc/apache2/mods-available/php5.conf echo "" >> /etc/apache2/mods-available/php5.conf fi if [ -e /etc/apache2/mods-available/php5.load ]; then echo > /dev/null else echo "LoadModule php5_module /usr/lib/apache2/modules/libphp5.so" > /etc/apache2/mods-available/php5.load fi ln -s ../mods-available/php5.conf php5.conf ln -s ../mods-available/php5.load php5.load rm /etc/apache2/sites-available/default-ssl echo "La instalacion de z-push ha finalizado correctamente para el puerto 443, mediante SSL" echo "Si desea generar los certificados autofirmados para poder usar apache con SSL pulse cualquier tecla" echo "En caso contrario, pulse CONTROL+C para salir." read variable #generacion de certificados mkdir /root/ssl cd /root/ssl echo "Generamos la clave de CA:"; echo "Se debe introducir una clave cuando se solicite"; echo openssl genrsa -des3 -out ca.key 2048 echo; echo "Proceso de generacin de clave de CA finalizado. Pulse para continuar..." read variable clear echo "Generamos el certificado de CA:"; echo "Se debe introducir la clave anterior cuando se solicite"; echo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt echo; echo "Proceso de generacin de certificado de CA finalizado. Pulse para continuar..." read variable clear echo "Generamos la clave de servidor:"; echo "Se debe introducir una clave cuando se solicite"; echo openssl genrsa -des3 -out server.key 1024 echo; echo "Proceso de generacin de clave de servidor finalizado. Pulse para continuar..." read variable clear echo "Generamos la peticion de certificado de servidor:"; echo "IMPORTANTE: "Common name" debe ser el nombre FQDN del servidor"; echo openssl req -new -key server.key -out web.csr echo; echo "Proceso de generacin de peticion de certificado de servidor finalizado. Pulse para continuar..." read variable clear echo "Generamos el certificado de servidor:"; echo "Se debe introducir la clave anterior cuando se solicite"; echo openssl x509 -req -in web.csr -out web.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 echo; echo "Proceso de generacin de certificado de servidor finalizado. Pulse para continuar..." read variable; clear mv server.key server.key.secure echo "Reducimos la seguridad de la clave para poder cargar el servicio sin interaccion humana:"; echo "Se debe introducir la clave anterior cuando se solicite"; echo

  • PFC SME del CdC

    32

    openssl rsa -in server.key.secure -out server.key echo; echo "Proceso finalizado. Pulse para continuar..." read variable chmod 0400 *.key mkdir /etc/apache2/ssl cp web.crt /etc/apache2/ssl/web.crt cp ca.crt /etc/apache2/ssl/ca.crt cp server.key /etc/apache2/ssl/server.key service apache2 restart clear echo "Proceso completado."

  • 5. Implementacin

    33

    Tamao de la instalacin

    Zimbra nos facilita el clculo del espacio requerido por una instalacin para la cual se haya fijado el tamao de buzn por usuario y el nmero de usuarios. As, suponiendo 200 usuarios y buzones de 0,5 GB, se necesitaran aproximadamente:

    Concepto Clculo Resultado Datos de usuario Nmero de usuarios tamao de

    buzn 100 GB

    Datos necesarios por MySQL

    5% del tamao de datos de usuario 5 GB

    Instalacin de Zimbra Tamao fijo 10 GB Registros de Zimbra (logs) Tamao fijo 20 GB ndices de Zimbra 25% del tamao de datos de usuario 25 GB TOTAL 160 GB

    Tabla 2: Tamao necesario para la instalacin de Zimbra

  • PFC SME del CdC

    34

    Virtualizacin

    Para la virtualizacin se ha recurrido a VMware (http://www.vmware.com), y en concreto al producto ESXi 4.1 que es gratuito y no presenta limitaciones importantes para el objetivo perseguido frente a otras versiones (ESX, por ejemplo). Existe una versin superior, la 5.0, pero incluye una limitacin de uso de la memoria RAM del hipervisor de 8 GB, lo cual no resulta adecuado ya que los equipos que van a ser utilizados cuentan con 24 GB de RAM. La decisin de emplear VMware frente a otras tcnicas de virtualizacin (como Xen o Hyper-V) no est fundamentada en que Zimbra sea propiedad de VMware. En el Centro de Clculo ya se haba usado VMware con xito y es por ello por lo que se prefiere seguir con su utilizacin. Para la instalacin de ESXi 4.1 en un equipo, es necesario seguir los siguientes pasos:

    1. Registrarse en la pgina de VMware. 2. Acceder al producto (ESXi 4.1). 3. Solicitar el uso de este producto para nuestra cuenta. Nos facilitar un nmero de serie que

    nos permitir activar el producto de manera gratuita y para su uso indefinido. 4. Descargar la instalacin de VMware en un archivo ISO. 5. Grabacin del archivo ISO en un CD (o memoria USB) e instalacin en el equipo (a partir de

    ahora hipervisor). 6. Una vez instalado siguiendo los pasos indicados en la instalacin es necesario definirle una

    contrasea de administrador. 7. Posteriormente, se puede descargar el cliente vSphere Client 4.1 desde la interfaz web que

    presenta el hipervisor instalado. Para acceder a ella basta con acceder a https://iphipervisor/, donde iphipervisor ser la IP que se le haya asignado al hipervisor en la instalacin. Al acceder, se mostrar lo siguiente:

    Ilustracin 19: Logo VMWare

  • 5. Implementacin

    35

    vSphere Cliente permitir gestionar completamente el hipervisor. Podrn crearse nuevas mquinas virtuales, arrancarlas o detenerlas, reiniciarlas, cambiar su hardware asociado, etc. Adems facilitar la gestin del hipervisor: cmo se distribuye su espacio de almacenamiento, cmo mapea la red y las distintas mquinas virtuales, etc. Tambin es interesante, desde el equipo fsico, acceder a la consola de comandos, pulsando ALT + F1. Para activar esta opcin hay que acceder como root en ALT + F2, ir a Troubleshooting options:

    y pulsar sobre Enable Local Tech Support:

    Ahora, en ALT + F1, es necesario autenticarse (como root, por ejemplo). Una vez aqu, se

    Ilustracin 20: Pgina web mostrada al acceder a: https://iphipervisor/

    Ilustracin 21: Pgina principal de configuracin del hipervisor

    Ilustracin 22: Habilitacin de la consola de comandos del hipervisor

  • PFC SME del CdC

    36

    puede activar el servidor de SSH para un determinado puerto de la siguiente manera:

    1. Acceder al archivo de configuracin de red.

    2. Editar (presionar INSERTAR) las lneas 5 y 6 eliminando # del principio.

    /etc/inetd.conf

    3. Guardar y salir (presionar ESC, luego :wq e INTRO). 4. Acceder al archivo de los servicios y puertos.

    5. Editar las lneas 45 y 46 cambiando el nmero de puerto por el deseado.

    /etc/services

    6. Guardar y salir. 7. Reiniciar la red en el hipervisor con:

    Este proceso nos permitir acceder al hipervisor por SSH y ejecutar ciertos comandos, sin necesidad de hacer uso de vSphere Client que nicamente est disponible para Windows.

    vi /etc/inetd.conf

    -# ssh stream tcp nowait root /sbin/dropbearmulti \ - dropbear ++min=0,swap,group=shell -w -i -K60 + ssh stream tcp nowait root /sbin/dropbearmulti \ + dropbear ++min=0,swap,group=shell -w -i -K60 -# ssh stream tcp nowait urp /sbin/dropbearmulti \ - dropbear ++min=0,swap,group=shell -i -K60 + ssh stream tcp nowait urp /sbin/dropbearmulti \ + dropbear ++min=0,swap,group=shell -i -K60

    vi /etc/services

    - ssh 22/tcp # SSH Remote Login Protocol + ssh 55443/tcp # SSH Remote Login Protocol - ssh 22/udp # SSH Remote Login Protocol + ssh 55443/udp # SSH Remote Login Protocol

    kill -HUP `ps | grep inetd | awk '{print $1}'`

  • 5. Implementacin

    37

    Alta disponibilidad

    Introduccin

    La alta disponibilidad, como se explica en el marco terico, hace uso de dos recursos compartidos, un sistema de ficheros comn y una IP de servicio. Ambos, deben estar disponibles a ambos equipos y deben conmutar en caso de fallo de uno de los equipos.

    Para la conmutacin y para la IP del servicio se ha decidido usar HEARTBEAT, que cumple a la perfeccin con las exigencias del escenario y los requisitos demandados.

    Para el sistema de ficheros comn se ha decidido usar DRBD + GFS2. DRBD se ajusta al funcionamiento necesitado por s solo. Su utilizacin en conjunto con GFS2 est muy por encima en prestaciones demandadas. An as, se emplea con esta configuracin para garantizar, sin coste adicional, que, antes cualquier situacin posible, no se producir corrupcin en el sistema de ficheros.

    En lo que sigue, se va a analizar la configuracin de alta disponibilidad diseada para este sistema de mensajera electrnica. Siempre se consideran dos equipos que va a compartir recursos (IP de servicio y datos necesarios para la prestacin del servicio). Lo visto en este apartado ser usado como pieza clave en la constitucin del sistema final.

  • PFC SME del CdC

    38

    Heartbeat

    Para conseguir la conmutacin de recursos, necesaria en la alta disponibilidad, se ha hecho uso de la aplicacin heartbeat (http://linux-ha.org/wiki/Heartbeat), parte del proyecto Linux-HA, con licencia GNU GPL. Para instalar heartbeat para Ubuntu, basta con ejecutar como root:

    que realiza la instalacin de los siguientes paquetes: cluster-agents, cluster-glue, gawk,

    heartbeat, libcluster-glue, libcorosync4, libesmtp5, libheartbeat2, libnet1, libopenhpi2, libopenipmi0,

    openhpid y pacemaker.

    Una vez instalado, la configuracin de heartbeat se controla con los siguientes ficheros:

    /etc/ha.d/authkeys: Almacena la informacin que intercambiarn los equipos para garantizar una comunicacin segura entre ellos y evitar la suplantacin de identidad por parte de un tercero. Este fichero deber ser idntico en ambos equipos. La configuracin mnima de seguridad ser la siguiente:

    /etc/ha.d/authkeys

    /etc/ha.d/ha.cf: Contiene los parmetros de configuracin del funcionamiento de heartbeat; direcciones IP, interfaces, tiempos de espera, etc. Este fichero ser distinto en los dos equipos. Para la prestacin del servicio en el escenario en el que nos encontramos, se ha optado por la siguiente configuracin:

    vm1:/etc/ha.d/ha.cf

    Ilustracin 23: Logo Heartbeat

    apt-get install heartbeat

    auth 1 1 crc 2 sha1 HI! 3 md5 Hello!

    debugfile /var/log/ha-debug #nombre del log debug logfile /var/log/ha-log #nombre del log de heartbeat logfacility local0 #configuracin para el log del sistema keepalive 2 #tiempo del latido en segundos deadtime 12 #tiempo en declarar al otro muerto initdead 18 #tiempo antes de emprender acciones udpport 694 #puerto udp para la comunicacin ucast eth0 192.168.137.2 #interfaz local e ip del nodo opuesto auto_failback on #ceder su puesto si el primario est node vm1 #nombre del primer equipo = hostname node vm3 #nombre del segundo equipo = hostname

  • 5. Implementacin

    39

    Para el otro equipo, el fichero sera el siguiente:

    vm2:/etc/ha.d/ha.cf

    /etc/ha.d/haresources: Contiene informacin sobre los recursos compartidos (IPs, sistema de ficheros, scripts contenidos en /etc/init.d que se ejecutarn con start o stop, etc.) y qu equipo ser el que los ejecutar por defecto (primario). Este fichero deber ser idntico en ambos equipos. En nuestro escenario, este fichero contendr la siguiente informacin:

    /etc/ha.d/haresources

    Con esta configuracin el funcionamiento sera el siguiente:

    Si ambos equipos estn activos y: vm2 se vuelve indisponible: No ocurre nada, ya que est como primario el equipo vm1.

    Perderamos la redundancia que nos aporta el segundo equipo, pero el servicio no se vera afectado. Despus, el equipo vm2 vuelve a estar disponible: Tampoco sucede nada de cara al

    servicio, aunque volveramos a tener la proteccin del segundo equipo. vm1 se vuelve indisponible: vm2 lo detecta y asume el control del servicio.

    vm1 ejecutar, si puede: 1. /etc/init.d/zimbra stop, parando el servicio Zimbra. 2. Desvincula la IP 172.16.1.201/22 de su interfaz eth1. 3. Desmonta el sistema de ficheros /dev/drbd0 del directorio /opt. 4. Cambia el equipo a secundario en el servicio drbd.

    vm3 ejecutar: 1. Cambia el equipo a primario en el servicio drbd. 2. Monta el sistema de ficheros /dev/drbd0 en el directorio /opt. 3. Vincula la IP 172.16.1.201/22 a su interfaz eth1. 4. /etc/init.d/zimbra start, iniciando el servicio Zimbra.

    debugfile /var/log/ha-debug #nombre del log debug logfile /var/log/ha-log #nombre del log de heartbeat logfacility local0 #configuracin para el log del sistema keepalive 2 #tiempo del latido en segundos deadtime 12 #tiempo en declarar al otro muerto initdead 18 #tiempo antes de emprender acciones udpport 694 #puerto udp para la comunicacin ucast eth0 192.168.137.1 #interfaz local e ip del nodo opuesto auto_failback on #ceder su puesto si el primario est node vm1 #nombre del primer equipo = hostname node vm3 #nombre del segundo equipo = hostname

    vm1 drbddisk::all Filesystem::/dev/drbd0::/opt::gfs2::rw \ IPaddr::172.16.1.201/22/eth1 zimbra #parmetros en orden, separados por espacios: #nombre del equipo primario #recursos compartidos ordenados, donde a la hora de: # + tomar el servicio se ejecutaran de izquierda a derecha # (los scripts con start) # + abandonar el servicio, se ejecutaran de derecha a izquierda # (los scripts con stop) #para sistemas de ficheros: #drbddisk::nombre_recurso_drbd (o all para todos) #Filesystem::nombre_fisico::punto_de_montaje::tipo::tipo_de_montaje #para IPs: #Ipaddr::valor_IP/mascara/interfaz_fisica

  • PFC SME del CdC

    40

    Si vm3 funciona y es quin controla el servicio: y vm1 se vuelve disponible: vm1 recupera el control

    vm3 parar los scripts con stop y abandonar la IP y el sistema de ficheros en favor de vm1 debido a la clusula auto_failback on de su fichero /etc/ha.d/ha.cf.

    vm1 tomar los recursos y arrancar los scripts con start. De esta forma, el paso del testigo del servicio y de la inicializacin de todos los recursos necesarios para ejecutar el servicio corren a cuenta de heartbeat.

  • 5. Implementacin

    41

    Watchdog

    Watchdog (http://watchdog.sourceforge.net/) es una herramienta software que

    monitoriza recursos, y en caso de que alguno de ellos falle, reinicia el equipo. Debidamente utilizado, es el complemento perfecto de heartbeat. As, heartbeat fija el rol al equipo que est activo y watchdog reestablece el equipo que deje de estar activo por un fallo en algn servicio monitorizado. En conjunto, mantendrn:

    1. El servicio activo siempre (excepto el tiempo de cambio entre mquinas, aproximadamente

    3 o 4 minutos). 2. Los equipos, el mayor tiempo posible activos y listos para prestar el servicio.

    Para instalar watchdog para Ubuntu, basta con ejecutar como root:

    Posteriormente, ser necesario ejecutar lo siguiente:

    Finalmente, se podrn configurar todos los recursos susceptibles de ser monitorizados,

    en /etc/watchdog.conf. Un ejemplo de esto ser tratado ms adelante, en la instalacin completa del sistema.

    apt-get install watchdog

    echo "file = /var/log/messages" >> /etc/watchdog.conf echo "watchdog-device = /dev/watchdog" >> /etc/watchdog.conf /sbin/modprobe softdog echo 'softdog' >> /etc/modules

  • PFC SME del CdC

    42

    DRBD (Distributed Replicated Block Device)

    Para conseguir un sistema de ficheros compartido, se ha hecho uso de la aplicacin DRBD (http://www.drbd.org/), de LINBIT, con licencia GNU GPL. DRBD mantiene sincronizadas dos particiones del mismo tamao en equipos distintos unidos por sus interfaces de red, como se muestra en la siguiente figura:

    En el marco terico, se analiz que la situacin bsica para un sistema de alta disponibilidad con un sistema de ficheros compartido, deba responder a la siguiente estructura:

    Ilustracin 24: Logo DRBD

    Ilustracin 26: Esquema fundamental de alta disponibilidad

    Ilustracin 25: Esquema de funcionamiento de DRBD

  • 5. Implementacin

    43

    Este modelo puede ser satisfecho, empleando DRBD, de la siguiente manera:

    Es decir, un sistema de ficheros externo de comn acceso a ambos se sustituye por una particin local a cada equipo, sincronizadas mediante DRBD y montada slo para el equipo que est prestando el servicio. Este mtodo tiene numerosas ventajas:

    DRBD es un sistema estable, muy probado y con una documentacin muy extensa.

    Disminuye el tiempo de acceso con respecto a cualquier recurso remoto, ya sea para escritura o lectura, debido a que los accesos realizan de forma local.

    Hace uso de roles (primario y secundario) facilitando que un sistema configurado con un rol pueda cambiarlo y actuar con otro.

    En la configuracin de este sistema en concreto, es totalmente transparente al servicio. Debido a que slo uno de los dos equipos estar como activo, el transvase de informacin ser en un solo sentido, hacia el pasivo. Este equipo no estar esperando los datos del otro, por lo que no habr bloqueo. Este hecho implica que cualquier posible retardo introducido por la red ser inocuo ya que se producir sobre el equipo pasivo.

    Permite tener dos equipos completamente autnomos en caso de fallo irrecuperable de uno de ellos.

    Permite una copia de seguridad del sistema. Para ello slo habra que parar y aislar el equipo que no da el servicio y realizar una copia completa de todo el sistema mientras el otro sigue prestando el servicio.

    Para instalar DRBD en Ubuntu, hay que instalar una serie de paquetes necesarios y para ello hay que ejecutar como root:

    apt-get install ethstats dpatch patchutils cogito git-core sp apt-get install docbook-utils docbook build-essential flex dpkg-dev apt-get install fakeroot module-assistant apt-get install drbd8-utils

    Ilustracin 27: Solucin que aporta DRBD a la alta disponibilidad

  • PFC SME del CdC

    44

    Una vez instalado, la