GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare Postfix Mail Server su Ubuntu 16.04 (Dovecot - MySQL)

In generale, tutti i server di posta sono costituiti da tre componenti principali:MTA, MDA e MUA. Ciascun componente svolge un ruolo specifico nel processo di spostamento e gestione dei messaggi di posta elettronica ed è importante per garantire la corretta consegna della posta elettronica. Quindi, la configurazione di un server di posta è un processo difficile che implica la corretta configurazione di questi componenti. Il modo migliore è installare e configurare ogni singolo componente uno per uno, assicurandoti che ognuno funzioni e costruendo gradualmente il tuo server di posta.

In questo articolo fornisco le linee guida su come configurare un server di posta su un server Ubuntu 16.04 con Postix (MTA) e Dovecot (MDA) utilizzando un database esterno (MySQL) per la gestione degli utenti virtuali. Innanzitutto iniziamo con i prerequisiti per costruire il nostro server di posta.

Prerequisiti

  • Server installato MySQL
  • Un nome host completo
  • Risoluzione del dominio sul tuo server

Dopo aver soddisfatto completamente i nostri prerequisiti, possiamo iniziare a creare il nostro server di posta uno per uno.

Installazione dei pacchetti

Innanzitutto, dobbiamo aggiornare i nostri pacchetti di repository APT e iniziare con l'installazione dei pacchetti postfix e dovecot richiesti.

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Durante l'installazione di Postfix, verranno visualizzate le finestre di configurazione per la configurazione iniziale. Dobbiamo scegliere il "sito internet" e impostare un FQDN come nome di posta del nostro sistema durante la fase di installazione. Si procede con l'installazione dei pacchetti richiesti come di seguito.

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) ..

Crea un Database per la gestione degli utenti di posta

Il prossimo passo è creare un database per la gestione degli utenti e-mail e dei domini sul nostro server di posta. Come ho detto prima, stiamo gestendo gli utenti di posta elettronica con questo database MySQL. Possiamo installare MySQL se non è installato eseguendo questo comando apt-get install mysql-server-5.7 .

Creeremo un database chiamato "lnmailserver" con tre tabelle come di seguito:

  • Domini virtuali:per la gestione dei domini
  • Utenti virtuali:per la gestione degli utenti di posta elettronica
  • Alias ​​virtuale:per impostare gli alias

Creiamo i nostri database con tutte queste tabelle.

  • Creazione di un database denominato lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • Creazione di un utente DB lnmailuser e concedendo l'accesso a questo database con una password.
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
  • Passaggio al database lnmailserver e creando le nostre tre tabelle, vale a dire virtual_domains, virtual_users e virtual_aliases con una specifica e un formato tabella.
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
  • Aggiunta di domini, utenti e alias a ciascuna di queste tabelle in base ai nostri requisiti.
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec)
  • Verifica del contenuto di ogni tabella
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit

Configurazione di Postfix

Il nostro prossimo passo è modificare la configurazione di Postfix in base al nostro piano di configurazione di come dobbiamo accettare le connessioni SMTP. Prima di apportare modifiche alla configurazione, si consiglia sempre di eseguire un backup del file.

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp

Ora possiamo aprire il file e apportare le seguenti modifiche.

  • Modifica le seguenti voci per abilitare il supporto TLS per la connessione degli utenti, specifica il certificato SSL utilizzato per proteggere la connessione.
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

Sto usando certificati SSL Dovecot gratuiti che sono specificati qui. Possiamo generare certificati SSL autofirmati dovecot con il comando seguente. Se hai un certificato SSL valido per il tuo nome host, puoi invece specificare quelli.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • Dobbiamo aggiungere questi parametri TLS alla configurazione di Postfix che fa sì che Postfix utilizzi Dovecot per l'autenticazione e per inizializzare le connessioni.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
  • Dobbiamo commentare le voci predefinite di "mydestination" e aggiornarlo per utilizzare solo "localhost".
