Come installare e configurare Postfix su Ubuntu 22.04

Introduzione

Postfix è un popolare Mail Transfer Agent (MTA) open-source che può essere utilizzato per instradare e consegnare email su un sistema Linux. Si stima che circa il 25% dei server di posta pubblici su Internet utilizzino Postfix.

In questa guida, imparerai come installare e configurare Postfix su un server Ubuntu 22.04. Successivamente, testerai che Postfix sia in grado di instradare correttamente le email installando s-nail, un Mail User Agent (MUA), noto anche come client di posta elettronica.

Nota che l’obiettivo di questo tutorial è aiutarti a far funzionare Postfix rapidamente con solo alcune funzionalità di base della posta elettronica. Alla fine di questa guida, non avrai un server di posta elettronica completo, ma avrai alcuni dei componenti fondamentali di tale configurazione per aiutarti a iniziare.

Prerequisiti

Configurare e mantenere il proprio server di posta è complicato e richiede tempo. Per la maggior parte degli utenti, è più pratico affidarsi a un servizio di posta a pagamento. Se stai pensando di gestire il tuo server di posta, ti incoraggiamo a leggere questo articolo su perché potresti non volerlo fare.

Se sei sicuro di voler seguire questa guida per installare e configurare Postfix, allora devi prima avere quanto segue:

  • A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with sudo privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up.
  • A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.

Nota che questo tutorial presume che tu stia configurando un host che abbia il FQDN di mail.example.com. Ovunque sia necessario, assicurati di modificare example.com o mail.example.com per riflettere il tuo proprio FQDN.

Passaggio 1 — Installare Postfix

Postfix è incluso nei repository predefiniti di Ubuntu, quindi puoi installarlo con APT.

Per iniziare, aggiorna la cache dei pacchetti locali di apt:

  1. sudo apt update

Quindi installa il pacchetto postfix con il seguente comando. Nota che qui passiamo la variabile ambientale DEBIAN_PRIORITY=low in questo comando di installazione. Questo farà sì che il processo di installazione ti chieda di configurare alcune opzioni aggiuntive:

  1. sudo DEBIAN_PRIORITY=low apt install postfix

Questo processo di installazione aprirà una serie di prompt interattivi. Per gli scopi di questo tutorial, utilizza le seguenti informazioni per compilare i tuoi prompt:

  • Tipo generale di configurazione della posta?: Per questo, scegli Sito Internet poiché corrisponde alle nostre esigenze infrastrutturali.
  • Nome della posta di sistema: Questo è il dominio di base utilizzato per costruire un indirizzo email valido quando è fornita solo la parte dell’account dell’indirizzo. Ad esempio, supponiamo che il nome host del tuo server sia mail.esempio.com. Probabilmente vorrai impostare il nome della posta di sistema su esempio.com in modo che, dato l’username user1, Postfix utilizzerà l’indirizzo user1@esempio.com.
  • Destinatario della posta di root e del postmaster: Questo è l’account Linux a cui verrà inoltrata la posta indirizzata a root@ e postmaster@. Usa il tuo account principale per questo. In questo caso di esempio, sammy.
  • Altre destinazioni per accettare la posta: Questo definisce le destinazioni di posta che questa istanza di Postfix accetterà. Se devi aggiungere altri domini per i quali questo server sarà responsabile della ricezione, aggiungili qui. Altrimenti, il valore predefinito sarà sufficiente.
  • Forzare aggiornamenti sincroni sulla coda della posta?: Poiché probabilmente stai utilizzando un filesystem con log, accetta No qui.
  • Reti locali: Questo è un elenco delle reti per le quali il tuo server di posta è configurato per inoltrare i messaggi. Il valore predefinito funzionerà per la maggior parte degli scenari. Se scegli di modificarlo, però, assicurati di essere molto restrittivo riguardo all’intervallo di rete.
  • Limite di dimensione della casella di posta: Questo può essere utilizzato per limitare la dimensione dei messaggi. Impostarlo su 0 disabilita qualsiasi restrizione di dimensione.
  • Carattere di estensione dell’indirizzo locale: Questo è il carattere che può essere utilizzato per separare la parte regolare dell’indirizzo da un’estensione (usata per creare alias dinamici). Il valore predefinito, +, funzionerà per questo tutorial.
  • Protocolli Internet da utilizzare: Scegli se limitare la versione IP che Postfix supporta. Per gli scopi di questo tutorial, scegli tutti.

Per essere espliciti, questi sono i parametri utilizzati in questa guida:

  • Tipo generale di configurazione della posta?: Sito Internet
  • Nome della posta di sistema: esempio.com (non posta.esempio.com)
  • Destinatario della posta di root e postmaster: Il nome utente del tuo account Linux principale (sammy nei nostri esempi)
  • Altri destinatari per accettare la posta: $myhostname, esempio.com, posta.esempio.com, localhost.esempio.com, localhost
  • Forzare aggiornamenti sincroni nella coda di posta?: No
  • Reti locali: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Limite di dimensione della casella di posta: 0
  • Carattere di estensione dell’indirizzo locale: +
  • Protocolli Internet da utilizzare: tutti

