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

PostfixAdmin

PostfixAdmin es una interfaz gratuita, de código abierto y basada en la web que se utiliza para administrar el servidor de correo de Postfix desde el navegador web. Le permite agregar usuarios, alias, establecer una cuota de disco, agregar y eliminar dominios desde la interfaz basada en web. Admite varios backends de bases de datos, incluidos PostgreSQL, MySQL, MariaDB y SQLite. Se puede integrar con Squirrelmail y Roundcube a través de complementos.

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

requisitos previos

  • Un servidor que ejecuta Debian 11 con postfix instalado.
  • Se apunta un nombre de dominio v√°lido con la direcci√≥n IP de su servidor.
  • Se apunta un registro MX v√°lido con la direcci√≥n IP de su servidor.

Empezando

Primero, actualice los paquetes de su sistema con la √ļltima versi√≥n usando el siguiente comando:

apt-get update -y

Una vez que su sistema esté actualizado, configure el nombre de host completo de su servidor.

hostnamectl set-hostname mail.domain.com

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

hostname -f

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Nginx, MariaDB y PHP

A continuación, deberá instalar el servidor web Nginx, MariaDB, PHP y otras extensiones de PHP requeridas en su servidor. Puede 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 que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Crear una base de datos PostfixAdmin

A continuación, deberá crear una base de datos y un usuario para PostfixAdmin. Primero, inicie sesión en la consola de MariaDB con el siguiente comando:

mysql

Una vez que esté conectado, cree 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, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:

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

En este punto, se crea la base de datos MariaDB para PostfixAdmin. Ahora puede continuar con el siguiente paso.

Instalar PostfixAdmin

Primero, deber√° descargar la √ļltima versi√≥n de PostfixAdmin del sitio web de Sourceforge. Puedes descargarlo con el siguiente comando:

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

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar -xvzf PostfixAdmin\ 3.3.8.tar.gz

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

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

A continuación, cree un directorio necesario para instalar PostfixAdmin:

mkdir /var/www/html/postfixadmin/templates_c

A continuación, establezca la propiedad adecuada en el directorio PostfixAdmin:

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

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

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

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

Guarde y cierre el archivo, luego cree el esquema para la base de datos de PostfixAdmin con el siguiente comando: Publicidad

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

A continuación, deberá crear una cuenta de superadministrador para PostfixAdmin. Puedes crearlo con el siguiente comando:

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

Proporcione su 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:  
> [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:  
> domain.com

Active: (y/n) 
> y

The admin [email protected] has been added!

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

Configurar Nginx para PostfixAdmin

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

nano /etc/nginx/conf.d/domain.com.conf

Agregue 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;
   }

}

Guarde y cierre el archivo, luego reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puede verificar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías obtener el siguiente resultado:

? 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.

Acceder a PostfixAdmin

En este punto, PostfixAdmin está instalado y configurado. Ahora puede acceder a él usando la URL http://correo.dominio.com. Será redirigido a la página de inicio de sesión de PostfixAdmin:

PostfixAdmin

Proporcione su correo electr√≥nico de administrador, contrase√Īa y haga clic en el Acceso bot√≥n. Deber√≠a ver el panel de PostfixAdmin en la siguiente pantalla:

Tablero de administración de Postfix

Conclusión

¬°Felicidades! Ha instalado correctamente PostfixAdmin en Debian 11. Ahora puede administrar f√°cilmente su servidor de correo Postfix desde el navegador web. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *