PDF de programación - Servidor de Correo con Postfix en FreeBSD

Imágen de pdf Servidor de Correo con Postfix en FreeBSD

Servidor de Correo con Postfix en FreeBSDgráfica de visualizaciones

Actualizado el 16 de Junio del 2017 (Publicado el 14 de Abril del 2017)
1.431 visualizaciones desde el 14 de Abril del 2017
240,5 KB
11 paginas
Creado hace 18a (06/05/2005)
Servidor de Correo con Postfix en FreeBSD

Autor: ACMhUnTeR
Actualizado: 17/02/2005
Plataforma: FreeBSD 5.3-STABLE

El documento puede ser copiado, modificado, redistribuido, con la unica condicion de hacer mencion al autor y la url original del documento
(eldemonio.org y bsdperu.org) como de las personas que colaboraron en el mismo.

INTRODUCCIÓN

En este documento explicare como configurar un Servidor de Correo utilizando Postfix para ser utilizado para multiples dominios utilizando MySQL o
PostgreSQL, para el acceso a nuestro correo mediante imap y pop3 utilizaremos courier-imap y courier-authlib, para la autentificacion de
nuestros usuarios utilizaremos cyrrus-sasl2, con lo cual podremos controlar el RELAY de nuestro servidor, para ayudarnos en la administración de
postfix utilizaremos una herramienta desarrollada en php llamada postfixadmin.

INSTALANDO NUESTROS PAQUETES

Instalando MySQL(Primera opcion de base de datos)

Instalamos MySQL donde tendremos la información de las cuentas, dominios entre otras cosas de nuestro servidor de correo.

HellFire# cd /usr/ports/databases/mysql40-server
HellFire# make install clean clean-depends

Instalando PostgreSQL(Segunda opcion de base de datos)

Instalamos PostgreSQL donde tendremos la información de las cuentas, dominios entre otras cosas de nuestro servidor de correo.

HellFire# cd /usr/ports/databases/postgresql80-server
HellFire# make install clean clean-depends

Instalando courier-imap

Instalamos courier-imap con soporte para quotas

HellFire# cd /usr/ports/mail/courier-imap
HellFire# make WITH_TRASHQUOTA=yes install clean clean-depends

Instalando courier-authlib con soporte MySQL

Instalamos courier-authlib con soporte para MySQL para la autentificacion con imap y pop3

HellFire# cd /usr/ports/mail/courier-authlib
HellFire# make WITH_MYSQL=yes install clean clean-depends

Instalando courier-authlib con soporte PostgreSQL

Instalamos courier-authlib con soporte para PostgreSQL para la autentificacion con imap y pop3

HellFire# cd /usr/ports/mail/courier-authlib
HellFire# make WITH_POSTGRESQL=yes install clean clean-depends

Instalando cyrrus-sasl2 con soporte MySQL

Descargaremos los parches para cyrrus-sasl2 el cual nos permitira trabajar usando contraseñas md5 en MySQL, los parches podemos bajarlos desde
http://frost.ath.cx/software/cyrus-sasl-patches/dist/, la version de parche de cyrrus-sasl2 que yo utilice fue la 2.1.19 pero estos mismos parches tambien
funcionan para la version 2.2.20, una vez descargados los parches para FreeBSD copiaremos los archivos a la carpeta files de nuestro port de cyrrus-
sasl2 para que sean aplicados en el momento de la compilación.

HellFire# cp patch* /usr/ports/security/cyrrus-sasl2/files

Instalamos cyrrus-sasl2 con soporte para MySQL.

HellFire# cd /usr/ports/security/cyrrus-sasl2
HellFire# make WITH_MYSQL=yes install clean clean-depends

Instalando cyrrus-sasl2 con soporte PostgreSQL

Los parches descargados tambien los aplicamos a cyrrus-sasl2 para el soporte de contraseñas md5 utilizadas en las cuentas de correo.

HellFire# cp patch* /usr/ports/security/cyrrus-sasl2/files

Instalamos cyrrus-sasl2 con soporte para PostgreSQL.

HellFire# cd /usr/ports/security/cyrrus-sasl2
HellFire# make WITH_PGSQL=yes install clean clean-depends

Instalando Apache, PHP y postfixadmin

Instalamos apache desde nuestro arbol de ports.

HellFire# cd /usr/ports/www/apache13
HellFire# make install clean clean-depends

Instalamos php4, php4-mysql o php4-pgsql para el soporte de php con MySQL o PostgreSQL y php4-pear utilizado por postfixadmin.

HellFire# cd /usr/ports/lang/php4
HellFire# make install clean clean-depends

HellFire# cd /usr/ports/devel/php4-pear
HellFire# make install clean clean-depends

HellFire# cd /usr/ports/databases/php4-mysql
HellFire# make install clean clean-depends