mydestination = localhost
  • Conferma la parte myhostname, se è impostata correttamente come nome host FQDN.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • La modifica di questo parametro consente a Postfix di utilizzare LMTP di Dovecot anziché la propria LDA per salvare le e-mail nelle caselle di posta locali, abilitando così la consegna della posta locale per tutti i domini elencati nel database MySQL.
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • In ultimo, ma non meno importante, dobbiamo dire a Postfix che stiamo utilizzando un database esterno per gestire i domini, gli utenti e gli alias. Dobbiamo aggiungere il percorso di configurazione per recuperare questi dettagli dalle tabelle del database.
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Ora dobbiamo creare questi file sopra menzionati uno per uno. Si prega di vedere i dettagli del mio file di seguito:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Questi file descrivono come Postfix si connette al database esterno. Dobbiamo riavviare Postfix dopo aver apportato queste modifiche.

root@ubuntu:~# service postfix restart

Dobbiamo eseguire questi comandi seguenti per confermare la connettività e verificare se Postfix è in grado di recuperare le informazioni richieste dal database.

  • Per verificare se Postfix trova il tuo dominio dal database, possiamo eseguire questo. Questo dovrebbe restituire '1' se il tentativo ha esito positivo.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Per verificare se Postfix trova l'indirizzo e-mail richiesto dal database, possiamo eseguire questo. Anche questo dovrebbe restituire '1' se ha esito positivo.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Per verificare se Posfix trova il tuo inoltro e-mail dal database, possiamo eseguire questo. Questo dovrebbe restituire il tuo set di inoltro email se il tentativo ha esito positivo.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

Nota:puoi connetterti in modo sicuro con i tuoi client di posta elettronica utilizzando Postfix sulla porta 587, puoi aprire la porta decommentando la parte seguente nella configurazione principale di Postfix:/etc/postfix/master.cf.

È necessario riavviare Postfix dopo aver apportato modifiche alla configurazione. Usando il comando telnet, puoi confermare se la porta è aperta.

Configurazione di Dovecot

Il nostro prossimo passo è configurare il nostro MDA per consentire ai protocolli POP3 o IMAP e ad altre impostazioni di configurazione di connettersi a database esterni e Postfix. Stiamo principalmente modificando i seguenti file.

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Si consiglia sempre di eseguire il backup di questi file prima di apportare modifiche alla configurazione. Possiamo modificare ogni file uno per uno.

Modifica del file di configurazione principale di dovecot:/etc/dovecot/dovecot.conf

  • La seguente impostazione non è commentata per impostazione predefinita. Ma dobbiamo assicurarci che non sia commentato.
