Documentación Gentoo Linux -- Sistema de corre...
http://www.gentoo.org/doc/es/virt-mail-howto.xml
Imprimir
Actualizado 28 de
septiembre, 2008
Sumario: Este
documento describe
como crear un sistema
de correo virtual
basado en postfix,
mysql, courier-imap, y
cyrus-sasl.
Ken Nowack
Autor
Ezra Gorman
Autor
Zack Gilburd
Editor
Scygro
Editor
Sven Vermeulen
Editor
José Alberto Suárez
López
Traductor
John Christian
Stoddart
Traductor
José Luis Rivero
Traductor
Fernando J. Pereda
Garcimartín
Traductor
Fernando M. Bueno
Traductor
Donate to support our
development efforts.
Sistema de correo virtual con postfix
Contenido:
1. Introducción
1. Introducción
Para la mayoría de los usuarios de Gentoo, con un simple cliente de correo y fetchmail
bastaría. Sin embargo, si se está hospedando un dominio en el sistema, se necesitará un
MTA (Agente de Transporte de Correo) de verdad. Y si se están hospedando varios dominios,
definitivamente se necesita algo más robusto para manejar todo el correo de los usuarios.
Este sistema fue diseñado para ser una elegante solución a este problema.
Un sistema de correo virtual tiene que ser capaz de manejar correo de numerosos dominios
con diferentes usuarios sobre una variedad de interfaces. Esto presenta algunos problemas
con los que tendremos que tratar. Por ejemplo, ¿qué ocurre si dos usuarios en diferentes
dominios quieren usar el mismo nombre de usuario? Si proveemos acceso imap y smtp-auth,
¿cómo combinamos todos los demonios de autenticación en un solo sistema? ¿Cómo
proporcionar seguridad para los numerosos componentes que componen el sistema? ¿Cómo lo
maneja todo?
Este documento muestra cómo configurar un sistema capaz de manejar correo para todos los
dominios que el equipo pueda manejar, soporte de usuarios virtuales que no necesiten
cuentas de shell, que los nombres sean específicos de cada dominio, que los clientes se
puedan autenticar por web, imap, smtp, y pop3 contra una base de datos, utilizar ssl para la
capa de transporte segura, que tenga una interfaz web, que pueda manejar listas de correo
para cualquiera de los dominios, y sea controlado por una bonita, central y simple base de
datos mysql.
Hay gran variedad de formas para mantener un sistema de correo virtual. Con tantas
opciones, cualquier otra puede ser más adecuada dependiendo de las necesidades que se
tengan. Hay que considerar investigar http://www.es.qmail.org/ y http://www.exim.org/
para explorar otras opciones.
Los siguientes paquetes serán usados en este sistema: apache, courier-imap, courier-authlib,
postfix, mod_php, phpmyadmin, squirrelmail, cyrus-sasl, mysql, php, y mailman.
Hay que asegurarse de activar las siguientes variables USE en /etc/make.conf antes de
compilar los paquetes: USE="mysql imap libwww maildir sasl ssl". De otra forma se
necesitarán recompilar cosas para obtener soporte para todos los protocolos. Además, es una
buena idea desactivar cualquier otra variable que tenga que ver con correo y red, como ipv6.
Importante: Se necesita un nombre de dominio para ejecutar un servidor de correo público, o al
menos un registro MX para un dominio. Lo ideal sería tener control sobre al menos dos dominios para
beneficiarse del nuevo sistema de correo virtual.
Importante: Hay que asegurarse de que /etc/conf.d/hostname contiene el nombre de máquina
correcto del servidor de correo. Para que tomen efecto los cambios hechos en este archivo ejecute
/etc/init.d/hostname restart. Verifique que esté correcto el nombre de su máquina con hostname.
También verifique que no hay entradas conflictivas en /etc/hosts.
Nota: Se recomienda la lectura de este documento completo y la familiaridad con todos los pasos antes
de ponerse a instalarlo. Si se tienen problemas con alguno de los pasos, puede comprobarse la guía de
problemas frecuentes al final de este documento. También, no todos los paquetes aquí referenciados
son necesarios, esto es para un sistema muy flexible. Por ejemplo, si no se desea una interfaz web,
puede evitarse la sección de squirrelmail.
1 de 16
19/11/09 21:56
Documentación Gentoo Linux -- Sistema de corre...
http://www.gentoo.org/doc/es/virt-mail-howto.xml
2. Postfix Básico
Listado de Código 2.1: Instalar postfix
# emerge postfix
Aviso: Hay que verificar que no se ha instalado otro MTA, como ssmtp, exim, o netqmail, o seguro que
se tendrán GRANDES problemas.
Tras la instalación de postfix, es el momento de configurarlo. Vamos a cambiar las siguientes
opciones en /etc/postfix/main.cf. Recuerde reemplazar las $variables con sus propios
nombres.
Listado de Código 2.2: /etc/postfix/main.cf
myhostname = $host.domain.name
mydomain = $domain.name
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks = my.ip.net.work/24, 127.0.0.0/8
home_mailbox = .maildir/
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
Lo siguiente es cambiar /etc/postfix/master.cf. Esto activará que la salida sea detallada
para poder depurar:
Listado de Código 2.3: /etc/postfix/master.cf
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (50)
#
==========================================================================
(Sólo hay que añadir "-v" después de smtpd a la siguiente línea)
smtp inet n - n - - smtpd -v
Lo siguiente es editar /etc/mail/aliases para añadir los alias locales. Debe haber al menos
un alias para root como: root:
[email protected].
Listado de Código 2.4: Iniciar postfix por primera vez
# /usr/bin/newaliases
(Esto instalará el nuevo alias. Sólo se necesita hacer esto cuando se
actualicen o añadan nuevos alias.)
# /etc/init.d/postfix start
Ahora que postfix está corriendo, se ejecuta el cliente de correo de consola y nos enviamos
un mensaje. Yo uso mutt para todo mi email. Comprobamos que postfix está repartiendo el
correo a los usuarios locales, una vez esto esté hecho, pasaremos al siguiente paso.
Nota: Recomiendo que se verifique que esta configuración básica de postfix está funcionando antes de
dar el siguiente paso en esta guía.
3. Courier-imap
Listado de Código 3.1: Instalar courier-imap
# emerge courier-imap
Listado de Código 3.2: Configuración de Courier-imap
2 de 16
19/11/09 21:56
Documentación Gentoo Linux -- Sistema de corre...
http://www.gentoo.org/doc/es/virt-mail-howto.xml
# cd /etc/courier-imap
(Si se quiere usar ssl para imap y pop, hay que crear certificados para este
propósito.
Este paso está recomendado. Si no se quiere ssl, simplemente se puede evitar.)
# nano -w /etc/courier-imap/pop3d.cnf
# nano -w /etc/courier-imap/imapd.cnf
(Se cambian los campos C, ST, L, CN, y email ajustándolos a nuestro
caso.)
# mkpop3dcert
# mkimapdcert
Listado de Código 3.3: Inicie los servicios de courier que necesite.
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-imapd-ssl start
# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start
Se ejecuta nuestro cliente de correo preferido y se comprueba que todas las conexiones para
mandar y recibir correo funcionan. Por supuesto, no podrá hacer log on al estos servicios,
porque la autentificación no ha sido configurada, pero es buena idea revisar si las conexiones
en sí funcionan o no.
Ahora que lo básico funciona, vamos a seguir con el resto del manojo de paquetes para que
el sistema funcione. Y otra vez, hay que comprobar que se ha instalado todo y que funciona
antes de continuar.
4. Cyrus-sasl
Ahora vamos a instalar cyrus-sasl. Sasl va a hacer la labor de pasar las variables de
autenticación a pam que pasará está información a mysql para autenticar usuarios de smtp.
Para este documento no vamos a comprobar si sasl funciona hasta que mysql no esté
configurado correctamente con un usuario de prueba; lo que está bien, porque siempre
autenticaremos contra una base de datos mysql.
Listado de Código 4.1: Configurar e instalar el ebuild cyrus-sasl
# emerge cyrus-sasl
Ahora, se edita /etc/sasl2/smtpd.conf.
Listado de Código 4.2: Iniciar sasl
# nano -w /etc/sasl2/smtpd.conf
mech_list: PLAIN LOGIN
pwcheck_method: saslauthd
# nano -w /etc/conf.d/saslauthd
SASLAUTHD_OPTS="${SASLAUTH_MECH} -a rimap -r"
SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost"
# /etc/init.d/saslauthd start
5. Certificados SSL para Postfix y Apache
Ahora vamos a hacer los certificados SSL para postfix y apache.
Listado de Código 5.1: Certificados ssl
3 de 16
19/11/09 21:56
Documentación Gentoo Linux -- Sistema de corre...
http://www.gentoo.org/doc/es/virt-mail-howto.xml
# cd /etc/ssl/
# nano -w openssl.cnf
Hay que ajustar los siguientes valores por defecto para nuestro dominio:
countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
commonName_default
emailAddress_default.
(Si las variables no están presentes, hay que añadirlas.)
# cd misc
# ./CA.pl -newreq-nodes
# ./CA.pl -newca
# ./CA.pl -sign
# cp newcert.pem /etc/postfix
# cp newkey.pem /etc/postfix
# cp demoCA/cacert.pem /etc/postfix
(Ahora hacemos lo mismo para apache.)
# openssl req -new > new.cert.csr
# openssl rsa -in privkey.pem -out new.cert.key
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
(Por ahora dejamos estos certificados ahí. Los agregaremos después de
instalar Apache.)
6. Añadir a Postfix soporte para SSL y SASL
Ahora se edita el fichero de configuración de Postfix para que utilice ssl y sasl. Se añaden los
siguientes parámetros al final del fichero para que serán más sencillos de encontrar.
Listado de Código 6.1: /etc/postfix/main.cf
4 de 16
19/11/09 21:56
Documentación Gentoo Linux -- Sistema de corre...
http://www.gentoo.org/doc/es/virt-mail-howto.xml
# nano -w /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
(Las opciones broken_sasl_auth_clients y login y
Comentarios de: Sistema de correo virtual con Postfix - Gentoo (0)
No hay comentarios