GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Postfix su Ubuntu 18.04

Postfix è un server di posta gratuito originariamente sviluppato come alternativa, più semplice e più sicuro a sendmail. Questo tutorial ti mostrerà come configurare un server di posta suffisso sul tuo server Ubuntu 18.04. Postfix ti consente di gestire utenti virtuali e per questo creiamo un gruppo virtuale. Gestiremo facilmente il nostro server di posta utilizzando postfixadmin per gli utenti virtuali e dovecot per le email in arrivo.

Cosa devi capire

Per ricevere la posta un prerequisito è avere un IP fisso, un server DNS in esecuzione o sul proprio server o su un provider di hosting su cui è possibile modificare le registrazioni. Definiamo alcuni acronimi che verranno utilizzati su questa configurazione:

  • Postfix è l'agente di trasferimento della posta (MTA ) utilizzato per inviare e ricevere e-mail
  • Dovecot è l'agente di consegna locale (LDA ) che utilizzano i server IMAP (Internet Messaging Application Protocol) e Post Office Protocol (POP3).
  • SASL definito da Simple Authentication e Secure Layer, aggiunge un'autenticazione tra l'utente e il server per proteggere gli scambi.
  • Amministratore Postfix l'interfaccia web che ti permette di gestire caselle di posta, domini virtuali e alias
  • LEMP: il server web con Nginx e PHP per accedere a postfixadmin e gestire facilmente utenti e domini virtuali, MySQL per memorizzare tutte le informazioni.

Ci sono due tipi di domini in Postfix:

  • Domini locali utilizzato per inviare e-mail agli utenti del sistema elencati in /etc/passwd file.
  • Domini virtuali che non necessitano di un account di sistema presente nel /etc/passwd file. Fornisce un modo per gestire migliaia di account di posta molto facilmente nel sistema del server di posta utilizzando MySQL, PostgreSQL o LDAP per la gestione degli account utente.

Passaggio 1) Installa e configura Postfixadmin

Postfixadmin è un modulo web che ti permette di manipolare facilmente domini virtuali e utenti in un database.

a) Scarica postfixadmin

Per prima cosa, installeremo i pacchetti richiesti

# apt install php-imap php-mbstring php7.2-imap php7.2-mbstring
Reading package lists... Done
Building dependency tree 
Reading state information... Done
...
...

Normalmente postfixadmin è presente nei repository predefiniti di Ubuntu 18.04 ma proverà ad installare Apache e PostgreSQL invece di Nginx e MySql. Quindi, per mantenere la nostra configurazione, scaricheremo l'ultima versione attuale 3.2 dal sorgente sul progetto del sito Github e salvalo in /opt cartella

# wget -P /opt https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
--2018-06-11 21:53:14--  https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found

Ora vai in quella cartella e decomprimila.

# cd /opt && tar xvf postfixadmin-3.2.tar.gz

Ora dovremmo rinominarlo

# mv postfixadmin-postfixadmin-3.2/ postfixadmin

Postfixadmin utilizza uno script chiamato setup.php che utilizzeremo tramite il web server durante l'installazione. Nella versione precedente di postfix (3.1 e precedenti), questo script si trova direttamente nella cartella principale di Postfixadmin ma nella versione attuale (3.2) è contenuto nella sottodirectory public della cartella postfixadmin. Normalmente dovremmo spostare postfixadmin nella cartella principale del nostro server web Nginx, ma con questa nuova versione creeremo solo un collegamento simbolico della cartella pubblica che contiene lo script, quindi rinomineremo per sicurezza

# ln -s /opt/postfixadmin/public/ /var/www/html/pfa
root@li1002-235:~# ls -l /var/www/html/
total 4
-rw-r--r-- 1 root root 612 Jun 10 04:51 index.nginx-debian.html
lrwxrwxrwx 1 root root  25 Jun 12 04:01 pfa -> /opt/postfixadmin/public/

b) Creare il database suffisso

Ora dovremmo connetterci al database mysql per alcune configurazioni

# mysql -u root -p
Enter password:

Quindi crea il database e l'utente

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix-db-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

c) Configura postfixadmin

Ora che abbiamo configurato il database, dovremmo indicarlo a postfixadmin in modo che possa sapere dove ottenere le informazioni. Per fare ciò, crea il /opt/postfixadmin/config.local.php file e aggiungi il contenuto di seguito

# vim /opt/postfixadmin/config.local.php

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix-db-password';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>

postfixadmin richiede l'autorizzazione per una sottocartella denominata templates_c quello non esiste. Quindi, per evitare alcuni errori durante l'installazione come di seguito,

Dovremmo crearlo manualmente e fornire www-data proprietà utilizzando il comando chown.

# mkdir /opt/postfixadmin/templates_c && chmod 755 -R /opt/postfixadmin/templates_c
# chown -R www-data:www-data /opt/postfixadmin/templates_c

Quindi riprova, vedrai che ora funziona e controlla tutta la configurazione, mostra la versione del tuo php e Ubuntu

Ora dovremmo creare una password per l'installazione e generarne l'hash

Ora ti permetterà di creare l'account di superamministratore e utilizzerai la password di configurazione che hai creato. Ma per questo, devi modificare il /opt/postfixadmin/config.local.php file per aggiungere il valore dell'hash della password generata. Quindi procedi alla creazione dell'account di superamministratore

Ora vedrai che l'account è stato aggiunto.

Ora come puoi vedere, puoi accedere a postfixadmin con l'account utilizzando il link http://tuo-ip-o-dominio/pfa

Se questa pagina non viene visualizzata, controlla il file di registro degli errori di nginx

# tail -n 20 -f /var/log/nginx/error.log

E assicurati di avere i permessi corretti su /opt/postfixadmin/templates_c cartella. Puoi vedere la descrizione di ogni menu quando accedi.

d) Crea domini virtuali, utenti e alias

Ora creeremo i domini virtuali, quindi gli utenti. Un dominio è un nome di dominio come mytuto.com . Puoi avere e-mail sul tuo dominio utilizzando lo stesso server. Quando inizi non hai alcun dominio. Per aggiungere un dominio, vai a Elenco domini -> Nuovo dominio .

Quindi inserisci le informazioni sul dominio. Puoi limitare il numero di alias e caselle di posta. Ricordati di aggiungere il record MX. Al termine della scelta dei valori, aggiungi il dominio.

Ora che il nostro dominio virtuale è stato creato, puoi vederlo nell'elenco Domini

Ora possiamo creare i nostri utenti virtuali. Per fare ciò, vai su Elenco virtuale -> Aggiungi casella di posta .

Possiamo anche creare alias. Questi sono indirizzi e-mail che reindirizzeranno le e-mail a un altro account. Normalmente qualsiasi server di posta deve avere un indirizzo e-mail abuso , in modo da poter ad esempio segnalare uno spam da un dominio. Quindi crea un abuso di alias dal tuo dominio al tuo utente che hai appena creato in precedenza. Per farlo, vai su Elenco virtuale -> Aggiungi alias .

Puoi creare tutti quei parametri virtuali alla fine, ma ci aiuterà nel passaggio successivo per la configurazione di postfix.

Passaggio 2) Installa e configura postfix

a) Installa suffisso

Ora possiamo installare i pacchetti postfix.

# apt install postfix postfix-mysql sasl2-bin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  db-util db5.3-util libmysqlclient20 ssl-cert
Suggested packages:
  procmail postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb
...
...

Dovrai rispondere a due domande sul tipo di posta e sul nome del tuo server di posta. Assicurati di sostituire il nome host e dominio valori con i tuoi

  • il tipo di configurazione della posta:Sito Internet
  • il nome dell'e-mail di sistema:nomehost.dominio.com

Assicurati che sasl venga eseguito all'avvio modificando il suo file di configurazione

# vim /etc/default/saslauthd

# Should saslauthd run automatically on startup? (default: no)
START=yes

Ora riavvia il servizio

# systemctl restart saslauthd

Poiché stiamo configurando un server di posta con utenti virtuali, abbiamo bisogno di un proprietario di tutte le cassette postali, quindi creeremo un utente di sistema che verrà utilizzato da tutti gli utenti virtuali per accedere alla posta elettronica sul server. Innanzitutto, crea il proprietario del gruppo e la cartella in cui verranno archiviate le cassette postali.

# groupadd -g 5000 vmail && mkdir -p /var/mail/vmail

Ora crea il proprietario

# useradd -u 5000 vmail -g vmail -s /usr/sbin/nologin -d /var/mail/vmail

Assicurati di concedere l'autorizzazione della directory di posta al proprietario in modo che possa archiviare le e-mail nelle directory appropriate.

# chown -R vmail:vmail /var/mail/vmail

Se non lo fai, dovecot non sarà in grado di creare le cartelle richieste per memorizzare le email.

b) Creare i file di configurazione per il database

Ora crea una cartella che conterrà alcuni file di database

# mkdir -p /etc/postfix/sql