!include conf.d/*.conf
  • Possiamo abilitare tutti i protocolli richiesti in questa direttiva. Se devi abilitare POP3, possiamo aggiungere pop3 a questa riga e assicurarci anche di installare i pacchetti dovecot richiesti "dovecot-pop3d" per abilitarlo.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Modifica del file di configurazione di Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Dobbiamo trovare il seguente parametro "mail_location" nella configurazione e aggiornarlo con il nostro percorso di archiviazione della posta. Le mie cartelle di posta si trovano all'interno della cartella "/var/mail/vhosts/". Quindi, ho modificato il percorso del file come di seguito:
mail_location = maildir:/var/mail/vhosts/%d/%n
  • Dobbiamo impostare il "mail_privileged_group " parametro a "posta ".
mail_privileged_group = mail

Una volta fatto ciò, dobbiamo impostare la proprietà e le autorizzazioni appropriate per le nostre cartelle di posta. Crea le cartelle di posta per ogni dominio che abbiamo registrato nella tabella MySQL all'interno di questa cartella "/var/mail/vhosts" e imposta le proprietà/autorizzazioni appropriate.

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail

Modifica del file di autenticazione di Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Disabilita l'autenticazione in testo normale per garantire la sicurezza modificando il parametro seguente su "yes".
disable_plaintext_auth = yes
  • Modifica il parametro "auth_mechanisms" come di seguito:
auth_mechanisms = plain login
  • Dobbiamo commentare la riga menzionata e abilitare l'autenticazione MySQL decommentando la riga auth-sql.conf.ext come di seguito:
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Modifica del file SQL di autenticazione:/etc/dovecot/conf.d/auth-sql.conf.ext

Assicurati che il tuo file di autenticazione MySQL assomigli a questo.

Modifica del file di configurazione Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Dobbiamo rimuovere il commento dal parametro "driver" e impostarlo su MySQL come segue:
driver = mysql
  • Modifica e imposta i parametri di connessione in base al nome del nostro database e all'utente.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • Modifica lo schema_pass_default in SHA-512 e la riga password_query come di seguito:
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Nota:imposta i permessi sulla directory /etc/dovecot in modo che l'utente vmail possa utilizzarla.

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Modifica del file di configurazione di Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Stiamo modificando quattro sezioni in questo file di configurazione. Sezione IMAP, sezione trasferimento posta locale, sezione autenticazione e sezione ultimo processo lavoratore autenticazione. Si prega di vedere gli screenshot di ciascuna sezione di seguito per visualizzare le modifiche:

Modifica della configurazione SSL:/etc/dovecot/conf.d/10-ssl.conf

Stiamo modificando questa sezione per abilitare SSL per le connessioni in entrata/in uscita. Queste impostazioni di configurazione sono facoltative. Ma consiglierei questi per una maggiore sicurezza.

  • Modifica il parametro SSL in richiesto
ssl = required
  • Specificare il certificato SSL e la posizione del file chiave per la nostra configurazione. Puoi visualizzare lo screenshot per maggiori dettagli.

È necessario riavviare Dovecot dopo tutte queste modifiche.

Questo è tutto :) Abbiamo completato la configurazione del nostro server di posta. Evviva! Puoi accedere al tuo account di posta elettronica utilizzando il tuo nome utente e password su qualsiasi client di posta elettronica preferito. Ho potuto accedere correttamente al mio account e-mail utilizzando queste impostazioni di seguito:

Spero ti sia piaciuto leggere questo articolo. Vorrei raccomandare i vostri preziosi suggerimenti e commenti su questo.
Buona giornata!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • Verifica del contenuto di ogni tabella
 
 
 

Configurazione di Postfix

Il nostro prossimo passo è modificare la configurazione di Postfix in base al nostro piano di configurazione di come dobbiamo accettare le connessioni SMTP. Prima di apportare modifiche alla configurazione, si consiglia sempre di eseguire un backup del file.

 

Ora possiamo aprire il file e apportare le seguenti modifiche.

  • Modifica le seguenti voci per abilitare il supporto TLS per la connessione degli utenti, specifica il certificato SSL utilizzato per proteggere la connessione.
 

Sto usando certificati SSL Dovecot gratuiti che sono specificati qui. Possiamo generare certificati SSL autofirmati dovecot con il comando seguente. Se hai un certificato SSL valido per il tuo nome host, puoi invece specificare quelli.

 
  • Dobbiamo aggiungere questi parametri TLS alla configurazione di Postfix che fa sì che Postfix utilizzi Dovecot per l'autenticazione e per inizializzare le connessioni.
 
  • Dobbiamo commentare le voci predefinite di "mydestination" e aggiornarlo per utilizzare solo "localhost".
 
  • Conferma la parte myhostname, se è impostata correttamente come nome host FQDN.
 
  • La modifica di questo parametro consente a Postfix di utilizzare l'LMTP di Dovecot anziché la propria LDA per salvare le e-mail nelle caselle di posta locali, consentendo così la consegna della posta locale per tutti i domini elencati nel database MySQL.
     
  • In ultimo, ma non meno importante, dobbiamo dire a Postfix che stiamo utilizzando un database esterno per gestire i domini, gli utenti e gli alias. Dobbiamo aggiungere il percorso di configurazione per recuperare questi dettagli dalle tabelle del database.
 

Ora dobbiamo creare questi file sopra menzionati uno per uno. Si prega di vedere i dettagli del mio file di seguito:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Questi file descrivono come Postfix si connette al database esterno. Dobbiamo riavviare Postfix dopo aver apportato queste modifiche.

 

Dobbiamo eseguire questi comandi seguenti per confermare la connettività e verificare se Postfix è in grado di recuperare le informazioni richieste dal database.

  • Per verificare se Postfix trova il tuo dominio dal database, possiamo eseguire questo. Questo dovrebbe restituire '1' se il tentativo ha esito positivo.
 
  • Per verificare se Postfix trova l'indirizzo e-mail richiesto dal database, possiamo eseguire questo. Anche questo dovrebbe restituire '1' se ha esito positivo.
 
  • Per verificare se Posfix trova il tuo inoltro e-mail dal database, possiamo eseguire questo. Questo dovrebbe restituire il tuo set di inoltro email se il tentativo ha esito positivo.
 

Nota:puoi connetterti in modo sicuro con i tuoi client di posta elettronica utilizzando Postfix sulla porta 587, puoi aprire la porta decommentando la parte seguente nella configurazione principale di Postfix:/etc/postfix/master.cf.

È necessario riavviare Postfix dopo aver apportato modifiche alla configurazione. Usando il comando telnet, puoi confermare se la porta è aperta.

Configurazione di Dovecot

Il nostro prossimo passo è configurare il nostro MDA per consentire ai protocolli POP3 o IMAP e ad altre impostazioni di configurazione di connettersi a database esterni e Postfix. Stiamo principalmente modificando i seguenti file.

 

Si consiglia sempre di eseguire il backup di questi file prima di apportare modifiche alla configurazione. Possiamo modificare ogni file uno per uno.

Modifica del file di configurazione principale di dovecot:/etc/dovecot/dovecot.conf

  • La seguente impostazione non è commentata per impostazione predefinita. Ma dobbiamo assicurarci che non sia commentato.
 
  • Possiamo abilitare tutti i protocolli richiesti in questa direttiva. Se devi abilitare POP3, possiamo aggiungere pop3 a questa riga e assicurarci anche di installare i pacchetti dovecot richiesti "dovecot-pop3d" per abilitarlo.
 

Modifica del file di configurazione di Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Dobbiamo trovare il seguente parametro "mail_location" nella configurazione e aggiornarlo con il nostro percorso di archiviazione della posta. Le mie cartelle di posta si trovano all'interno della cartella "/var/mail/vhosts/". Quindi, ho modificato il percorso del file come di seguito:
 
  • Dobbiamo impostare il "mail_privileged_group " parametro a "posta ".
 

Una volta fatto ciò, dobbiamo impostare la proprietà e le autorizzazioni appropriate per le nostre cartelle di posta. Crea le cartelle di posta per ogni dominio che abbiamo registrato nella tabella MySQL all'interno di questa cartella "/var/mail/vhosts" e imposta le proprietà/autorizzazioni appropriate.

 

Modifica del file di autenticazione di Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Disabilita l'autenticazione in testo normale per garantire la sicurezza modificando il parametro seguente su "yes".
 
  • Modifica il parametro "auth_mechanisms" come di seguito:
 
  • Dobbiamo commentare la riga menzionata e abilitare l'autenticazione MySQL decommentando la riga auth-sql.conf.ext come di seguito:
 

Modifica del file SQL di autenticazione:/etc/dovecot/conf.d/auth-sql.conf.ext

Assicurati che il tuo file di autenticazione MySQL assomigli a questo.

Modifica del file di configurazione Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Dobbiamo rimuovere il commento dal parametro "driver" e impostarlo su MySQL come segue:
 
  • Modifica e imposta i parametri di connessione in base al nome del nostro database e all'utente.
 
  • Modifica lo schema_pass_default in SHA-512 e la riga password_query come di seguito:
 

Nota:imposta i permessi sulla directory /etc/dovecot in modo che l'utente vmail possa utilizzarla.

 

Modifica del file di configurazione di Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Stiamo modificando quattro sezioni in questo file di configurazione. Sezione IMAP, sezione trasferimento posta locale, sezione autenticazione e sezione ultimo processo lavoratore autenticazione. Si prega di vedere gli screenshot di ciascuna sezione di seguito per visualizzare le modifiche:

Modifica della configurazione SSL:/etc/dovecot/conf.d/10-ssl.conf

Stiamo modificando questa sezione per abilitare SSL per le connessioni in entrata/in uscita. Queste impostazioni di configurazione sono facoltative. Ma consiglierei questi per una maggiore sicurezza.

  • Modifica il parametro SSL in richiesto
 
  • Specificare il certificato SSL e la posizione del file chiave per la nostra configurazione. Puoi visualizzare lo screenshot per maggiori dettagli.

È necessario riavviare Dovecot dopo tutte queste modifiche.

Questo è tutto :) Abbiamo completato la configurazione del nostro server di posta. Evviva! Puoi accedere al tuo account di posta elettronica utilizzando il tuo nome utente e password su qualsiasi client di posta elettronica preferito. Ho potuto accedere correttamente al mio account e-mail utilizzando queste impostazioni di seguito:

Spero ti sia piaciuto leggere questo articolo. Vorrei raccomandare i vostri preziosi suggerimenti e commenti su questo.
Buona giornata!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • Verifica del contenuto di ogni tabella
 
 
 

Configurazione di Postfix

Il nostro prossimo passo è modificare la configurazione di Postfix in base al nostro piano di configurazione di come dobbiamo accettare le connessioni SMTP. Prima di apportare modifiche alla configurazione, si consiglia sempre di eseguire un backup del file.

 

Ora possiamo aprire il file e apportare le seguenti modifiche.

  • Modifica le seguenti voci per abilitare il supporto TLS per la connessione degli utenti, specifica il certificato SSL utilizzato per proteggere la connessione.
 

Sto usando certificati SSL Dovecot gratuiti che sono specificati qui. Possiamo generare certificati SSL autofirmati dovecot con il comando seguente. Se hai un certificato SSL valido per il tuo nome host, puoi invece specificare quelli.

 
  • Dobbiamo aggiungere questi parametri TLS alla configurazione di Postfix che fa sì che Postfix utilizzi Dovecot per l'autenticazione e per inizializzare le connessioni.
 
  • Dobbiamo commentare le voci predefinite di "mydestination" e aggiornarlo per utilizzare solo "localhost".
 
  • Conferma la parte myhostname, se è impostata correttamente come nome host FQDN.
 
  • La modifica di questo parametro consente a Postfix di utilizzare l'LMTP di Dovecot anziché la propria LDA per salvare le e-mail nelle caselle di posta locali, consentendo così la consegna della posta locale per tutti i domini elencati nel database MySQL.
     
  • In ultimo, ma non meno importante, dobbiamo dire a Postfix che stiamo utilizzando un database esterno per gestire i domini, gli utenti e gli alias. Dobbiamo aggiungere il percorso di configurazione per recuperare questi dettagli dalle tabelle del database.
 

Ora dobbiamo creare questi file sopra menzionati uno per uno. Si prega di vedere i dettagli del mio file di seguito:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Questi file descrivono come Postfix si connette al database esterno. Dobbiamo riavviare Postfix dopo aver apportato queste modifiche.

 

Dobbiamo eseguire questi comandi seguenti per confermare la connettività e verificare se Postfix è in grado di recuperare le informazioni richieste dal database.

  • Per verificare se Postfix trova il tuo dominio dal database, possiamo eseguire questo. Questo dovrebbe restituire '1' se il tentativo ha esito positivo.
 
  • Per verificare se Postfix trova l'indirizzo e-mail richiesto dal database, possiamo eseguire questo. Anche questo dovrebbe restituire '1' se ha esito positivo.
 
  • Per verificare se Posfix trova il tuo inoltro e-mail dal database, possiamo eseguire questo. Questo dovrebbe restituire il tuo set di inoltro email se il tentativo ha esito positivo.
 

Nota:puoi connetterti in modo sicuro con i tuoi client di posta elettronica utilizzando Postfix sulla porta 587, puoi aprire la porta decommentando la parte seguente nella configurazione principale di Postfix:/etc/postfix/master.cf.

È necessario riavviare Postfix dopo aver apportato modifiche alla configurazione. Usando il comando telnet, puoi confermare se la porta è aperta.

Configurazione di Dovecot

Il nostro prossimo passo è configurare il nostro MDA per consentire ai protocolli POP3 o IMAP e ad altre impostazioni di configurazione di connettersi a database esterni e Postfix. Stiamo principalmente modificando i seguenti file.

 

Si consiglia sempre di eseguire il backup di questi file prima di apportare modifiche alla configurazione. Possiamo modificare ogni file uno per uno.

Modifica del file di configurazione principale di dovecot:/etc/dovecot/dovecot.conf

  • La seguente impostazione non è commentata per impostazione predefinita. Ma dobbiamo assicurarci che non sia commentato.
 
  • Possiamo abilitare tutti i protocolli richiesti in questa direttiva. Se devi abilitare POP3, possiamo aggiungere pop3 a questa riga e assicurarci anche di installare i pacchetti dovecot richiesti "dovecot-pop3d" per abilitarlo.
 

Modifica del file di configurazione di Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Dobbiamo trovare il seguente parametro "mail_location" nella configurazione e aggiornarlo con il nostro percorso di archiviazione della posta. Le mie cartelle di posta si trovano all'interno della cartella "/var/mail/vhosts/". Quindi, ho modificato il percorso del file come di seguito:
 
  • Dobbiamo impostare il "mail_privileged_group " parametro a "posta ".
 

Una volta fatto ciò, dobbiamo impostare la proprietà e le autorizzazioni appropriate per le nostre cartelle di posta. Crea le cartelle di posta per ogni dominio che abbiamo registrato nella tabella MySQL all'interno di questa cartella "/var/mail/vhosts" e imposta le proprietà/autorizzazioni appropriate.

 

Modifica del file di autenticazione di Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Disabilita l'autenticazione in testo normale per garantire la sicurezza modificando il parametro seguente su "yes".
 
  • Modifica il parametro "auth_mechanisms" come di seguito:
 
  • Dobbiamo commentare la riga menzionata e abilitare l'autenticazione MySQL decommentando la riga auth-sql.conf.ext come di seguito:
 

Modifica del file SQL di autenticazione:/etc/dovecot/conf.d/auth-sql.conf.ext

Assicurati che il tuo file di autenticazione MySQL assomigli a questo.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup. Evviva! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

Spero ti sia piaciuto leggere questo articolo. Vorrei raccomandare i vostri preziosi suggerimenti e commenti su questo.
Have a Nice day!


Ubuntu
  1. Come installare DKIM sul server Ubuntu

  2. Come configurare Zimbra Mail Server su Ubuntu 16

  3. Imposta il server Rsyslog su Ubuntu 20.04 - Come farlo?

  4. Come installare MySQL Server su Ubuntu 16.04

  5. Come installare MySQL Server su Ubuntu 17.04

Come installare il server MySQL in Ubuntu

Come installare Postfix Mail Server su Ubuntu 20.04

Come configurare un server di posta completo (Postfix) utilizzando "SquirrelMail" (Webmail) su Ubuntu/Debian

Installazione del server di posta Postfix su Ubuntu 14.04

Installazione del server di posta Postfix su Ubuntu 20.04

Come installare MySQL Server su Ubuntu 20.04