Logo
You
Code

Postfix, Courier, Saslauthd, MySQL, phpMyAdmin

Autor YouCode - http://www.youcode.com.ar/postfix/postfix-courier-saslauthd-mysql-phpmyadmin-88

Vamos a aprender como instalar Postfix con usuarios virtuales y sus complementos para un servidor completo de correos en un Debian Squeeze

Comencemos....

Instalando los paquetes necesarios

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 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass
Cuando se esta instalando Postfix nos preguntara una serie de cuestiones que responderemos como aqui indico:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword
Create directories for web-based administration? <-- No
SSL certificate required <-- Ok
Workgroup/Domain Name: <-- WORKGROUP
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No
 

Quota Patch To Postfix



Las Quotas son para saber y controlar el tamaño de cada casilla de correo, de esta menera controlamos el espacio en disco que le asignamos a cada cuenta.
Tenemos que bajar el fuente de postfix, hacemos lo siguiente:
apt-get build-dep postfix
cd /usr/src
apt-get source postfix

DEBEMOS COMPROBAR QUE EL SOURCE O FUENTE QUE BAJAMOS CORRESPONDE A LA VERSION DE NUESTRO POSTFIX YA INSTALADO

 
postconf -d | grep mail_version
La salida el comando deberia ser similar o como la siguiente:

root@server1:/usr/src# postconf -d | grep mail_version
mail_version = 2.7.1
milter_macro_v = $mail_name $mail_version
root@server1:/usr/src#

Vamos a bajar el patch y hacer el Build
wget http://vda.sourceforge.net/VDA/postfix-vda-2.7.1.patch
cd postfix-2.7.1
patch -p1 < ../postfix-vda-2.7.1.patch
dpkg-buildpackage
vamos a la carpeta o directorio donde esta el paquete DEB
cd ..
Instalamos
dpkg -i postfix_2.7.1-1_amd64.deb postfix-mysql_2.7.1-1_amd64.deb

Creacion de la base de datos MySql

mysqladmin -u root -p create mail
nos logueamos a MySql
mysql -u root -p
Creamos el usuario y damos privilegios
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';
FLUSH PRIVILEGES;
Seleccionamos la base para crear las tablas
USE mail;

Creamos las tablas
CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;
CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;
CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
quota INT(10) DEFAULT '10485760',
PRIMARY KEY (email)
) TYPE=MyISAM;
CREATE TABLE transport (
domain varchar(128) NOT NULL default '',
transport varchar(128) NOT NULL default '',
UNIQUE KEY domain (domain)
) TYPE=MyISAM;
Salimos de MySql
quit;
Muy bien, ahora un ejemplo de como deberiamos tener datos en las tablas, recuenrden que los emails que ven son a modo de ejemplo.

En la tabla domain debemos insertar todos los dominios de las cuentas de mail
 
domain
ejemplo.com

forwarding , en esta tabla pondremos las direcciones de mail que quicieramos que se haga un forward, aqui solo insertar mail si es necesario, sino, quedara vacia
 
source destination
info@ejemplo.com ventas@ejemplo.com

users en esta tabla estaran las cuentas de mail, recuerden que la password esta encriptada mediante ENCRYPT de MySql
 
email password quota
info@ejemplo.com no9345zx 2000000

transport en esta tabla pondremos el transport, o sea, el servidor que nos haria de realy si quicieramos, esto suele usarce cuando queremos que nuestro servidor de correo
envie los mails utilizando otro server.
Tengan presente, que solo se hace el relay o transpor a los dominios que aqui indiquemos
 
domain transport
ejemplo.com smtp:[1.2.3.4]

Continuamos en la parte 2
http://www.youcode.com.ar/postfix/postfix-courier-saslauthd-mysql-phpmyadmin-parte-2-94
http://www.youcode.com.ar/postfix/postfix-courier-saslauthd-mysql-phpmyadmin-88