Este tutorial tiene Copyright (c) 2014 de Falko Timme y Srijan Kishore. Se deriva de un tutorial de Christoph Haas que puede encontrar en http://workaround.org. Puede usar este tutorial bajo la licencia Creative Commons 2.5 o cualquier versión posterior.
Este documento describe cómo instalar un servidor de correo Postfix basado en usuarios y dominios virtuales, es decir, usuarios y dominios que se encuentran en una base de datos MySQL. También demostraré la instalación y configuración de Courier (Courier-POP3, Courier-IMAP), para que Courier pueda autenticarse contra la misma base de datos MySQL que usa Postfix.
El servidor Postfix resultante es capaz de SMTP-AUTH y TLS y cuota (La cuota no está integrada en Postfix de forma predeterminada, le mostraré cómo parchear su Postfix de manera adecuada). Las contraseñas se almacenan en encriptadas formulario en la base de datos (la mayoría de los documentos que encontré trataban con contraseñas de texto sin formato, lo que es un riesgo de seguridad). Además de eso, este tutorial cubre la instalación de Amavisd , Asesino de spam y ClamAV para que los correos electrónicos sean escaneados en busca de spam y virus. También mostraré cómo instalar SquirrelMail como una interfaz de correo web para que los usuarios puedan leer y enviar correos electrónicos y cambiar sus contraseñas.
La ventaja de una configuración "virtual" de este tipo (usuarios y dominios virtuales en una base de datos MySQL) es que tiene mucho más rendimiento que una configuración basada en usuarios "reales" del sistema. Con esta configuración virtual, su servidor de correo puede manejar miles de dominios y usuarios. Además, es más fácil de administrar porque solo tiene que lidiar con la base de datos MySQL cuando agrega nuevos usuarios/dominios o edita los existentes. No más comandos postmap para crear archivos db, no más recargas de Postfix, etc. Para la administración de la base de datos MySQL, puede usar herramientas basadas en web como phpMyAdmin, que también se instalará en este tutorial. La tercera ventaja es que los usuarios tienen una dirección de correo electrónico como nombre de usuario (en lugar de un nombre de usuario + una dirección de correo electrónico) que es más fácil de entender y tener en cuenta.
Este howto pretende ser una guía práctica; no cubre los antecedentes teóricos. Se tratan en muchos otros documentos en la web.
¡Este documento viene sin garantía de ningún tipo! Quiero decir que esta no es la única forma de establecer un sistema de este tipo. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. ¡No emito ninguna garantía de que esto funcione para usted!
1 nota preliminar
Este tutorial se basa en el servidor Ubuntu 14.04 (Trusty Tahr), por lo que debe configurar una instalación básica del servidor Ubuntu 14.04 antes de continuar con este tutorial. El sistema debe tener una dirección IP estática. Uso 192.168.0.100 como mi dirección IP en este tutorial y server1.example.com como nombre de host.
Asegúrese de haber iniciado sesión como raíz (escriba
sudo su
para convertirse en root), porque debemos ejecutar todos los pasos de este tutorial como usuario root.
Es muy importante que haga de /bin/sh un enlace simbólico a /bin/bash...
guión dpkg-reconfigure
¿Usar guión como shell del sistema predeterminado (/bin/sh)? <-- No
... y que deshabilite AppArmor, si recibe apparmor:servicio no reconocido, elimínelo de update-rc.d
service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
2 Instale Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
Para instalar Postfix, Courier, Saslauthd, MySQL y phpMyAdmin, simplemente ejecutamos
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 módulos libsasl2 módulos libsasl2 -sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass
Se le harán algunas preguntas:
Nueva contraseña para el usuario "root" de MySQL:<-- yourrootsqlpassword
Repetir la contraseña para el usuario "root" de MySQL:<-- yourrootsqlpassword
¿Crear directorios para administración basada en web? <-- No
Tipo general de configuración de correo:<-- Sitio de Internet
Nombre de correo del sistema:<-- server1.example.com
Certificado SSL requerido <-- Ok
Servidor web para reconfigurar automáticamente:<-- apache2
¿Configurar base de datos para phpmyadmin con dbconfig-common? <-- No
3 Aplicar el parche de cuota a Postfix
Tenemos que obtener las fuentes de Postfix, parchearlo con el parche de cuota, crear nuevos paquetes .deb de Postfix e instalar esos paquetes .deb:
postfijo apt-get build-dep
En algún momento puede obtener un error de la siguiente manera:-
[email protected]:~# apt-get build-dep postfix
Leyendo listas de paquetes... Listo
Creando árbol de dependencias
Leyendo información de estado... Listo
E:Tú debe poner algunos URI de 'fuente' en su source.list
[email protected]:~#
Puede corregirlo de la siguiente manera, agregando los repositorios de origen:
vi /etc/apt/sources.list
Hacer la entrada como en mi caso es
deb http://archive.ubuntu.com/ubuntu trusty principal universo restringido
deb http://archive.ubuntu.com/ubuntu trusty-updates principal universo restringido
deb http://security.ubuntu .com/ubuntu trusty-security principal universo restringido multiverso
deb http://archive.canonical.com/ubuntu trusty partner
deb-src http://archive. ubuntu.com/ubuntu trusty principal universo restringido
deb-src http://archive.ubuntu.com/ubuntu trusty-updates principal universo restringido
deb-src http://security.ubuntu.com/ ubuntu trusty-security principal universo restringido multiverso
deb-src http://archive.canonical.com/ubuntu trusty partner
Siguiente
apt-get update
apt-get build-dep postfix
cd /usr/src
apt-get source postfix
(Asegúrese de usar la versión correcta de Postfix en los siguientes comandos. Tengo instalado Postfix 2.11.0. Puede encontrar su versión de Postfix ejecutando
posconf -d | grep mail_version
La salida debería verse así:
[correo electrónico protegido]:/usr/src# postconf -d | grep mail_version
mail_version =2.11.0
milter_macro_v =$mail_name $mail_version
[email protected]:/usr/src#
wget http://vda.sourceforge.net/VDA/postfix-vda-v13-2.10.0.patch
cd postfix-2.11.0
parche -p1 <../postfix-vda-v13 -2.10.0.parche
A continuación, abra debian/rules y cambie DEB_BUILD_HARDENING de 1 a 0:
vi debian/reglas
[...] export DEB_BUILD_HARDENING=0 [...] |
dominio | ||
ejemplo.com |
fuente | destino | |
[correo electrónico protegido] | [correo electrónico protegido] |
correo electrónico | contraseña | cuota |
[correo electrónico protegido] | No9.E4skNvGa. ("secreto" en forma encriptada) | 10485760 |