GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura un server di posta con PostfixAdmin

Postfix Admin è un'interfaccia basata sul Web che consente agli utenti di configurare e gestire un server di posta elettronica basato su Postfix. Con Postfix Admin puoi creare e gestire più domini virtuali, utenti e alias.

Questo è il primo post della serie per l'impostazione e la configurazione di un server di posta che copre la creazione dei record DNS necessari e spiega come installare e configurare Postfix Admin, Nginx con certificato Let's Encrypt gratuito, PHP e MySQL.

Questo tutorial è stato scritto per Ubuntu 16.04, tuttavia gli stessi passaggi con piccole modifiche dovrebbero funzionare su qualsiasi versione più recente di Ubuntu.

Prerequisiti #

Come prerequisiti per seguire questa serie, avrai bisogno di:

  • Server Ubuntu 16.04. Il nome host del server deve essere un FQDN. In questa serie useremo mail.linuxize.com .
  • Utente con privilegi sudo.

Impostazioni DNS #

Devi impostare i seguenti record DNS affinché il tuo sistema di posta funzioni:

  • Un record, per indirizzare l'FQDN (nome host) del tuo sistema all'indirizzo IPv4 del tuo server di posta.
mail.linuxize.com. 3600 IN A   23.45.67.89
L'FQDN è composto da due parti, il nome host e il nome di dominio.
  • Record MX, per specificare quale server di posta è responsabile dell'accettazione dei messaggi di posta elettronica per conto del dominio di un destinatario. Nel nostro caso vogliamo che tutte le email vengano inviate a @linuxize.com indirizzi email che devono essere accettati da mail.linuxize.com server di posta.
linuxize.com.      3600 IN MX  0 mail.linuxize.com.
  • Record SPF, utilizzato per verificare quali server di posta sono autorizzati a inviare e-mail per conto di un determinato dominio. Nell'esempio seguente stiamo approvando i server di posta del dominio (mx) e se il controllo SPF fallisce, il risultato sarà un errore graduale (~tutti):
linuxize.com.      3600 IN TXT "v=spf1 mx ~all"
Ovviamente è necessario sostituire il nome di dominio e l'indirizzo IP con il nome di dominio reale e l'indirizzo IP del server di posta.

DNS inverso (PTR) #

Reverse DNS (PTR) è un indirizzo IP per la mappatura del nome di dominio, l'esatto opposto del DNS che mappa i nomi di dominio per gli indirizzi IP.

La maggior parte dei server di posta elettronica eseguirà una ricerca DNS inversa sull'indirizzo IP che sta tentando di connettersi ad essi e potrebbe non accettare e-mail dal server se il record PTR non è impostato.

Nella maggior parte dei casi, le voci PTR possono essere impostate tramite l'interfaccia web del provider di hosting o contattando il team di supporto e chiedendo loro di impostare un record PTR corretto per te.

Puoi utilizzare il comando dig per scoprire il DNS inverso di un determinato indirizzo IP.

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

Crea un utente di sistema #

Poiché stiamo configurando un server di posta con utenti virtuali, abbiamo bisogno di un utente di sistema che sarà il proprietario di tutte le caselle di posta e sarà utilizzato dagli utenti virtuali per accedere ai loro messaggi di posta elettronica sul server.

Il comando seguente creerà un nuovo gruppo e utente chiamato vmail e imposta la directory home dell'utente su /var/mail/vmail :

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

Tutte le caselle di posta virtuali verranno archiviate in /var/mail/vmail directory.

Installa Nginx PHP e MySQL #

Postfix amministra un'applicazione basata su PHP. Per poter accedere all'interfaccia web di PostfixAdmin è necessario installare un server web e PHP.

Esegui il comando seguente per installare Nginx, PHP e tutti i moduli PHP richiesti:

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

Ti verrà chiesto di creare una password di root MySQL durante l'installazione.

Scarica e configura Postfix Admin #

Al momento della scrittura, 3.1 è l'ultima versione stabile di Postfix Admin.

Scarica l'archivio di Postfix Admin usando il seguente comando wget:

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

Una volta completato il download, estrarre l'archivio:

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

Sposta i file sorgente di Postfix Admin nel /var/www directory e crea templates_c directory (cache smarty):

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

Sia Nginx che PHP-FPM funzionano con l'utente www-data quindi dobbiamo cambiare la proprietà del /var/www/postfixadmin a quell'utente:

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

Postfix Admin utilizzerà un database MySQL per memorizzare informazioni su utenti, domini e configurazione dell'applicazione.

Accedi alla shell MySQL:

mysql -u root -p

Crea un nuovo utente e database MySQL utilizzando i seguenti comandi:

CREATE DATABASE postfixadmin;GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';FLUSH PRIVILEGES;
Non dimenticare di cambiare la password (P4ssvv0rD ) a qualcosa di più sicuro.

Invece di modificare la configurazione predefinita di Postfix Admin, creeremo un nuovo file chiamato config.local.php che sovrascriverà le impostazioni predefinite dell'applicazione:

Apri il file con il tuo file di testo:

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

Incolla il seguente codice 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';
?>

Salva e chiudi il file.

Con la configurazione sopra si definisce il tipo di database e le credenziali di accesso. Inoltre, stiamo specificando gli alias predefiniti, disabilitando fetchmail e abilitazione della quota.

Quindi, esegui il comando seguente per creare lo schema per il database di Postfix Admin:

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

Una volta che il database è popolato, possiamo continuare e creare il nostro primo utente Superadmin di PostfixAdmin usando il postfixadmin-cli strumento.

Questo utente avrà i privilegi di amministratore per modificare qualsiasi impostazione di dominio o applicazione.

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

L'output dovrebbe essere simile a questo:

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

The admin [email protected] has been added!

---------------------------------------------------------------
Non dimenticare di cambiare la password (P4ssvv0rD ) per l'account superadmin a qualcosa di più sicuro.

Installa gratuitamente il certificato SSL Let's Encrypt #

Utilizzeremo il certificato SSL per accedere alla nostra installazione di Postfix Admin e abilitare la crittografia SSL/TLS Dovecot e Postfix.

Abbiamo un tutorial su come installare un certificato SSL Let's Encrypt. Il punto più importante qui è generare un certificato SSL per il nome host del tuo server (FQDN) nel nostro caso mail.linuxize.com .

Dopo aver generato il certificato SSL seguendo il tutorial collegato sopra, modifica i blocchi del tuo server Nginx come segue:

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

Ricarica il servizio Nginx per rendere effettive le modifiche:

sudo systemctl reload nginx

A questo punto dovresti essere in grado di accedere alla tua installazione di Postfix Admin su https://mail.linuxize.com/postfixadmin , utilizzando l'utente superadmin creato in precedenza in questo tutorial.


Ubuntu
  1. Come configurare un server di posta con PostfixAdmin su Debian 11

  2. Configura un server di posta con PostfixAdmin e MariaDB su CentOS 7

  3. Come configurare un server di posta con PostfixAdmin su CentOS 7

  4. Come installare un server di posta con PostfixAdmin su Ubuntu 20.04

  5. Configura un server di posta con PostfixAdmin su Debian 9

Come configurare rapidamente un server di posta su Ubuntu 20.04 con Modoboa

Come installare il server di posta con PostfixAdmin su CentOS 7

Configura il server Ubuntu con EHCP (LAMP, DNS, FTP, Mail)

Come configurare un server di posta completo con IRedMail su Centos 7 VPS

Come configurare un server di posta completo con iRedMail su Ubuntu 18.04 VPS

Come configurare un server di posta con Modoboa su Ubuntu 20.04