You are on page 1of 19

Postfix Admin

Antes de que podamos usar la interfaz web de Postfix Admin deberemos de tener un
servidor web con soporte PHP instalado y configurado, hemos elegido a httpd (apache2) lo
instalaremos con soporte para PHP y SSL para conexiones seguras.

NOTA: El soporte para SSL lo configuraremos en secciones más adelante.

Instalación y configuración básica de apache2

Instalaremos apache2 con sus USE flags predeterminadas.

# emerge -pv net-www/apache

These are the packages that I would merge, in order:

Calculating dependencies... done!


[ebuild R ] net-www/apache-2.0.58-r2 USE="apache2 ssl -debug -doc
-ldap
-mpm-itk -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-
worker
(-selinux) -static-modules -threads" 0 kB

Como vemos ya están configuradas las USE flags con soporte para SSL (+ssl). Entonces lo
instalaremos de manera normal:

# emerge net-www/apache

Configuración de apache2 para soporte PHP y SSL

Por default apache no tiene activados los módulos para SSL aunque fue inicialmente
instalado con soporte SSL. Antes que nada instalaremos el modulo de PHP para apache.

# emerge -pv dev-lang/php

These are the packages that would be merged, in order:

Calculating dependencies... done!


[ebuild R ] dev-lang/php-5.1.6-r6 USE="apache2 berkdb bzip2
cli crypt gdbm iconv mysql ncurses nls pcre readline reflection
sasl session spell spl ssl truetype xml zlib -adabas -apache -bcmath
-birdstep -calendar -cdb -cgi -cjk -concurrentmodphp -ctype -curl
-curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress
-empress-bcs -esoob -exif -fastbuild -fdftk -filepro -firebird -flatfile
-force-cgi-redirect -frontbase -ftp -gd -gd-external -gmp -hardenedphp
-hash -hyperwave-api -imap -informix -inifile -interbase -iodbc -ipv6
-java-external -kerberos -ldap -libedit -mcve -memlimit -mhash -ming
-msql -mssql -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo
-pdo-external -pic -posix -postgres -qdbm -recode -sapdb -sharedext
-sharedmem -simplexml -snmp -soap -sockets -solid -sqlite -sybase
-sybase-ct
-sysvipc -threads -tidy -tokenizer -unicode -vm-goto -vm-switch -wddx
-xmlreader -xmlrpc -xmlwriter -xpm -xsl -yaz -zip" 0 kB

Esas dependencias son suficientes, ahora lo instalaremos:

# emerge dev-lang/php

Ahora configuraremos los archivos para que sean cargados los módulos de PHP y SSL. El
archivo donde se configura esto en Gentoo GNU/Linux es: /etc/conf.d/apache2

# vim /etc/conf.d/apache2

APACHE2_OPTS="-D DEFAULT_VHOST -D SSL -D SSL_DEFAULT_VHOST -D PHP5"

Con esta linea agregamos soporte para el default virtual host, soporte SSL, soporte SSL
para el default virtual host y soporte PHP5. Ahora iniciar el servicio apache2 así:

# /etc/init.d/apache2 start

Para que el servicio de apache2 sea iniciado al arranque del sistema ejecutar el siguiente
comando:

# rc-update add apache2 default

El directorio raiz de apache (DocumentRoot) por default es /var/www/localhost/htdocs


esta ruta la usaremos como referencia en secciones posteriores.

Instalación base de Postfix Admin

En la seccion 3. MySQL ya descargamos las fuentes de postfixadmin-2.1.0 y las des


comprimimos en /root/postfixadmin-2.1.0 Entonces copiaremos el directorio visible
por apache.

# cd
# cp -r -v postfixadmin-2.1.0 /var/www/localhost/htdocs/postfixadmin
# cd /var/www/localhost/htdocs/postfixadmin

Configuración de Postfix Admin

El archivo global de configuración de Postfix Admin es:

/var/www/localhost/htdocs/postfixadmin/config.inc.php

Al inicio este archivo no existe, pero si existe uno de ejemplo, entonces haremos una copia:

# cp config.inc.php.sample config.inc.php
Podemos editar el archivo config.inc.php libremente ya que esta el archivo
config.inc.php.sample que es exactamente igual y lo podemos usar como respaldo.

<?php
//
// Postfix Admin
// by Mischa Peters <mischa at high5 dot net>
// Copyright (c) 2002 - 2005 High5!
// License Info: http://www.postfixadmin.com/?file=LICENSE.TXT
//
// File: config.inc.php
//
if (ereg ("config.inc.php", $_SERVER['PHP_SELF']))
{
header ("Location: login.php");
exit;
}
// Postfix Admin Path
// Set the location to your Postfix Admin installation here.
$CONF['postfix_admin_url'] = '';
$CONF['postfix_admin_path'] = '';
// Language config
// Language files are located in './languages'.
$CONF['default_language'] = 'es';
// Database Config
// mysql = MySQL 3.23 and 4.0
// mysqli = MySQL 4.1
// pgsql = PostgreSQL
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
// Site Admin
// Define the Site Admins email address below.
// This will be used to send emails from to create mailboxes.
$CONF['admin_email'] = 'postmaster@tuxjm.net';
// Mail Server
// Hostname (FQDN) of your mail server.
// This is used to send email to Postfix in order to create mailboxes.
$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';
// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
$CONF['encrypt'] = 'md5crypt';
// Generate Password
// Generate a random password for a mailbox and display it.
// If you want to automagically generate paswords set this to 'YES'.
$CONF['generate_password'] = 'NO';
// Page Size
// Set the number of entries that you would like to see
// in one page.
$CONF['page_size'] = '10';
// Default Aliases
// The default aliases that need to be created for all domains.
$CONF['default_aliases'] = array (
'abuse' => 'abuse@tuxjm.net',
'hostmaster' => 'hostmaster@tuxjm.net',
'postmaster' => 'postmaster@tuxjm.net',
'webmaster' => 'webmaster@tuxjm.net'
);
// Mailboxes
// If you want to store the mailboxes per domain set this to 'YES'.
// Example: /usr/local/virtual/domain.tld/username@domain.tld
$CONF['domain_path'] = 'YES';
// If you don't want to have the domain in your mailbox set this to 'NO'.
// Example: /usr/local/virtual/domain.tld/username
$CONF['domain_in_mailbox'] = 'NO';
// Default Domain Values
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';
// Quota
// When you want to enforce quota for your mailbox users set this to
'YES'.
$CONF['quota'] = 'NO';
// You can either use '1024000' or '1048576'
$CONF['quota_multiplier'] = '1024000';
// Transport
// If you want to define additional transport options for a domain set
this to 'YES'.
// Read the transport file of the Postfix documentation.
$CONF['transport'] = 'NO';
// Virtual Vacation
// If you want to use virtual vacation for you mailbox users set this to
'YES'.
// NOTE: Make sure that you install the vacation module.
// http://high5.net/postfixadmin/
$CONF['vacation'] = 'NO';
// This is the autoreply domain that you will need to set in your Postfix
// transport maps to handle virtual vacations. It does not need to be a
// real domain (i.e. you don't need to setup DNS for it).
$CONF['vacation_domain'] = 'autoreply.tuxjm.net';
// Alias Control
// Postfix Admin inserts an alias in the alias table for every mailbox it
creates.
// The reason for this is that when you want catch-all and normal
mailboxes
// to work you need to have the mailbox replicated in the alias table.
// If you want to take control of these aliases as well set this to
'YES'.
//MOD//$CONF['alias_control'] = 'NO';
$CONF['alias_control'] = 'NO';
// Special Alias Control
// Set to 'NO' if you don't want your domain admins to change the default
aliases.
//MOD//$CONF['special_alias_control'] = 'YES';
$CONF['special_alias_control'] = 'NO';
// Logging
// If you don't want logging set this to 'NO';
$CONF['logging'] = 'YES';
// Header
$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';
// Footer
// Below information will be on all pages.
// If you don't want the footer information to appear set this to 'NO'.
$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to tuxjm.net';
$CONF['footer_link'] = 'http://tuxjm.net';
// Welcome Message
// This message is send to every newly created mailbox.
// Change the text between EOM.
$CONF['welcome_text'] = <<<EOM
Hi,
Welcome to your new account.
EOM;
//
// END OF CONFIG FILE
//
?>
:wq

Lo primero que es importante configurar es la información referente a la base de datos en


donde esta la información de los dominios y usuarios virtuales. Aquí usaremos la misma
información que definimos en la sección anterior.

$CONF['admin_email'] = 'postmaster@tuxjm.net';

Con esta configuración definiremos la dirección de correo de el remitente que se usara para
la creación de nuevas cuentas de correo, esto es porque cuando se crea un nuevo correo, se
envía automáticamente un correo a la cuenta recién creada.

$CONF['smtp_server'] = 'localhost'; $CONF['smtp_port'] = '25';

Aquí le decimos la dirección IP y el puerto de el servidor SMTP que usaremos para enviar
los correos de bienvenida para las nuevas cuentas creadas.

$CONF['encrypt'] = 'md5crypt';

Que método de cifrado usaremos para las contraseñas de los usuarios.

$CONF['domain_path'] = 'YES';

Con esta configuración le decimos que crearemos un directorio por cada dominio y dentro
de cada directorio de dominio un directorio para cada usuario de dominio. Algo así:
/home/vmail/dominios/tuxjm.net/usuario/

$CONF['domain_in_mailbox'] = 'NO';
Con esto le decimos que no agregue el nombre de dominio y la arroba a el directorio de el
buzón de el usuario, para que en lugar de que quede
/home/vmail/dominios/tuxjm.net/jmedina@tuxjm.net quede como
/home/vmail/dominios/tuxjm.net/usuario/

$CONF['aliases'] = '10'; $CONF['mailboxes'] = '10'; $CONF['maxquota'] = '10';

Con estas configuraciones pondremos los valores predeterminados para la cantidad de alias,
buzones y quota para los dominios.

Las demás configuraciones las puedes dejar como están por ahora, si después tiene otras
necesidades las podrá cambiar.

Ya tenemos casi listo el administrador de postfix, ahora entraremos a la interfaz web.

La primer vez nos saldrá una ventana como la que se muestra abajo.
Damos click en setup para asegurarnos de que todas las funciones requeridas estén
disponibles.
Si todo salio bien entonces podemos continuar y dar click en el link admin section, el cual
nos llevara a la pagina principal de el administrador.

Pero antes de esto eliminaremos el archivo setup.php para que no pueda ser vuelto a utilizar
y para que podamos usar completamente el sistema de administración.

# cd /var/www/localhost/htdocs/postfixadmin/
# rm -rf setup.php
Ya que por ahora no tenemos nada en la base de datos, no veremos mucho, más que un
mensaje con algo de información sobre nuestra nueva instalación e información de la nueva
versión de Postfix Admin.

Si ya no deseamos ver ese mensaje podemos eliminarlo borrando o moviendo el archivo


motd-admin.txt

# mv motd-admin.txt motd-admin.txt.orig

Bien, ahora que ya entramos a Postfix Admin, lo primero que tendremos que hacer es crear
nuestro primer dominio.
Damos click sobre New Domain para crear el dominio tuxjm.net y usaremos los valores
predeterminados de numero de alias y buzones y Tambien le diremos que cree los alias
predeterminados (abuse@tuxjm.net, postmaster@tuxjm.net, hostmaster@tuxjm.net,
webmaster@tuxjm.net)

NOTA: Es importante que para cada dominio que creemos, por lo menos exista un alias o
buzón para abuse@dominio.tld como lo especifica el RFC 2142, y para
postmaster@dominio.tld como es requerido por los RFC 822, RFC 1123 y RFC 2821, si no
lo hiciéramos podríamos ser considerados como RFC ignorants.
Al presionar el botón Add Domain si no hay ningún problema, entonces veras un mensaje
que dice: Domain has been added! (tuxjm.net)

Ahora vamos a Domain List y ya veremos el dominio tuxjm.net y algunos de los valores
con los que fue creado, desde ahí podemos Activarlo/Desactivarlo, editarlo y/o Eliminarlo.
Si damos click sobre el dominio nos mostrara el contenido de el dominio, que por ahora
solo tiene los alias predeterminados, de igual manera, ahí podemos Editarlos y/o
Eliminarlos.
Ahora crearemos un usuario administrador (para Postfix Admin) para que pueda
administrar el correo para el dominio recién creado tuxjm.net, damos click en el link New
Admin y creamos el usuario.

NOTA: Debemos de seleccionar el dominio para el que tendrá privilegios de administrador.


Si el administrador de dominio admin@tuxjm.net se agrega sin ningún problema, entonces
deberás de ver un mensaje que dice: Admin has been added! (admin@tuxjm.net)

Ahora tendremos que crear un buzón que sera con el que haremos nuestras pruebas en las
próximas secciones y capítulos.

Crearemos el buzón para jmedina@tuxjm.net

Esto lo haremos con el administrador general, después se vera como crear cuentas de correo
con el usuario administrador de dominio.

Dar click en el menú de Add Mailbox


SI la cuenta se agrega satisfactoriamente entonces te mostrara un mensaje que dice: The
mailbox has been added to the mailbox table! (jmedina@tuxjm.net) The mailbox has been
created!

Ahora ya podremos continuar con las demás secciones y configurar los servidores Postfix y
Courier.

Protegiendo la Interfaz de administración de Postfix Admin

Por default la pagina de administración para Postfix Admin es http://IP-o-Nombre-Del-


Servidor/postfixadmin/admin/ y a esta se puede accesar sin ninguna restricción, por lo que
la deberemos de proteger para que se pueda entrar a ella con credenciales validas, en este
caso usaremos usuario y contraseña y despues sera configurada para que sea una conexion
segura mediante SSL.

De manera predeterminada el paquete de Postfix Admin trae un archivo .htaccess en el


directorio admin, este lo podemos usar para proteger el directorio admin:

# vim /var/www/localhost/htdocs/postfixadmin/admin/.htaccess
AuthUserFile /var/www/localhost/htdocs/postfixadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic

<limit GET POST>


require valid-user
</limit>
Cambiar la linea de AuthUserFile que apunte a el archivo que tendrá la contraseña, ponerla
a: /var/www/localhost/htdocs/postfixadmin/admin/.htpasswd por default este
archivo tiene un usuario: admin, con contraseña: admin

# cat /var/www/localhost/htdocs/postfixadmin/admin/.htpasswd
admin:$apr1$5ip4S/..$cmAmYFlZa1gLHGwFFw2.G0

Es recomendable cambiar la contraseña a el usuario admin, esto lo podemos hacer así:

# cd /var/www/localhost/htdocs/postfixadmin/admin/
# htpasswd2 .htpasswd admin
New password: TECLEAR_NUEVA_CONTRASENA
Re-type new password: TECLEAR_NUEVA_CONTRASENA
Updating password for user admin

Para que apache2 pueda hacer uso de las configuraciones del archivo
/var/www/localhost/htdocs/postfixadmin/admin/.htaccess se deben de tener
soporte para AuthConfig, esto se hace usando la directiva AllowOverride AuthConfig ya
sea en el archivo global de configuración de apache /etc/apache2/httpd.conf o dentro
de una sección <Directory> dentro de la configuración de tu VirtualHost.

En este caso usaremos la configuración en Default Virtual Host, su archivo de


configuración en nuestro servidor es:
/etc/apache2/vhosts.d/00_default_vhost.conf, cambiaremos las siguientes
directivas:

AllowOverride None

Por:

AllowOverride AuthConfig

Después de editar el archivo, es necesario re iniciar el servidor httpd, así:

# /etc/init.d/apache2 restart
* Stopping apache2 ... [ ok ]
* Starting apache2 ... [ ok ]

Ahora ya podremos entrar a la pagina de administración de Postfix Admin así: http://IP-o-


Nombre-Del-Servidor/postfixadmin/admin/

Y te preguntara el usuario y la contraseña.

You might also like