Instalar y Configurar Mail Server con Postfix Admin

Postfix Admin es un front-end web basado en PHP que nos permite configurar y administrar el servidor de correo electrónico Postfix. Puede agregar, eliminar y administrar fácilmente dominios, usuarios de correo electrónico, alias y cuotas de disco desde tu navegador web. Postfix Admin admite buzones virtuales, reenviadores, reenvío de dominio a dominio, cuota, respaldo MX y límites de buzón por dominio. PostfixAdmin viene con un amplio conjunto de características que incluyen, soporte de base de datos MySQL/PostgreSQL, panel de administrador basado en la web, soporte de Fetchmail, integración de Roundcube / Squirrelmail y mucho más.

En este tutorial, te mostraremos cómo instalar y configurar Postfix Admin con Nginx en el servidor Ubuntu 18.04.

Requisitos

• Un servidor corriendo con Ubuntu 18.04 con Postfix instalado.
• Un nombre de dominio válido o un nombre de subdominio que apunta a la dirección IP de tu servidor.
• Un registro DNS MX válido que apunte a la dirección IP de tu servidor cloud.

Empezamos

Antes de comenzar, se recomienda actualizar el repositorio de paquetes de tu servidor vps cloud con la última versión. Puedes actualizarlo con el siguiente comando:

# apt-get update -y
# apt-get upgrade -y

Una vez que tu sistema esté actualizado, puedes continuar con el siguiente paso.

A continuación, deberás configurar el nombre de host adecuado de tu servidor. Puedes hacerlo con el siguiente comando:

# hostnamectl set-hostname test.linuxbuz.com

A continuación, ejecuta el siguiente comando para aplicar los cambios:

# hostname -f

Instala Nginx, PHP y MariaDB

PostfixAdmin se ejecuta en un servidor web, escrito en PHP y utiliza MariaDB para almacenar sus datos. Por ello, deberás instalar Nginx, MariaDB, PHP y otros módulos en tu sistema. Puedes instalarlos todos ejecutando el siguiente comando:

# apt-get install nginx mariadb-server php7.2-fpm php7.2-cli php7.2-imap php7.2-json php7.2-mysql php7.2-opcache php7.2-mbstring php7.2-readline unzip -y

Una vez que todos los paquetes estén instalados, puedes continuar con el siguiente paso.

Crea una Base de Datos PostfixAdmin 

A continuación, deberás crear una base de datos y un usuario para PostfixAdmin. Para hacerlo, primero inicia sesión en el shell de MariaDB con el siguiente comando:

# mysql -u root -p

Ingresa tu contraseña de root cuando se te solicite y luego crea una base de datos y un usuario con el siguiente comando:

# MariaDB [(none)]> CREATE DATABASE postfixadmin;
# MariaDB [(none)]> GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY '[email protected]';

A continuación, elimina los privilegios y sal del shell MariaDB con el siguiente comando:

# MariaDB [(none)]> FLUSH PRIVILEGES;
# MariaDB [(none)]> EXIT;

Configura PostfixAdmin

Primero, deberás descargar la última versión de PostfixAdmin del sitio web de Sourceforge. Puedes hacerlo con el siguiente comando:

# wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.2/postfixadmin-3.2.tar.gz

Después de descargar, extrae el archivo descargado con el siguiente comando:

# tar -xvzf postfixadmin-3.2.tar.gz

A continuación, mueve el directorio extraído al directorio raíz web de Nginx:

 mv postfixadmin-3.2 /var/www/html/postfixadmin 

A continuación, cambia la propiedad del directorio postfixadmin a www-data:

 chown -R www-data: /var/www/html/postfixadmin/

A continuación, crea un nuevo archivo de configuración PostfixAdmin llamado config.local.php con el siguiente comando:

# nano /var/www/html/postfixadmin/config.local.php

Añade el siguiente contenido:

<?php
$CONF['configured'] = true;

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = '[email protected]';
$CONF['database_name'] = 'postfixadmin';

$CONF['default_aliases'] = array (
  'abuse'      => '[email protected]',
  'hostmaster' => '[email protected]',
  'postmaster' => '[email protected]',
  'webmaster'  => '[email protected]'
);

$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';

$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';

$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>

Reemplaza el nombre de dominio y la configuración de la base de datos con tu configuración. Guarda y cierra el archivo cuando hayas terminado. Luego, crea el esquema para la base de datos PostfixAdmin con el siguiente comando:

# sudo -u www-data php /var/www/html/postfixadmin/public/upgrade.php

A continuación, deberás crear un usuario superadmin utilizando la herramienta postfixadmin-cli.

Puedes hacerlo con el siguiente comando:

# bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add

Se te pedirá que proporciones el nombre, la contraseña y el nombre de dominio de superadmin. Proporciona toda la información y para activar el superadmin escribe como se muestra a continuación:

Welcome to Postfixadmin-CLI v0.2
---------------------------------------------------------------

Admin:
> [email protected]

Password:
> [email protected]

Password (again):
> [email protected]

Super admin:
(Super admins have access to all domains, can manage domains and admin accounts.) (y/n)
> y

Domain:
> linuxbuz.com

Active: (y/n)
> y

The admin [email protected] has been added!

---------------------------------------------------------------

Configura Nginx para PostfixAdmin

A continuación, deberás crear un nuevo archivo de host virtual para PostfixAdmin. Puedes crearlo con el siguiente comando:

# nano /etc/nginx/sites-available/test.linuxbuz.com.conf

Añade las siguientes líneas:

server {
listen 80;
root /var/www/html/postfixadmin/public;
index index.html index.htm index.php;
server_name test.linuxbuz.com;

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
}

location / {
try_files $uri $uri/ =404;
}

}

Guarda y cierra el archivo cuando hayas terminado. Luego, habilita el host virtual Nginx con el siguiente comando:

# ln -s /etc/nginx/sites-available/test.linuxbuz.com.conf /etc/nginx/sites-enabled/

Finalmente, reinicia el servicio Nginx y PHP-FPM para aplicar los cambios de configuración:

systemctl restart nginx
systemctl restart php7.2-fpm

Accede a la Interfaz Web de PostfixAdmin 

Ahora, abre tu navegador web y escribe la URL http://test.linuxbuz.com. Serás redirigido a la interfaz web de PostfixAdmin como se muestra a continuación:

Proporciona tu nombre de usuario administrador, contraseña y haz clic en el botón ‘Iniciar sesión’. Debería ver el panel de PostfixAdmin en la siguiente pantalla:

En el menú de lista de dominios, haz clic en el botón ‘Agregar dominio’ para agregar su dominio a PostfixAdmin. Deberías ver la siguiente pantalla:

Proporciona tu nombre de dominio, buzones de correo, cuota y haz clic en el botón ‘Agregar dominio’. Una vez que agregues el dominio, deberías ver la siguiente pantalla:

Conclusión

¡Felicidades! Has instalado y configurado con éxito PostfixAdmin en el servidor Ubuntu 18.04. Ahora puedes administrar fácilmente el servidor de correo Postfix con la interfaz web de Postfix Admin.

To write a comment on this article, fill out the form below. Fields marked with an asterisk (*) are required.