GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configurar un servidor de correo con PostfixAdmin

Postfix Admin es una interfaz basada en web que permite a los usuarios configurar y administrar un servidor de correo electrónico basado en Postfix. Con Postfix Admin puede crear y administrar múltiples dominios virtuales, usuarios y alias.

Esta es la primera publicación de la serie sobre Instalación y configuración de un servidor de correo, que cubre la creación de los registros DNS necesarios y explica cómo instalar y configurar Postfix Admin, Nginx con el certificado gratuito Let's Encrypt, PHP y MySQL.

Este tutorial fue escrito para Ubuntu 16.04, sin embargo, los mismos pasos con pequeñas modificaciones deberían funcionar en cualquier versión más nueva de Ubuntu.

Requisitos previos #

Como requisitos previos para seguir esta serie, necesitarás:

  • Servidor Ubuntu 16.04. El nombre de host del servidor debe ser un FQDN. En esta serie usaremos mail.linuxize.com .
  • Usuario con privilegios sudo.

Configuración de DNS #

Debe configurar los siguientes registros DNS para que funcione su sistema de correo:

  • Un registro, para apuntar el FQDN (nombre de host) de su sistema a la dirección IPv4 de su servidor de correo.
mail.linuxize.com. 3600 IN A   23.45.67.89
El FQDN consta de dos partes, el nombre de host y el nombre de dominio.
  • Registro MX, para especificar qué servidor de correo es responsable de aceptar mensajes de correo electrónico en nombre del dominio de un destinatario. En nuestro caso, queremos que todos los correos electrónicos se envíen a @linuxize.com direcciones de correo electrónico que serán aceptadas por mail.linuxize.com servidor de correo.
linuxize.com.      3600 IN MX  0 mail.linuxize.com.
  • Registro SPF, que se utiliza para verificar qué servidores de correo están aprobados para enviar correo electrónico en nombre de un dominio determinado. En el siguiente ejemplo, estamos aprobando los servidores de correo de dominio (mx) y si falla la verificación de SPF, el resultado será una falla leve (~todos):
linuxize.com.      3600 IN TXT "v=spf1 mx ~all"
Por supuesto, debe reemplazar el nombre de dominio y la dirección IP con su nombre de dominio real y la dirección IP de su servidor de correo.

DNS inverso (PTR) #

El DNS inverso (PTR) es una asignación de dirección IP a nombre de dominio, exactamente lo contrario de DNS, que asigna nombres de dominio a direcciones IP.

La mayoría de los servidores de correo electrónico realizarán una búsqueda inversa de DNS en la dirección IP que intenta conectarse a ellos y es posible que no acepten correos electrónicos del servidor si el registro PTR no está configurado.

En la mayoría de los casos, las entradas de PTR se pueden configurar a través de la interfaz web de su proveedor de alojamiento o comunicándose con el equipo de soporte y pídales que configuren un registro de PTR correcto para usted.

Puede usar el comando dig para averiguar el DNS inverso de una dirección IP dada.

dig -x 23.45.67.89
23.45.67.89.in-addr.arpa domain name pointer mail.linuxize.com.

Crea un número de usuario del sistema

Dado que estamos configurando un servidor de correo con usuarios virtuales, necesitamos un usuario del sistema que será el propietario de todos los buzones y será utilizado por los usuarios virtuales para acceder a sus mensajes de correo electrónico en el servidor.

El siguiente comando creará un nuevo grupo y usuario llamado vmail y establezca el directorio de inicio del usuario en /var/mail/vmail :

sudo groupadd -g 5000 vmailsudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail

Todos los buzones virtuales se almacenarán en el /var/mail/vmail directorio.

Instalar Nginx PHP y MySQL #

Postfix Administra una aplicación basada en PHP. Para poder acceder a la interfaz web de PostfixAdmin necesitamos instalar un servidor web y PHP.

Ejecute el siguiente comando para instalar Nginx, PHP y todos los módulos PHP necesarios:

sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline

Se le pedirá que cree una contraseña raíz de MySQL durante la instalación.

Descargar y configurar Postfix Admin #

En el momento de escribir este artículo, 3.1 es la última versión estable de Postfix Admin.

Descargue el archivo de administración de Postfix usando el siguiente comando wget:

VERSION=3.1wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz

Una vez que se complete la descarga, extraiga el archivo:

tar xzf postfixadmin-${VERSION}.tar.gz