Postfix ha bisogno di 03 file di database che gli consentano di accedere al database che abbiamo creato in precedenza:

  • Domini per contenere l'elenco dei nomi di dominio ospitati sul server. consentirà a Postfix di determinare se il nostro server è responsabile di un dominio (mytuto.com) quando riceve un'e-mail ([email protected]) su di essa. In tal caso, significherà che il dominio è nel nostro database.
# vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Abiliteremo la configurazione e la aggiungeremo automaticamente a /etc/postfix/main.cf archiviare e ricaricare la configurazione del suffisso per evitare di doverlo fare manualmente. Quindi il file verrà aggiornato ogni volta che usi questo comando con nuovi valori.

# postconf -e virtual_mailbox_domains=mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

Ora possiamo controllare la configurazione. Eseguiremo un comando che eseguirà la query contenuta nel file per cercare un dominio nel nostro database. Un elemento (il dominio cercato) deve essere restituito oppure niente se il dominio non è presente.

# postmap -q mytuto.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
mytuto.com

Come puoi vedere, postfix è in grado di recuperare i domini archiviati nel nostro database

  • Casella di posta per memorizzare tutti gli indirizzi email virtuali. Verrà utilizzato per verificare anche se le caselle di posta esistono
# vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

Ora aggiorniamo il file di configurazione

# postconf -e virtual_mailbox_maps=mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Eseguire il comando per testare la query sul database

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
mytuto.com/alain/
  • Alias per contenere i diversi alias email.
# vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Ora aggiungi la configurazione

# postconf -e virtual_alias_maps=mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf

Ora esegui il comando per testare la query. È l'utente di destinazione ([email protected]) che dovrebbe essere visualizzato e non l'indirizzo di abuso. Mostra che Postfix può fare la corrispondenza.

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
[email protected]

Assicurati che quei file non siano leggibili dagli utenti normali perché le password sono archiviate in chiaro.

# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root root 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root root 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root root 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

Affinché Postfix possa leggere quei file, possiamo cambiare il proprietario del gruppo in Postfix

# chgrp postfix /etc/postfix/sql/mysql_*.cf
# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root postfix 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root postfix 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root postfix 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

c) Configura suffisso

Ora modificheremo manualmente il file di configurazione principale di postfix. Quindi, fai una copia prima di modificare

# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

Ora attiveremo SASL per forzare l'autenticazione per l'invio di e-mail e trasferire l'autenticazione a Dovecot. Assicurati di aggiungere le righe sotto

# vim /etc/postfix/main.cf

# Allow authenticated users to send email, and use Dovecot to authenticate them. Tells Postfix to use Dovecot for authentication
smtpd_sasl_type = dovecot
## Path to the Postfix auth socket
smtpd_sasl_path = private/auth
## Tells Postfix to let people send email if they've authenticated to the server.
## Otherwise they can only send if they're logged in (SSH)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Enable authentication only for those with a TLS connection.
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
# Tells Postfix who can send email: SASL-authenticated users connecting from a network specified in 'mynetworks'
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

Ora modifichiamo il /etc/postfix/master.cf file di configurazione. È il file di configurazione del processo. Abiliteremo le porte SMTP sicure aggiungendo o decommentando le righe seguenti e facendone una copia prima

# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vim /etc/postfix/master.cf
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Ora puoi eseguire postconf -n comando per verificare alcuni errori

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
...
...

Se non hai messaggi di avviso, significa che i tuoi file non contengono errori. Ora puoi riavviare il servizio postfix

# systemctl restart postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-06-13 10:16:02 UTC; 27s ago
  Process: 12225 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 12225 (code=exited, status=0/SUCCESS)

Fase 3) Installa e configura Dovecot

Ora che Postfix è installato e configurato, dobbiamo installare Postfix per gestire i protocolli pop e imap, che ci consentono di recuperare le nostre email.

a) Installazione di Dovecot

I pacchetti Dovecot sono presenti nei repository predefiniti di Ubuntu 18.04. Lo installeremo con il supporto per mysql. Installeremo setaccio che è utile perché metterà automaticamente i messaggi nelle cartelle corrispondenti. Significa che, per ogni dominio, creerà una cartella corrispondente contenente la cartella corrispondente di un utente virtuale in cui archiviare i suoi file di posta elettronica.

# apt install dovecot-imapd dovecot-mysql dovecot-managesieved
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dovecot-core dovecot-sieve libexttextcat-2.0-0 libexttextcat-data
Suggested packages:
...
...

Comprendilo, se non vuoi usare setaccio , per ogni dominio, probabilmente dovrai creare manualmente le cartelle corrispondenti in modo da archiviare le sue email e questo non è facile se hai molti domini.

