Una versione precedente di questo tutorial è stato scritto da Justin Ellingwood
Introduzione
Postfix è un popolare open-source Mail Transfer Agent (MTA) che può essere utilizzato per instradare e consegnare e-mail su un sistema Linux. Si stima che circa il 25% dei server di posta pubblica su Internet eseguano Postfix.
In questa guida, imparerai come installare e configurare Postfix su un server Ubuntu 20.04., Quindi, verificherai che Postfix sia in grado di instradare correttamente la posta installando s-nail
, un Mail User Agent (MUA), noto anche come client di posta elettronica.
Si noti che l’obiettivo di questo tutorial è quello di aiutare a ottenere Postfix installato e funzionante rapidamente con solo alcune funzionalità di posta elettronica bare-bones. Non avrai un server di posta elettronica completo entro la fine di questa guida, ma avrai alcuni dei componenti fondamentali di tale configurazione per aiutarti a iniziare.
Prerequisiti
Per seguire questa guida, è necessario quanto segue:
- Un server che esegue Ubuntu 20.,04 per funzionare come server di posta Postfix. Questo server dovrebbe avere un utente non root con privilegi
sudo
e un firewall configurato con UFW. Puoi seguire la nostra guida all’installazione iniziale del server Ubuntu 20.04 per configurarlo. - Un nome di dominio completo indicava il tuo server Ubuntu 20.04. Puoi trovare aiuto per configurare il tuo nome di dominio con DigitalOcean seguendo i nostri domini e la documentazione di rete DNS. Tieni presente che se prevedi di accedere alla posta da una posizione esterna, dovrai assicurarti di avere anche un record MX che punta al tuo server di posta.,
Si noti che questo tutorial presuppone che si stia configurando un host con l’FQDN dimail.example.com
. Se necessario, assicurati di cambiareexample.com
omail.example.com
per riflettere il tuo FQDN.
Passo 1 — Installazione di Postfix
Postfix è incluso nei repository predefiniti di Ubuntu, quindi puoi installarlo con APT.
Per iniziare, aggiornare la cache del pacchetto localeapt
:
- sudo apt update
Quindi installare il pacchettopostfix
con il seguente comando., Si noti che qui passiamo la variabile ambientaleDEBIAN_PRIORITY=low
in questo comando di installazione. Questo farà sì che il processo di installazione richieda di configurare alcune opzioni aggiuntive:
- sudo DEBIAN_PRIORITY=low apt install postfix
Questo processo di installazione aprirà una serie di prompt interattivi. Ai fini di questo tutorial, utilizzare le seguenti informazioni per compilare i prompt:
- Tipo generale di configurazione della posta?: Per questo, scegliere Sito Internet poiché questo corrisponde alle nostre esigenze di infrastruttura.,
- Nome della posta di sistema: Questo è il dominio di base utilizzato per costruire un indirizzo email valido quando viene fornita solo la parte dell’account dell’indirizzo. Ad esempio, supponiamo che il nome host del tuo server sia
mail.example.com
. Probabilmente vorrai impostare il nome della posta di sistema suexample.com
in modo che, dato il nome utenteuser1
, Postfix userà l’indirizzo.
- Destinatario di posta root e postmaster: Questo è l’account Linux a cui verrà inoltrata la posta indirizzata a
root@
epostmaster@
., Usa il tuo account principale per questo. In questo caso di esempio, sammy. - Altre destinazioni per cui accettare la posta: definisce le destinazioni di posta che l’istanza Postfix accetterà. Se hai bisogno di aggiungere altri domini che questo server sarà responsabile della ricezione, aggiungi quelli qui. In caso contrario, il valore predefinito sarà sufficiente.
- Forza gli aggiornamenti sincroni sulla coda di posta?: Poiché probabilmente stai usando un filesystem journaled, accetta No qui.
- Reti locali: Questo è un elenco delle reti per le quali il server di posta è configurato per inoltrare i messaggi., Il valore predefinito funzionerà per la maggior parte degli scenari. Se si sceglie di modificarlo, tuttavia, assicurarsi di essere molto restrittivo per quanto riguarda l’intervallo di rete.
- Limite di dimensione della cassetta postale: può essere usato per limitare la dimensione dei messaggi. Impostandolo su
0
disabilita qualsiasi restrizione di dimensione. - Carattere estensione indirizzo locale: Questo è il carattere che può essere utilizzato per separare la parte regolare dell’indirizzo da un’estensione (utilizzata per creare alias dinamici). Il valore predefinito,
+
funzionerà per questo tutorial., - Protocolli Internet da utilizzare: scegliere se limitare la versione IP supportata da Postfix. Ai fini di questo tutorial, scegli tutto.
Per essere espliciti, queste sono le impostazioni utilizzate in questa guida:
Nota: Se è necessario tornare a modificare queste impostazioni, è possibile farlo digitando:
- sudo dpkg-reconfigure postfix
I prompt saranno pre-popolati con le risposte precedenti.
Al termine del processo di installazione, si è pronti per apportare alcuni aggiornamenti alla configurazione Postfix.,
Passo 2 — Modifica della configurazione Postfix
Ora puoi regolare alcune impostazioni che il processo di installazione del pacchetto non ti ha richiesto. Molte delle impostazioni di configurazione di Postfix sono definite nel file/etc/postfix/main.cf
. Invece di modificare direttamente questo file, è possibile utilizzare il comando postconf
di Postfix per interrogare o impostare le impostazioni di configurazione.
Per iniziare, imposta la posizione per la casella di posta dell’utente Ubuntu non root., In questa guida, useremo il formato Maildir, che separa i messaggi in singoli file che vengono poi spostati tra le directory in base all’azione dell’utente. L’opzione alternativa che non è trattata in questa guida è il formato mbox, che memorizza tutti i messaggi all’interno di un singolo file.
Imposta la variabilehome_mailbox
suMaildir/
. Successivamente, si creerà una struttura di directory con quel nome all’interno della directory home dell’utente., Configurarehome_mailbox
digitando:
- sudo postconf -e 'home_mailbox= Maildir/'
Quindi, impostare la posizione della tabellavirtual_alias_maps
, che associa account e-mail arbitrari agli account di sistema Linux. Eseguire il comando seguente, che riporta la posizione della tabella di hash di un file di database denominato /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Ora che hai definito la posizione delle mappe virtuali file nel main.cf
file, è possibile creare il file e iniziare la mappatura account di posta elettronica per l’account utente sul vostro sistema Linux., Crea il file con il tuo editor di testo preferito; in questo esempio, useremo nano
:
- sudo nano /etc/postfix/virtual
Elenca tutti gli indirizzi per cui desideri accettare l’email, seguiti da uno spazio bianco e dall’utente Linux a cui desideri che la posta venga consegnata.,
Per esempio, se si desidera accettare e-mail a e
e vorrei avere quelle e-mail consegnate al sammy utente Linux, è possibile impostare il file come questo:
[email protected] [email protected] sammy
Dopo aver mappato tutti gli indirizzi al server appropriato conti, salvare e chiudere il file. Se hai usato nano
, fallo premendo CTRL + X
, Y
, quindi ENTER
.,
Applica la mappatura digitando:
- sudo postmap /etc/postfix/virtual
Riavvia il processo Postfix per essere sicuro che tutte le tue modifiche siano state applicate:
- sudo systemctl restart postfix
Supponendo che tu abbia seguito la guida all’installazione iniziale del server prerequisito, avrai configurato un firewall con UFW. Questo firewall bloccherà le connessioni esterne ai servizi sul 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.,
È possibile consentire le connessioni al servizio digitando:
- sudo ufw allow Postfix
Con questo, Postfix è configurato e pronto per accettare connessioni esterne. Tuttavia, non sei ancora pronto per testarlo con un client di posta. Prima di poter installare un client e utilizzarlo per interagire con la posta che viene consegnata al server, è necessario apportare alcune modifiche alla configurazione del server Ubuntu.,
Passo 3 — Installazione del client di posta e inizializzazione della struttura Maildir
Per interagire con la posta in consegna, questo passaggio ti guiderà attraverso il processo di installazione del pacchettos-nail
. Questa è una variante ricca di funzionalità del client BSD xmail
in grado di gestire correttamente il formato Maildir.
Prima di installare il client, tuttavia, sarebbe prudente assicurarsi che la variabile di ambiente MAIL
sia impostata correttamente., s-nail
cercherà questa variabile per capire dove trovare la posta per il tuo utente.
Per garantire che il MAIL
variabile è impostata indipendentemente dalla modalità di accesso al tuo account — se attraverso ssh
su
su -
o sudo
per esempio, sarà necessario impostare la variabile nel /etc/bash.bashrc
file e aggiungere un file all’interno di /etc/profile.d
per assicurarsi che sia impostato per tutti gli utenti per impostazione predefinita.,
Per aggiungere la variabile di questi file, tipo:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Per leggere la variabile in sessione corrente, di origine /etc/profile.d/mail.sh
file:
- source /etc/profile.d/mail.sh
Con che completa, installare il s-nail
client di posta elettronica con APT:
- sudo apt install s-nail
Prima di eseguire il client, ci sono un paio di impostazioni da regolare. Apri il file/etc/s-nail.rc
nell’editor:
- sudo nano /etc/s-nail.rc
Nella parte inferiore del file, aggiungi le seguenti opzioni:
. . .set emptystartset folder=Maildirset record=+sent
Ecco cosa queste righe:
-
set emptystart
: permette al cliente di aprire anche con una posta in arrivo vuota -
set folder=Maildir
: imposta ilMaildir
directory all’internofolder
variabile -
set record=+sent
crea unsent
mbox file per la memorizzazione di messaggi e-mail inviati all’interno di qualsiasi cartella è impostata comefolder
variabile, in questo casoMaildir
Salvare e chiudere il file quando hai finito., Ora sei pronto per inizializzare la struttura Maildir del tuo sistema.
Un modo rapido per creare la struttura Maildir all’interno della directory home è inviare un’e-mail con il comando s-nail
. Poiché il filesent
sarà disponibile solo una volta creato Maildir, è necessario disabilitare la scrittura su di esso per questa e-mail iniziale. Farlo passando l’opzione-Snorecord
.
Invia l’e-mail inserendo una stringa al comandos-nail
., Regolare il comando per contrassegnare l’utente Linux come destinatario:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Nota: È possibile ottenere la seguente risposta:
OutputCan't canonicalize "/home/sammy/Maildir"
Questo è normale e può apparire solo quando si invia questo primo messaggio.,
È possibile controllare per assicurarsi che la directory è stata creata, cercando per il tuo ~/Maildir
directory:
- ls -R ~/Maildir
Potete vedere la struttura di directory è stata creata e che un nuovo file di messaggio è nel ~/Maildir/new
directory:
Ora che la struttura di directory è stata creata, si è pronti per testare il s-nail
client di visualizzazione init
messaggio inviato e l’invio di un messaggio a un indirizzo di posta esterno.,
Fase 4 — Test del Client
aprire il client, eseguire il s-nail
comando:
- s-nail
In console, vedrai un rudimentale arrivo con il init
messaggio di attesa:
Premere ENTER
per visualizzare il messaggio:
È possibile tornare alla lista dei messaggi digitando h
e poi ENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
si Noti che il messaggio ora è uno stato di R
, che indica che è stato letto.,
Dal momento che questo messaggio non è molto utile, è possibile eliminarlo premendo d
e poi ENTER
:
- d
Per tornare al terminale, tipo q
e poi ENTER
:
- q
Come prova finale, verificare se s-nail
è in grado di inviare correttamente i messaggi email. Per fare ciò, puoi inserire il contenuto di un file di testo nel processo s-nail
, come hai fatto con il messaggio init
che hai inviato nel passaggio precedente.,
Inizia scrivendo un messaggio di prova in un editor di testo:
- nano ~/test_message
All’interno, inserisci del testo che desideri inviare:
Hello,This is a test. Please confirm receipt!
Salva e chiudi il file dopo aver scritto il tuo messaggio.
Quindi, utilizzare il comandocat
per inviare il messaggio al processos-nail
., È possibile farlo con il seguente esempio, che utilizza queste opzioni:
-
-s
: Questo definisce la riga dell’oggetto del messaggio e-mail -
-r
: Una modifica opzionale al campo “From:” dell’e-mail. Per impostazione predefinita, l’utente Linux a cui hai effettuato l’accesso verrà utilizzato per popolare questo campo. L’opzione-r
consente di sovrascrivere questo con un indirizzo valido, ad esempio uno di quelli definiti nel file/etc/postfix/virtual
., Per illustrare, il comando riportato di seguito utilizza
Inoltre, assicurarsi di cambiare per un indirizzo email valido a cui si ha accesso:
- cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
passare alla cartella posta in arrivo per l’indirizzo email a cui hai inviato il messaggio. Vedrete il vostro messaggio in attesa lì quasi immediatamente.
Nota: se il messaggio non è nella tua casella di posta, potrebbe essere stato consegnato nella tua cartella Spam.
È possibile visualizzare i messaggi inviati all’interno del client s-nail
., Avviare il client interattive di nuovo:
- s-nail
Dal client di posta elettronica, visualizzare i messaggi inviati con il comando:
- file +sent
vedrai output simile a questo:
Output+sent: 1 message 1 new▸N 1 [email protected] 2020-05-19 15:47 12/297 Test email subject line
È possibile gestire la posta inviata, utilizzando gli stessi comandi che usi per la posta in arrivo.
Conclusione
Ora hai Postfix configurato sul tuo server Ubuntu 20.04. La gestione dei server di posta elettronica può essere un compito difficile per i nuovi amministratori di sistema, ma con questa configurazione, si dovrebbe avere abbastanza funzionalità di posta elettronica MTA per iniziare.