Mueva los archivos fuente de Postfix Admin a /var/www directorio y crea templates_c directorio (caché inteligente):

sudo mv postfixadmin-${VERSION}/ /var/www/postfixadminrm -f postfixadmin-${VERSION}.tar.gzmkdir /var/www/postfixadmin/templates_c

Tanto Nginx como PHP-FPM se ejecutan bajo el usuario www-data entonces necesitamos cambiar la propiedad de /var/www/postfixadmin a ese usuario:

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

Postfix Admin utilizará una base de datos MySQL para almacenar información sobre usuarios, dominios y la configuración de la aplicación.

Inicie sesión en el shell de MySQL:

mysql -u root -p

Cree una nueva base de datos y usuario de MySQL usando los siguientes comandos:

CREATE DATABASE postfixadmin;GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';FLUSH PRIVILEGES;
No olvides cambiar la contraseña (P4ssvv0rD ) a algo más seguro.

En lugar de editar la configuración predeterminada de Postfix Admin, crearemos un nuevo archivo llamado config.local.php que sobrescribirá la configuración predeterminada de la aplicación:

Abra el archivo con su archivo de texto:

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

Pegue el siguiente código php:

/var/www/postfixadmin/config.local.php
<?php
$CONF['configured'] = true;

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'P4ssvv0rD';
$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.

Con la configuración anterior estamos definiendo el tipo de base de datos y las credenciales de inicio de sesión. Además, estamos especificando los alias predeterminados, deshabilitando fetchmail y habilitar la cuota.

A continuación, ejecute el siguiente comando para crear el esquema para la base de datos de administración de Postfix:

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

Una vez que se completa la base de datos, podemos continuar y crear nuestro primer usuario superadministrador de PostfixAdmin usando el postfixadmin-cli herramienta.

Este usuario tendrá privilegios de administración para modificar cualquier configuración de dominio o aplicación.

sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add [email protected] --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD

La salida debería verse así:

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

The admin [email protected] has been added!

---------------------------------------------------------------
No olvides cambiar la contraseña (P4ssvv0rD ) para la cuenta de superadministrador a algo más seguro.

Instalar certificado Let's Encrypt SSL gratuito n.°

Usaremos el certificado SSL para acceder a nuestra instalación de Postfix Admin y habilitar el cifrado Dovecot y Postfix SSL/TLS.

Tenemos un tutorial sobre cómo instalar un certificado SSL de Let's Encrypt. El punto más importante aquí es generar un Certificado SSL para el nombre de host de su servidor (FQDN) en nuestro caso mail.linuxize.com .

Una vez que haya generado el certificado SSL siguiendo el tutorial vinculado anteriormente, edite su bloque de servidor Nginx de la siguiente manera:

/etc/nginx/sites-enabled/mail.linuxize.com.conf
server {
    listen 80;
    server_name mail.linuxize.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mail.linuxize.com;
    root /var/www;

    ssl_certificate /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.linuxize.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxize.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    location / {
       try_files $uri $uri/ /index.php;
    }

    location /postfixadmin {
       index index.php;
       try_files $uri $uri/ /postfixadmin/index.php;
    }

    location ~* \.php$ {
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         if (!-f $document_root$fastcgi_script_name) {return 404;}
         fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Vuelva a cargar el servicio Nginx para que los cambios surtan efecto:

sudo systemctl reload nginx

En este punto, debería poder iniciar sesión en su instalación de Postfix Admin en https://mail.linuxize.com/postfixadmin , utilizando el usuario superadministrador creado anteriormente en este tutorial.


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

  2. Configure un servidor de correo con PostfixAdmin y MariaDB en CentOS 7

  3. Cómo configurar un servidor de correo con PostfixAdmin en CentOS 7

  4. Cómo instalar un servidor de correo con PostfixAdmin en Ubuntu 20.04

  5. Configurar un servidor de correo con PostfixAdmin en Debian 9

Cómo configurar rápidamente un servidor de correo en Ubuntu 20.04 con Modoboa

Cómo instalar un servidor de correo con PostfixAdmin en CentOS 7

Configurar Ubuntu Server con EHCP (LÁMPARA, DNS, FTP, Correo)

Cómo configurar un servidor de correo con todas las funciones con IRedMail en Centos 7 VPS

Cómo configurar un servidor de correo con todas las funciones con iRedMail en Ubuntu 18.04 VPS

Cómo configurar un servidor de correo con Modoboa en Ubuntu 20.04