Nota: Se mai avessi bisogno di tornare a modificare queste impostazioni, puoi farlo digitando:

  1. sudo dpkg-reconfigure postfix

Le richieste saranno precompilate con le tue risposte precedenti.

Quando ti viene chiesto di riavviare i servizi, accetta le impostazioni predefinite e scegli OK.

Quando il processo di installazione è completo, sei pronto per apportare alcune modifiche alla configurazione di Postfix.

Passaggio 2 — Modifica della configurazione di Postfix

Ora puoi regolare alcune impostazioni per le quali il processo di installazione del pacchetto non ti ha chiesto. Molte delle impostazioni di configurazione di Postfix sono definite nel file /etc/postfix/main.cf. Piuttosto che modificare direttamente questo file, puoi utilizzare il comando postconf di Postfix per interrogare o impostare le impostazioni di configurazione.

Per iniziare, imposta la posizione per la mailbox dell’utente non root di Ubuntu. In questa guida, utilizzeremo il formato Maildir, che separa i messaggi in file individuali che vengono poi spostati tra le directory in base all’azione dell’utente. L’opzione alternativa non coperta in questa guida è il formato mbox, che archivia tutti i messaggi all’interno di un unico file.

Imposta la variabile home_mailbox su Maildir/. Successivamente, creerai una struttura di directory con quel nome all’interno della directory home dell’utente. Configura home_mailbox digitando:

  1. sudo postconf -e 'home_mailbox= Maildir/'

Successivamente, imposta la posizione della tabella virtual_alias_maps, che mappa account email arbitrari a account di sistema Linux. Esegui il seguente comando, che mappa la posizione della tabella su un file di database hash denominato /etc/postfix/virtual:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

Ora che hai definito la posizione del file delle mappe virtuali nel tuo file main.cf, puoi creare il file stesso e iniziare a mappare gli account email su account utente nel tuo sistema Linux. Crea il file con il tuo editor di testo preferito; in questo esempio, useremo nano:

  1. sudo nano /etc/postfix/virtual

Elencare gli indirizzi a cui desideri ricevere email, seguiti da uno spazio e dall’utente Linux a cui desideri che la posta venga consegnata.

Ad esempio, se desideri accettare email a contact@example.com e admin@example.com e desideri che quelle email vengano consegnate all’utente Linux sammy, potresti configurare il tuo file in questo modo:

/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

Dopo aver mappato tutti gli indirizzi sui corrispondenti account server, salva e chiudi il file. Se hai usato nano, fallo premendo CTRL + X, Y, quindi INVIO.

Applica la mappatura digitando:

  1. sudo postmap /etc/postfix/virtual

Riavvia il processo di Postfix per assicurarti che tutte le tue modifiche siano state applicate:

  1. sudo systemctl restart postfix

Supponendo che tu abbia seguito la guida preliminare alla configurazione iniziale del server, avrai configurato un firewall con UFW. Questo firewall bloccherà le connessioni esterne ai servizi sul tuo server per impostazione predefinita a meno che tali connessioni non siano esplicitamente consentite, quindi dovrai aggiungere una regola del firewall per consentire un’eccezione per Postfix.

Puoi consentire le connessioni al servizio digitando:

  1. sudo ufw allow Postfix

Con questo, Postfix è configurato e pronto ad accettare connessioni esterne. Tuttavia, non sei ancora pronto per testarlo con un client di posta. Prima di poter installare un client e usarlo per interagire con la posta consegnata al tuo server, dovrai apportare alcune modifiche alla configurazione del tuo server Ubuntu.

Passaggio 3 — Installazione del Client di Posta e Inizializzazione della Struttura di Maildir

Per interagire con la posta consegnata, questo passaggio ti guiderà attraverso il processo di installazione del pacchetto s-nail. Si tratta di una variante ricca di funzionalità del client xmail BSD che può gestire correttamente il formato Maildir.

Prima di installare il client, tuttavia, sarebbe prudente assicurarsi che la variabile d’ambiente MAIL sia impostata correttamente. s-nail cercherà questa variabile per capire dove trovare la posta per il tuo utente.

Per assicurarti che la variabile MAIL sia impostata indipendentemente dal modo in cui accedi al tuo account, che sia tramite ssh, su, su -, o sudo, ad esempio, dovrai impostare la variabile nel file /etc/bash.bashrc e aggiungerla a un file all’interno di /etc/profile.d per assicurarti che sia impostata per tutti gli utenti per impostazione predefinita.

Per aggiungere la variabile a questi file, digita:

  1. echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Per leggere la variabile nella tua sessione corrente, esegui il source del file /etc/profile.d/mail.sh:

  1. source /etc/profile.d/mail.sh

