Cómo configurar un servidor de correo con PostfixAdmin en Debian 11

PostfixAdmin es una interfaz gratuita, de código abierto y basada en la web que sirve para gestionar el servidor de correo Postfix desde el navegador web. Te permite añadir usuarios, alias, establecer una cuota de disco, añadir y eliminar dominios desde la interfaz basada en la web. Soporta varios backends de bases de datos, como PostgreSQL, MySQL, MariaDB y SQLite. Se puede integrar con Squirrelmail y Roundcube mediante plugins.

En este artículo, explicaré cómo instalar PostfixAdmin en Debian 11.

Requisitos previos

  • Un servidor que ejecute Debian 11 con Postfix instalado.
  • Un nombre de dominio válido apuntado con la dirección IP de tu servidor.
  • Un registro MX válido apuntado con la dirección IP de tu servidor.

Cómo empezar

En primer lugar, actualiza los paquetes de tu sistema con la última versión utilizando el siguiente comando:

apt-get update -y

Una vez actualizado tu sistema, establece el nombre de host completo de tu servidor.

hostnamectl set-hostname mail.domain.com

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

hostname -f

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar Nginx, MariaDB y PHP

A continuación, tendrás que instalar el servidor web Nginx, MariaDB, PHP y otras extensiones PHP necesarias en tu servidor. Puedes instalarlos todos con el siguiente comando:

apt-get install nginx mariadb-server php-fpm php-cli php-imap php-json php-mysql php-opcache php-mbstring php-readline unzip sudo -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Crear una base de datos PostfixAdmin

A continuación, tendrás que crear una base de datos y un usuario para PostfixAdmin. Primero, conéctate a la consola de MariaDB con el siguiente comando:

mysql

Una vez conectado, 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 'securepassword';

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:

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

En este punto, la base de datos MariaDB está creada para PostfixAdmin. Ahora puedes pasar al siguiente paso.

Instalar PostfixAdmin

En primer lugar, tendrás que descargar la última versión de PostfixAdmin desde el sitio web de Sourceforge. Puedes descargarla con el siguiente comando:

wget https://webwerks.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf PostfixAdmin\ 3.3.8.tar.gz

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

mv postfixadmin-postfixadmin-7d04685 /var/www/html/postfixadmin

A continuación, crea el directorio necesario para instalar PostfixAdmin:

mkdir /var/www/html/postfixadmin/templates_c

A continuación, establece la propiedad adecuada del directorio PostfixAdmin:

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

A continuación, crea un archivo config.local.php:

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

Añade las siguientes líneas:

<?php
$CONF['configured'] = true;
 
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'securepassword';
$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';
?>

Guarda y cierra el archivo y luego crea el esquema para la base de datos de PostfixAdmin con el siguiente comando:

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

A continuación, tendrás que crear una cuenta de superadministrador para PostfixAdmin. Puedes crearla con el siguiente comando:

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

Proporciona tu nombre de usuario, contraseña y dominio de administrador como se muestra a continuación:

Welcome to Postfixadmin-CLI v0.3
---------------------------------------------------------------

Admin:  
> [email protected]

Password:  
> Secure@12345

Password (again):  
> Secure@12345

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

Domain:  
> domain.com

Active: (y/n) 
> y

The admin [email protected] has been added!

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

Configurar Nginx para PostfixAdmin

A continuación, tendrás que crear un archivo de configuración del host virtual Nginx para PostfixAdmin. Puedes crearlo con el siguiente comando:

nano /etc/nginx/conf.d/domain.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 mail.domain.com;

        location ~ \.php$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass unix:/var/run/php/php7.4-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 y luego reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puedes comprobar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías obtener la siguiente salida:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-28 08:13:22 UTC; 7s ago
       Docs: man:nginx(8)
    Process: 74644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 74645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 74646 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 3.2M
        CPU: 57ms
     CGroup: /system.slice/nginx.service
             ??74646 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??74647 nginx: worker process

Aug 28 08:13:22 mail.domain.com systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 28 08:13:22 mail.domain.com systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Aug 28 08:13:22 mail.domain.com systemd[1]: Started A high performance web server and a reverse proxy server.

Accede a PostfixAdmin

En este punto, PostfixAdmin está instalado y configurado. Ahora puedes acceder a él utilizando la URL http://mail.domain.com. Serás redirigido a la página de acceso a PostfixAdmin:

PostfixAdmin

Proporciona tu correo electrónico de administrador, tu contraseña y haz clic en el botón de inicio de sesión. Deberías ver el panel de control de PostfixAdmin en la siguiente pantalla:

Panel de control de PostfixAdmin

Conclusión

Enhorabuena, has instalado con éxito PostfixAdmin en Debian 11. Ahora puedes gestionar fácilmente tu servidor de correo Postfix desde el navegador web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...