b) Configurazione colombaia

La configurazione di Dovecot è contenuta in più file in /etc/dovecot/conf.d . Per prima cosa, controlla il contenuto del /etc/dovecot/dovecot.conf per non commentare queste righe

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf

Ora vai nella cartella contenente i file di configurazione

# cd /etc/dovecot/conf.d

Modificheremo:

  • il 10-auth.conf per modificare i meccanismi di connessione aggiungendo o decommentando le righe. Dovecot utilizza gli utenti del sistema per impostazione predefinita, ma noi utilizziamo gli utenti Mysql
# cp 10-auth.conf 10-auth.conf.bak
# vim 10-auth.conf

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext
  • il auth-sql.conf.ext file per la configurazione sql
# cp auth-sql.conf.ext auth-sql.conf.ext.bak
# vim auth-sql.conf.ext

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vmail/%d/%n
}
  • ora modifichiamo il /etc/dovecot/dovecot-sql.conf.ext per dire a dovecot come connettersi al database SQL
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bak
# vim /etc/dovecot/dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-db-password
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
default_pass_scheme = MD5-CRYPT
  • Ora modificheremo il 10-mail.conf per configurare la directory del percorso di posta
# cp 10-mail.conf 10-mail.conf.bak
# vim 10-mail.conf
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
mail_privileged_group = mail
  • Ora modificheremo il 10-master.conf file per la connessione al socket.
# cp 10-master.conf 10-master.conf.bak
# vim 10-master.conf

service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  user = dovecot
}
  • Ora dobbiamo configurare l'LDA 15-lda.conf file da indicare setaccio per organizzare automaticamente la posta nella cartella corrispondente
# cp 15-lda.conf 15-lda.conf.bak
# vim 15-lda.conf

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Dovremmo dare il permesso se vogliamo che l'utente vmail possa lanciare dovecot

# chgrp vmail /etc/dovecot/dovecot.conf

Ora puoi riavviare il servizio dovecot

# systemctl restart dovecot

Puoi controllare il registro della posta per eventuali errori

# tail -n 20 -f /var/log/mail.log

c) Integra dovecot in postfix

Ora che abbiamo configurato dovecot, dovremmo indicare postfix per lavorare con dovecot. Modifica il file di configurazione del suffisso principale e aggiungi le righe seguenti alla fine del file

# vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

Ora modifica il file di configurazione principale del postfix

 # vim /etc/postfix/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Quindi riavvia Postfix

# systemctl restart postfix

Puoi controllare il registro della posta per eventuali errori

# tail -n 20 -f /var/log/mail.log
Jun 14 08:10:00 myserver postfix/postfix-script[28361]: starting the Postfix mail system
Jun 14 08:10:00 myserver postfix/master[28363]: daemon started -- version 3.3.0, configuration /etc/postfix

Puoi vedere che tutta la configurazione è buona. ora dobbiamo fare qualche prova

Fase 4) Test del server di posta

Per i test nella riga di comando, è necessario installare il pacchetto mailutils prima di inviare e-mail

# apt install mailutils
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libntlm0 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
 mailutils-common
...
...

Ora dobbiamo inviare delle email e controllare se le cartelle corrispondenti ai domini e agli utenti sono state effettivamente create. Per questo, invieremo prima una mail al nostro attuale utente creato in postfixadmin durante la sua configurazione

# echo "Hello Alain" | mail -s "test mail" [email protected]

Per prima cosa, controlliamo il registro della posta

 # tail -n 20 -f /var/log/mail.log

Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: from=<[email protected]>, size=384, nrcpt=1 (queue active)
Jun 14 08:17:04 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:17:04 myserver postfix/pipe[28406]: 1715240BF9: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: removed

Possiamo vedere che la posta è stata inviata con successo. Ora controlliamo se sono state create le cartelle corrispondenti

# ls -R /var/mail/vmail/
/var/mail/vmail/:
mytuto.com

/var/mail/vmail/mytuto.com:
alain

/var/mail/vmail/mytuto.com/alain:
Maildir

/var/mail/vmail/mytuto.com/alain/Maildir:
cur  dovecot.index.cache  dovecot.index.log  dovecot-uidlist  dovecot-uidvalidity  dovecot-uidvalidity.5b222480  new  tmp

/var/mail/vmail/mytuto.com/alain/Maildir/cur:

/var/mail/vmail/mytuto.com/alain/Maildir/new:
'1528964224.M129536P28407.myserver,S=455,W=467'

/var/mail/vmail/mytuto.com/alain/Maildir/tmp:

Puoi vedere che le cartelle sono automaticamente presenti. Per una visione migliore, proviamo con l'albero dei comandi. Per prima cosa installalo

 apt install tree

Ora vediamo le cartelle di posta con una vista migliore

# tree /var/mail/vmail/
/var/mail/vmail/
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

6 directories, 6 files

Ora puoi vedere perfettamente. Possiamo fare un altro test creando un nuovo dominio virtuale e utente su postfixadmin. Creiamo il dominio virtuale example.com

e l'utente virtuale [email protected]

Ora inviamo una mail al nuovo utente virtuale

# echo "Hello Francois" | mail -s "test config" [email protected]

Ora controlla il registro della posta

# tail -n 20 -f /var/log/mail.log

Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: from=<[email protected]>, size=393, nrcpt=1 (queue active)
Jun 14 08:35:10 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:35:10 myserver postfix/pipe[28481]: CE43F40C5E: to=<[email protected]>, relay=dovecot, delay=0.06, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: removed

Ora verifica l'albero delle cartelle

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   └── 1528965310.M888145P28482.myserver,S=468,W=480
│           └── tmp
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

Puoi vedere che abbiamo due sottodirectory con i domini mytuto.com e example.com quale il file per ogni utente virtuale dei diversi domini. Ora facciamo l'ultimo test, gli utenti virtuali si scambieranno email

# echo "Hello Francois, it's Alain" | mail -s "Subject" -aFrom:alain\<[email protected]\> [email protected]

Controlla il registro della posta

# tail -n 20 -f /var/log/mail.log

Jun 14 23:15:01 myserver postfix/pickup[28373]: 8558240BDA: uid=0 from=<[email protected]>
Jun 14 23:15:01 myserver postfix/cleanup[28595]: 8558240BDA: message-id=<[email protected]>
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: from=<[email protected]>, size=398, nrcpt=1 (queue active)
Jun 14 23:15:01 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 23:15:01 myserver postfix/pipe[28597]: 8558240BDA: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: removed

Ora possiamo vedere la cartella della posta

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   ├── 1528965310.M888145P28482.myserver,S=468,W=480
│           │   └── 1528966081.M582572P28598.myserver,S=455,W=467
...
...

puoi vedere che la cartella new contiene ora due file. Possiamo aprire il file contenente la posta

# cat /var/mail/vmail/example.com/francois/Maildir/new/1528966081.M582572P28598.hostname\,S\=455\,W\=467 
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by myserver.domain.com (Postfix, from userid 0)
        id 8558240BDA; Thu, 14 Jun 2018 23:15:01 +0000 (UTC)
Subject: Subject
From: alain<[email protected]>
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Thu, 14 Jun 2018 23:15:01 +0000 (UTC)

Hello Francois, it's Alain

Puoi vedere il contenuto che mostra che funziona anche.

Conclusione

Sai come configurare un sistema di posta completamente funzionale con Postfix, Dovecot e Postfixadmin con Nginx. La cosa più importante è dare il giusto permesso per non affrontare problemi. Dovresti notare che puoi usare dovecot con altri protocolli invece di LDA. La prossima volta ti mostreremo come installare RoundCube in modo che gli utenti virtuali possano avere un'interfaccia web per leggere facilmente le loro e-mail e integreremo PhpMyAdmin per manipolare facilmente il database. Sentiti libero di inviarci i tuoi commenti per migliorare questo tutorial.

Leggi anche:

  • Come configurare Postfix Mail Server su Ubuntu 16.04 (Dovecot - MySQL)
  • Come configurare Postfix con Webmail su Ubuntu 18.04
  • How to Setup Greylisting Service on Postfix Mail Server
  • How to Setup Postfix Mail Server with DKIM
  • How to Setup Mail Server Using Postfix, MariaDB, Dovecot and Roundcube

Ubuntu
  1. Come installare e configurare Algo VPN Server su Ubuntu 20.04

  2. Come installare e configurare il server DHCP su Ubuntu 20.04

  3. Come installare e configurare il server Redis in Ubuntu

  4. Come installare e configurare Squid Proxy su Ubuntu 20.04

  5. Come installare e configurare il server Web Apache su Ubuntu 13.10

Come installare e configurare il server LAMP su Ubuntu

Come installare e configurare il server OpenLDAP su Ubuntu 16.04

Come installare e configurare il server VNC su Ubuntu 20.04

Come installare e configurare VNC su Ubuntu Server 20.04

Come installare e configurare il server DNS su Ubuntu 16.04 LTS

Come installare e configurare Parse Server su Ubuntu 20.04