HellFire# cd /usr/ports/databases/php4-pgsql
HellFire# make install clean clean-depends

HellFire# cd /usr/ports/mail/postfixadmin
HellFire# make install clean clean-depends

Instalando Postfix

En la instalacion de postfix no centraremos en marcar el soporte para SASL2, MySQL o PostgreSQL, TLS y VDA en la ventana generada en la instalacion
del port.

HellFire# cd /usr/ports/mail/postfix
HellFire# make install clean clean-depends

En el transcurso de la instalacion nos preguntara para agregar el grupo maildrop y el usuario postfix a nuestro sistema le indicamos que si (y).

Al finalizar la instalación aparecera una pregunta si queremos reemplazar la configuración del archivo /etc/mail/mailer.conf para poder controlar el inicio de
postfix desde el rc.conf contestamos que si (y).

CONFIGURANDO EL SERVIDOR DE CORREO

Configurando MySQL

Iniciamos MySQL

HellFire# mysql_safe --user=mysql --datadir=/var/db/mysql --err-log=/var/log/mysqld.log &

Asigamos una contraseña al usuario root cuando nos pida el ingreso de una contraseña solo presionamos enter.

HellFire# mysqladmin -u root -p password nuevopassword

Necesitaremos crear la base de datos, tablas y usuarios que utilizara nuestro servidor de correo para esto haremos unos cambios al archivo DATABASE.TXT
disponible en la carpeta de /usr/local/www/postfixadmin.

HellFire# cp /usr/local/www/postfixadmin/DATABASE_MYSQL.txt /root/postfix-mysql.sql

Editamos el archivo para adaptarlo a nuestras configuración y tendremos como resultado:

HellFire# ee /root/postfix-mysql.sql

# Postfix / MySQL
#
USE mysql;
# Creando y dando privilegios a los usuarios postfix y postfixadmin , no olviden cambiar 'PasswordPostfix' y 'PasswordPostfixadmin' por las que gusten
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('PasswordPostix'));
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
# Postfix Admin user & password
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('PasswordPostfixadmin'));
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;
GRANT USAGE ON postfix.* TO postfix@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost;
GRANT USAGE ON postfix.* TO postfixadmin@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfixadmin@localhost;
CREATE DATABASE postfix;
USE postfix;

#
# Estructura tabla admin utilizada por postfixadmin
#
CREATE TABLE admin (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (username),
KEY username (username)

) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins';
#
# Estructura tabla alias utilizada para guardar informacion de los alias de cuentas
#
CREATE TABLE alias (
address varchar(255) NOT NULL default '',
goto text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (address),
KEY address (address)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases';

#
# Estructura tabla domain contiene informacion de los dominios que administra el servidor, agregamos por defecto el virtual al campo transport
#
CREATE TABLE domain (
domain varchar(255) NOT NULL default '',
description varchar(255) NOT NULL default '',
aliases int(10) NOT NULL default '-1',
mailboxes int(10) NOT NULL default '-1',
maxquota int(10) NOT NULL default '-1',
transport varchar(255) default 'virtual',
backupmx tinyint(1) NOT NULL default '0',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (domain),
KEY domain (domain)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains';
#
# Estructura tabla domain_admins contiene informacion acerca del usuario encargado de administrar las cuentas del dominio especificado
#
CREATE TABLE domain_admins (
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
KEY username (username)
) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins';
#
# Estructura tabla log contiene informacion de los cambios realizados usando postfixadmin
#
CREATE TABLE log (
timestamp datetime NOT NULL default '0000-00-00 00:00:00',
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
action varchar(255) NOT NULL default '',
data varchar(255) NOT NULL default '',
KEY timestamp (timestamp)
) TYPE=MyISAM COMMENT='Postfix Admin - Log';
#
# Estructura tabla mailbox mantiene informacion referente a las cuentas de correo, agregamos por defecto los valores 125 (postfix) y 6 (nobody) a los campos uid y gid, tambien especificamos el campo home para indicar la ruta base dode estaran los mailbox .
#
CREATE TABLE mailbox (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
name varchar(255) NOT NULL default '',
home char(255) default '/home/postfix/',
maildir varchar(255) NOT NULL default '',
quota int(10) NOT NULL default '-1',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(1) NOT NULL default '1',
uid int(10) unsigned default '125',
gid int(10) unsigned default '6',
PRIMARY KEY (username),
KEY username (username)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';#
#
# Estructura dela tabla vacation usado para el servicio de vacation no lo usaremos pero crearemos las tablas para evitar un error de postfixadim tambien podemos obtar por modif
  • Links de descarga
http://lwp-l.com/pdf2869

Comentarios de: Servidor de Correo con Postfix en FreeBSD (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad