Postfix Admin

22
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

Transcript of Postfix Admin

Page 1: Postfix Admin

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 bzip2cli crypt gdbm iconv mysql ncurses nls pcre readline reflectionsasl 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

Page 2: Postfix Admin

-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

Page 3: Postfix Admin

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'] = '[email protected]';// 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.

Page 4: Postfix Admin

$CONF['page_size'] = '10';// Default Aliases// The default aliases that need to be created for all domains.$CONF['default_aliases'] = array ( 'abuse' => '[email protected]', 'hostmaster' => '[email protected]', 'postmaster' => '[email protected]', 'webmaster' => '[email protected]');// Mailboxes// If you want to store the mailboxes per domain set this to 'YES'.// Example: /usr/local/virtual/domain.tld/[email protected]$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';

Page 5: Postfix Admin

// 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'] = <<<EOMHi,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'] = '[email protected]';

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';

Page 6: Postfix Admin

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/[email protected] 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.

Page 7: Postfix Admin

Damos click en setup para asegurarnos de que todas las funciones requeridas estén disponibles.

Page 8: Postfix Admin
Page 9: Postfix Admin

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

Page 10: Postfix Admin
Page 11: Postfix Admin

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.

Page 12: Postfix Admin

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 ([email protected], [email protected], [email protected], [email protected])

NOTA: Es importante que para cada dominio que creemos, por lo menos exista un alias o buzón para [email protected] como lo especifica el RFC 2142, y para [email protected] como es requerido por los RFC 822, RFC 1123 y RFC 2821, si no lo hiciéramos podríamos ser considerados como RFC ignorants.

Page 13: Postfix Admin

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.

Page 14: Postfix Admin

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.

Page 15: Postfix Admin

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.

Page 16: Postfix Admin
Page 17: Postfix Admin

Si el administrador de dominio [email protected] se agrega sin ningún problema, entonces deberás de ver un mensaje que dice: Admin has been added! ([email protected])

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 [email protected]

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

Page 18: Postfix Admin

SI la cuenta se agrega satisfactoriamente entonces te mostrara un mensaje que dice: The mailbox has been added to the mailbox table! ([email protected]) 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/.htaccessAuthUserFile /var/www/localhost/htdocs/postfixadmin/admin/.htpasswdAuthGroupFile /dev/nullAuthName "Postfix Admin"AuthType Basic

<limit GET POST>require valid-user</limit>

Page 19: Postfix Admin

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/.htpasswdadmin:$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 adminNew password: TECLEAR_NUEVA_CONTRASENARe-type new password: TECLEAR_NUEVA_CONTRASENAUpdating 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.