1.1 Conceptos básicos.
1.2 Agentes de transporte de Correo.
1.3 Postfix
1.4 Servidores POP e IMAP
1.5 Cyrus
1.6 Cliente de correo web Squirrelmail
1.7 Apache y PHP
2 Instalación de Cyrus
2.1 Configuración de Cyrus
2.2 Creación de usuarios y contraseñas
3 Instalación de Postfix
3.1 Configuración de Postfix
4 Instalación de Apache
5 Instalación de Squirrelmail
5.1 Configuración de Squirrelmail
Autor: Francisco Sosa Romero
Los servidores de correo proporcionan a los usuarios de Internet servicios de correo electrónico, basan su funcionamiento en protocolos TCP/IP propios como SMTP (Protocolo de Transferencia de Correo Simple), POP (Protocolo de Oficina Postal) e IMAP (Protocolo de acceso a correo de Internet).
Cuando un usuario envía un correo, primero lo envía al servidor, este se encargará de enviar dicho mensaje al servidor correspondiente en Internet, después el servidor de recepción se encargará de entregar el correo al usuario de su red.
En cada etapa se utilizan distintos tipos de Agentes (Aplicaciones).
Conceptos básicos
Definiremos varios conceptos para poder comprender de manera adecuada el funcionamiento de un sistema de correo electrónico.
MUA (Mail User Agent): es la aplicación que funciona como cliente de correo llámese Thunderbird, Outlook, Evolution, etc. ¿Cual es mejor, depende de cada quien?
MTA (Mail Tranfer Agent): Agente de transferencia de Correo para transportar los mensajes a través de Internet. Los MTA son servidores que utilizan el protocolo SMTP para el envio de mensajes de un servidor de correo a otro. En sistemas Linux y otras varientes de UNIX el MTA por defecto es Sendmail (que no utilizaremos en este manual), otros no menos populares son Postfix con el cual trabajaremos, Exim y Qmail.
MDA (Mail Delivery Agent): Los mensajes recibidos en un servidor de correo se distribuyen mediante agentes de entrega de correo, la mayoría de las distribuciones Linux usan Procmail como es el caso de CENTOS. Revisa www.procmail.org para obtener más detalles.
Muchas de las distribuciones de Linux vendrán con el MTA Sendmail preinstalado por defecto, por lo que para nuestros propósitos se deberá desinstalar y sustituir con Postfix, Postfix es el MTA que está pensado para sustituir a Senmail que a lo largo de su existencia ha tenido problemas de seguridad, es mucho más sencillo de configurar y más confiable. De cualquier forma con el objetivo de tener un panorama amplio sobre el abanico de posibilidades aquí les dejo unos links para más información.
| MTA | Descripción |
| Sendmail | Agente de de transferencia de correo Sendmail Sitio web: www.sendmail.org |
| Postfix | Agente de transferencia de correo compatible con Sendmail y diseñado para ser un reemplazo. Sitio web: www.postfix.org |
| Qmail | Agente rápido, flexible y seguro con su propia implementación. Sitio web: www.qmail.org |
| Exim | Agente basado en smail3 Sitio web: www.exim.org |
Postfix
Como ya lo mencioné Postfix es un MTA rápido, seguro y confiable, diseñado para reemplazar a Sendmail. Desarrollado por Wietse Venema esta disponible bajo la Licencia GNU. Postfix se implementa como una colección de programas pequeños cada uno con la finalidad de realizar una tarea especifica relacionada con el correo. Un demonio maestro se ejecuta de forma continua mientras los demás sólo lo hacen cuando son requeridos.
Servidores POP e IMAP
Ya expliqué la diferencia entre los agentes de transferencia de correo (MTA) y los agentes de entrega de correo (MDA).
Hablemos de POP, un concepto simple de POP es que se trata de un servidor de correo central administrado de tal forma, que siempre permanece en línea y puede recibir correo para todos los usuarios, el correo almacenado en el servidor hace cola, hasta que el usuario genera una conexión y lo descarga.
Hablemos ahora de IMAP, la diferencia respecto a POP es que puede operar en tres modalidades: en línea, fuera de línea y desconectado. El modo en línea es semejante a tener acceso directo al sistema de archivos en el almacén de correo, el modo fuera de línea es similar al trabajo de POP, sólo se conecta al servidor cuando este ha recibido correo de otros usuarios, en este modo es importante recalcar que el servidor no conserva una copia del los mails. Por último el modo desconectado permite a a los usuarios conservar copias de sus correos. Cuando están conectados, cualquier correo electrónico entrante o saliente es reconocido y sincronizado al instante.
Después de todo mantener ambos (POP e IMAP) es una excelente idea, los usuarios pueden escoger el protocolo y el cliente de correo que mejor les venga en gana.
Servidor Cyrus
Cyrus es una sistema de correo electrónico empresarial altamente escalable, desarrollado en el año de 1994 por la Carnegie Mellon University. Este servidor nos será útil porque maneja los dos protocolos antes mencionados.
Cliente de correo web Squirrelmail
Se trata de un aplicación de correo vía web, desarrollada 100% en código PHP, soporta servidores de correo IMAP como SMTP, squirremail posee todas las funcionalidades que debe proporcionar un cliente de correo web, soporta listas de contactos y manipulación de carpetas. Squirrelmail, esta liberado bajo la licencia GPL.
Apache y PHP
Para poder implementar un servidor de correo vía web, es indispensable contar con Apache Web Server y así como con el módulo de PHP . Más adelante veremos la instalación.
Instalación de Cyrus-Imapd
Después de todo el breviario anterior sobre los conceptos básicos vayamos al grano con la instalación. Gracias a que CENTOS utiliza la una aplicación llamada “Yum” para la administración de paquetes este proceso será un paso bastante simple, si utilizas RHEL o Fedora la instalación será bastante similar. Como es de suponerse debemos abrir a una consola y logearnos como usuario root. Echaremos mano de los siguientes paquetes.
cyrus-imapd: Demonio del servidor Cyrus con protocolos POP y IMAP incluidos.
cyrus-imapd-utils: Utilerías necesarias para la administración.
cyrus-sasl: servicio para la autentificación (capa de seguridad y autenticación simple)
cyrus-sasl-plain: soporte para la autentificación en texto plano
cyrus-sasl-md5: soporte para la autentificación con MD5
Bastará con teclear el siguiente comando en nuestra consola, esto instalará el paquete Cyrus con los componentes necesarios.
yum -y install cyrus-imapd cyrus-imapd-utils cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5
Configuración del servidor Cyrus
El archivo de configuración de Cyrus no requiere de ninguna modificación para funcionar, de cualquier forma la ruta del archivo es la siguiente considerando que estamos usando Linux CENTOS
/etc/cyrus.conf
En el podemos deshabilitar o habilitar los protocolos POP e IMAP o agregar Seguridad SSL.
El siguiente paso será cambiar el password para el usuario “cyrus”, a fin de evitar accesos no autorizados para la administración de nuestro servidor. Lo hacemos tecleando el siguiente comando.
passwd cyrus
Creación de las cuentas de usuario y contraseñas
Para la creación de los usuario y contraseñas se utilizará el método SASL con el fin de obtener acceso al servidor Cyrus, hagámoslo de la siguiente forma.
1) Alta de la cuenta local del usuario, se sugiere no dejar al usuario accesar a la consola.
useradd -s /sbin/nologin pepe2) Asignación de la contraseña que permitirá autenticarse en el servidor POP IMAP bajo los métodos “plain y login”.
passwd pepe
3) Bien ahora asignar las contraseñas utilizando el método SASL, esto con el fin de que los usuarios puedan autenticar en el servidor bajo el método MD5. Para ello será necesario iniciar el servicio “saslauthd” con el siguiente comando.
service saslauthd start
Si deseamos que el servidor arranque al iniciar nuestro sistema tecleamos el siguiente comando.
chkconfig saslauthd –level 35 on
4) Una vez arrancado el servicio Saslauthd procedemos a la creación de las cuentas, tecleamos el siguiente comando.
saslpasswd2 pepe
5) Procedemos a crear los buzones de los usuarios, para ello debemos autentificarnos en el servidor Cyrus, lo hacemos del siguiente modo.
cyradm -user cyrus -auth plain localhost
Si notamos se utilizó el usuario cyrus, con autentificación plain y localhost como servidor local.
Nota: necesitaremos cambiar el nombre nuestro servidor lo podemos hacer editando el archivo /etc/hosts. Dejándolo por ejemplo de la siguiente manera.
127.0.0.1 mail.tecri.com localhost
6) Una vez accesado a la administración de nuestro servidor Cyrus, procedemos a crear los respectivos buzones
createmailbox user.pepe o bien cm user.pepe
Si deseamos ver una lista de los buzones existente podemos hacer uso del comando siguiente.
listmailbox
Para salir del intérprete de comandos podemos simplemente tecleamos “exit”.
7) Para obtener un listado de los usuarios con autentificación SASL hacemos uso del comando siguiente:
sasldblistusers2
8) Una vez realizados los pasos anteriores procedemos a iniciar nuestro servidor Cyrus
service cyrus-imapd start
Si requerimos que inicie cuando a la par de nuestro servidor
chkconfig cyrus-impad on
Instalación del MTA Postfix
Para la instalación de postfix se requerirá sólo del siguiente comando.
yum install postfix
Configuración del MTA postfix
Para la configuración del MTA postfix será necesario editar el archivo siguiente con el editor de textos de tu preferencia, yo uso vi.
vi /etc/postfix/main.cf
Parámetros para el funcionamiento del MTA Postfix
Postfix define parámetros para almacenar la información de red como lo es “myhostname” que determina el nombre del host del sistema y “mydomain”, para almacenar el nombre de dominio de la red. En nuestro caso la configuración quedaría de la siguiente forma.
myhostname= mail.tecri.com
mydomain=tecri.com
El parámetro “myorigin” especifica la dirección de origen del correo electrónico enviado al servidor. Como opción predeterminada se asigna el valor “myhostname”.
myorigin=$myhostname
Si deseamos que el enviado sea percibido como si fue enviado por el dominio de la red editamos la directiva de la siguiente forma.
myorigin=$mydomain
El parámetro “mydestination” almacena una lista de dominios de los que el servidor recibirá correos, de forma predeterminada se muestra de la siguiente manera.
mydestination=$myhostname, localhost.$mydomain,localhost,$mydomain
Podemos también definir de para que redes podemos habilitar el MTA con la opción mynetworks, es útil cuando el equipo funciona como una puerta de enlace. También podemos utilizar el parámetro “relay_domains”, para especificar de direcciones de correo de redes a las cuales podemos retransmitir mensajes, la configuración quedaría de la siguiente forma.
mynetworks=192.168.0.0
relay_domains=$mydestination
Como en nuestro caso utilizamos el servidor Cyrus para el manejo de los buzones de usuarios utilizando LMTP, debemos habilitar la siguiente opción.
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
De la misma forma debemos indicar a Postfix que para la entrega de correo se utiliza un servidor Cyrus
mailbox_transport = cyrus
El importante que al configurar el servidor Postfix este nos pida autentificarnos, de otro modo cualquiera podría hacer uso para enviar mails, hagámoslo agregando las siguientes líneas al final del archivo “main.cf”.
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks
Esta sería la configuración básica del servidor postfix, estamos listos para arrancar el servidor.
service postfix start
chkconfig postfix on
Se deseamos recargar la configuración sin necesidad de reiniciar el servicio, podemos realizarlo con el siguiente comando.
postfix reload
Posftfix incluye una herramienta útil para revisar la configuración del servidor, esto nos ayudará a resolver problemas, utilízala de la siguiente forma.
postfix check
Es probable que las colas de correo se puedan saturar, por fallas en la red entre otras, para revisar las colas usa este comando.
mailq
En nuestro sistema de correo, los registros del tráfico del correo se almacenan de forma predeterminada en /var/log/maillog. Una recomendación para visualizarlo mientras este cambia es utilizando el siguiente comando. Si surgen imprevistos te sugiero revisarlo de forma constante.
tail -f /var/log/maillog
Instalación de Apache
Para instalar Apache Web Server con el módulo de PHP debemos teclear el siguiente comando.
yum install httpd php mod_perl
Con esto será suficiente para poner en marcha nuestro servidor y podrá ejecutar scripts de php que es lo que se necesita.
Arrancar el servidor
service httpd start
Detener el servidor
service httpd stop
Iniciar el servidor a la par con el sistema
chkconfig httpd –level 35 on
Instalación de Squirrelmail
Procedamos a descargar Squirrelmail de la siguiente liga http://squirrelmail.org/download.php
Coloquemos el archivo del software empaquetado en la siguiente ruta, que el el directorio de publicación de apache.
/var/www/html/
Una vez que el archivo “squirrelmail-1.4.17.tar.gz” se encuentre dentro del directorio “mail”, procedemos a descomprimirlo.
gunzip squirrelmail-1.4.17.tar.gz
tar -xvf squirrelmail-1.4.17.tar
Esto nos generará una carpeta con el nombre “squirrelmail-1.4.17” a la que recomiendo cambiarle el nombre por mail.
mv squirrelmail-1.4.17 mail
Configuración de Squirrelmail
Procedamos a configurarlo, necesitamos ejecutar el archivo de configuración que está en la siguiente ruta.
cd /var/www/html/mail/config
Lo ejecutamos
./config.pl
Nos aparecerá un menú como el siguiente
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >>
El menú “Servers Settings” nos permite establecer los valores para la conexión con el servidor POP e IMAP en mi caso la configuración quedó de la siguiente forma.
General
-------
1. Domain : tecri.com
2. Invert Time : false
3. Sendmail or SMTP : SMTP
A. Update IMAP Settings : localhost:143 (other)
B. Update SMTP Settings : localhost:25
R Return to Main Menu
C Turn color on
S Save data
Q Quit
Con estas opciones configuradas ya podemos hacer uso de nuestro cliente webmail. Accesando al siguiente link.
Referencias http://en.wikipedia.org/wiki/Cyrus_IMAP_server
http://cyrusimap.web.cmu.edu/generalinfo.html
http://www.alcancelibre.org/staticpages/index.php/como-cyrus-imapd
http://es.wikipedia.org/wiki/SASL
Manual de Linux Sexta Edición. Editorial Mc Graw Hill, Autor Richard Petersen
Manual de Administración de Linux Cuarta Edición. Mc Graw Hill, Autor Steve Shah y Wale Soyinka

No hay comentarios:
Publicar un comentario