Con questo completato, installa il client email s-nail con APT:

  1. sudo apt install s-nail

Prima di eseguire il client, ci sono alcune impostazioni che devi regolare. Apri il file /etc/s-nail.rc nel tuo editor:

  1. sudo nano /etc/s-nail.rc

In fondo al file, aggiungi le seguenti opzioni:

/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

Ecco cosa fanno queste righe:

  • set emptystart: permette al client di aprirsi anche con una casella di posta vuota
  • set folder=Maildir: imposta la directory Maildir come variabile interna folder
  • set record=+sent: crea un file mbox sent per memorizzare le email inviate all’interno della directory impostata come variabile folder, in questo caso Maildir

Salva e chiudi il file quando hai finito. Ora sei pronto per inizializzare la struttura Maildir del tuo sistema.

A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail command. Because the sent file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord option.

Invia l’email inviando una stringa al comando s-nail. Modifica il comando per segnare il tuo utente Linux come destinatario:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

Nota: Potresti ricevere la seguente risposta:

Output
Can't canonicalize "/home/sammy/Maildir"

Questo è normale e potrebbe comparire solo quando si invia questo primo messaggio.

Puoi verificare che la directory sia stata creata cercando la tua directory ~/Maildir:

  1. ls -R ~/Maildir

Vedrai che la struttura della directory è stata creata e che un nuovo file di messaggio si trova nella directory ~/Maildir/new:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1650294586.Vfc01I7e11dM993645.mail.example.com /home/sammy/Maildir/tmp:

Ora che la struttura della directory è stata creata, sei pronto per testare il client s-nail visualizzando il messaggio init che hai inviato e inviando un messaggio a un indirizzo email esterno.

Passaggio 4 — Testare il Client

Per aprire il client, esegui il comando s-nail:

  1. s-nail

Nella tua console, vedrai una casella di posta rudimentale con il messaggio init in attesa:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 [email protected] 2022-04-18 15:09 14/452 init

Premi INVIO per visualizzare il messaggio:

Output
[-- Message 1 -- 14 lines, 452 bytes --]: Date: Mon, 18 Apr 2022 15:09:46 +0000 To: [email protected] Subject: init Message-Id: <20220418150946.EE6897E11A@@mail.example.com> From: [email protected] init

Puoi tornare alla lista dei messaggi digitando h, e poi INVIO:

  1. h
Output
>R 1 [email protected] 2022-04-18 15:09 14/452 init

Nota che il messaggio ora ha uno stato di R, indicando che è stato letto.

Dato che questo messaggio non è molto utile, puoi eliminarlo premendo d, e poi INVIO:

  1. d

Per tornare al terminale, digita q e poi INVIO:

  1. q

Come test finale, verifica se s-nail è in grado di inviare correttamente messaggi di posta elettronica. Per farlo, puoi reindirizzare il contenuto di un file di testo nel processo s-nail, come hai fatto con il messaggio init inviato nel passaggio precedente.

Inizia scrivendo un messaggio di testo in un editor di testo:

  1. nano ~/test_message

All’interno, inserisci del testo che desideri inviare:

~/test_message
Hello,

This is a test.  Please confirm receipt!

Salva e chiudi il file dopo aver scritto il messaggio.

Quindi, utilizza il comando cat per reindirizzare il messaggio al processo s-nail. Puoi farlo con il seguente esempio, che utilizza le seguenti opzioni:

  • -s: Questo definisce la riga dell’oggetto del messaggio di posta elettronica
  • -r: Una modifica facoltativa al campo “Da:” della email. Per default, verrà utilizzato il nome utente Linux con cui hai effettuato l’accesso per popolare questo campo. L’opzione -r ti permette di sovrascriverlo con un indirizzo valido, come uno di quelli definiti nel file /etc/postfix/virtual. Per illustrare, il seguente comando utilizza [email protected]

Inoltre, assicurati di cambiare utente@email.com con un indirizzo email valido a cui hai accesso:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] user@email.com

Successivamente, accedi alla casella di posta per l’indirizzo email a cui hai inviato il messaggio. Vedrai il tuo messaggio lì quasi immediatamente.

Nota: Se il messaggio non è nella tua casella di posta, potrebbe essere stato consegnato nella cartella Spam.

Puoi visualizzare i tuoi messaggi inviati all’interno del tuo client s-nail. Avvia nuovamente il client interattivo:

  1. s-nail

Dal client di posta elettronica, visualizza i messaggi inviati digitando:

  1. file +sent

Vedrai un output simile a questo:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line

Puoi gestire le email inviate usando gli stessi comandi che usi per le email in arrivo.

Conclusione

Ora hai Postfix configurato sul tuo server Ubuntu 22.04. Gestire i server di posta elettronica può essere un compito difficile per i nuovi amministratori di sistema, ma con questa configurazione dovresti avere abbastanza funzionalità di posta elettronica MTA per iniziare.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-22-04