In questa guida impareremo come installare e configurare Postfix su un server Ubuntu 20.04. Useremo s-nail
(un Mail User Agent – MUA) per verificare che Postfix sia in grado di instradare correttamente la posta.
Saremo in grado di far funzionare Postfix con alcune funzionalità di posta elettronica essenziali. 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 per installare e configurare Postfix, devi prima avere quanto segue:
- Un server Ubuntu 20.04 che funge da server Postfix
- Un nome di dominio completamente qualificato puntato al tuo server Ubuntu 20.04.
Tieni presente che questo tutorial presuppone che tu stia configurando un host con l'FQDN di mail.citizix.com
. Ove necessario, assicurati di modificare citizix.com
o mail.citizix.com
per riflettere il tuo nome di dominio completo.
Passaggio 1:assicurati che il tuo server sia aggiornato
Prima di procedere, assicurarsi che il server abbia aggiornato i pacchetti. Usa questo comando per ottenere ciò:
sudo apt update
sudo apt -y upgrade
Fase 2:installazione di Postfix
Postfix è incluso nei repository Ubuntu predefiniti come postfix
. Possiamo installarlo con APT.
Nota che qui passiamo il DEBIAN_PRIORITY=low
variabile ambientale in questo comando di installazione. Ciò farà sì che il processo di installazione ti chieda di configurare alcune opzioni aggiuntive:
sudo DEBIAN_PRIORITY=low apt install postfix
Questo processo di installazione aprirà una serie di prompt interattivi. Utilizza le seguenti informazioni per compilare i tuoi prompt:
- Tipo generale di configurazione della posta? :per questo, scegli Sito Internet poiché soddisfa le nostre esigenze di infrastruttura.
- Nome e-mail di sistema :questo è il dominio di base utilizzato per costruire un indirizzo e-mail valido quando viene fornita solo la parte dell'account dell'indirizzo. Ad esempio, supponiamo che il nome host del tuo server sia
mail.citizix.com
. Probabilmente vorrai impostare il nome della posta di sistema sucitizix.com
in modo che, dato il nome utenteuser1
, Postfix utilizzerà l'indirizzo[email protected]citizix.com
. - Destinatario della posta root e postmaster :questo è l'account Linux a cui verrà inoltrata la posta indirizzata a
[email protected]
e[email protected]
. Usa il tuo account principale per questo. In questo caso di esempio, amministratore . - Altre destinazioni per cui accettare la posta :Definisce le destinazioni di posta che questa istanza di Postfix accetterà. Se hai bisogno di aggiungere altri domini che questo server sarà responsabile della ricezione, aggiungili qui. In caso contrario, l'impostazione predefinita sarà sufficiente.
- Forzare aggiornamenti sincroni sulla coda di posta? :poiché probabilmente stai utilizzando un filesystem con journal, accetta No qui.
- Reti locali :Questo è un elenco delle reti per le quali il server di posta è configurato per l'inoltro dei messaggi. L'impostazione predefinita funzionerà per la maggior parte degli scenari. Se scegli di modificarlo, assicurati di essere molto restrittivo per quanto riguarda l'intervallo di rete.
- Limite dimensioni della casella di posta :può essere utilizzato 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 interno (utilizzato per creare alias dinamici). L'impostazione predefinita,
+
funzionerà per questo tutorial. - Protocolli Internet da utilizzare :scegli se limitare la versione IP supportata da Postfix. Ai fini di questo tutorial, seleziona tutti .
Nota :Se hai bisogno di tornare per modificare queste impostazioni, puoi farlo digitando:
sudo dpkg-reconfigure postfix
I prompt saranno precompilati con le tue risposte precedenti.
Al termine del processo di installazione, sei pronto per apportare alcuni aggiornamenti alla configurazione di Postfix.
Fase 3:Modifica della configurazione di Postfix
Le impostazioni di configurazione di Postfix sono definite in /etc/postfix/main.cf
file. Puoi utilizzare il postconf
di Postfix comando per interrogare o impostare le impostazioni di configurazione anziché modificare direttamente il file.
Per iniziare, imposta la posizione per la casella di posta del tuo utente Ubuntu non root. In questa guida utilizzeremo la Maildir format, che separa i messaggi in singoli file che vengono quindi spostati tra le directory in base all'azione dell'utente. L'opzione alternativa non trattata in questa guida è la mbox format, che memorizza tutti i messaggi in un unico file.
Imposta il home_mailbox
variabile in Maildir/
. Successivamente, creerai una struttura di directory con quel nome all'interno della home directory del tuo utente. Configura home_mailbox
digitando:
sudo postconf -e 'home_mailbox= Maildir/'
Quindi, imposta la posizione di virtual_alias_maps
tabella, che associa account di posta elettronica arbitrari agli account di sistema Linux. Esegui il comando seguente, che associa la posizione della tabella a un file di database hash denominato /etc/postfix/virtual
:
sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Ora che hai definito la posizione del file delle mappe virtuali nel tuo main.cf
file, puoi creare il file stesso e iniziare a mappare gli account di posta elettronica sugli account utente sul tuo sistema Linux. Crea il file con il tuo editor di testo preferito; in questo esempio utilizzeremo vim
:
sudo vim /etc/postfix/virtual
Elenca tutti gli indirizzi per i quali desideri accettare e-mail, seguiti da uno spazio bianco e dall'utente Linux a cui desideri che la posta venga recapitata.
Ad esempio, se desideri accettare l'e-mail all'indirizzo [email protected]
e[email protected]
e vorrei che tali email venissero consegnate all'amministratore Utente Linux, puoi impostare il tuo file in questo modo:/etc/postfix/virtual
[email protected] admin
[email protected] admin
Dopo aver mappato tutti gli indirizzi agli account del server appropriati, salva e chiudi il file.
Applicare la mappatura digitando:
sudo postmap /etc/postfix/virtual
Riavvia il processo di Postfix per assicurarti che tutte le modifiche siano state applicate:
sudo systemctl restart postfix
Se hai installato e abilitato il firewall ufw, puoi consentire le connessioni al servizio digitando:
sudo ufw allow Postfix
Fase 3:installazione del client di posta e inizializzazione della struttura di Maildir
Per interagire con la posta in consegna, questo passaggio ti guiderà attraverso il processo di installazione di s-nail
pacchetto. Questa è una variante ricca di funzionalità di BSD xmail
client in grado di gestire correttamente il formato Maildir.
Prima di installare il client, tuttavia, sarebbe prudente assicurarsi di avere MAIL
la variabile di ambiente è impostata correttamente. s-nail
cercherà questa variabile per capire dove trovare la posta per il tuo utente.
Per garantire che il MAIL
viene impostata indipendentemente da come accedi al tuo account, sia tramite ssh
, su
, su -
o sudo
, ad esempio, dovrai impostare la variabile in /etc/bash.bashrc
file e aggiungilo a un file all'interno di /etc/profile.d
per assicurarti che sia impostato per tutti gli utenti per impostazione predefinita.
Per aggiungere la variabile a questi file, digita:
echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Per leggere la variabile nella sessione corrente, procurati /etc/profile.d/mail.sh
file:
source /etc/profile.d/mail.sh
Al termine, installa s-nail
client di posta elettronica con APT:
sudo apt install s-nail
Prima di eseguire il client, è necessario modificare alcune impostazioni. Apri il /etc/s-nail.rc
file nel tuo editor:
sudo vim /etc/s-nail.rc
Nella parte inferiore del file, aggiungi le seguenti opzioni:/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent
Ecco cosa fanno queste linee:
set emptystart
:consente al client di aprire anche con una casella di posta vuotaset folder=Maildir
:imposta laMaildir
directory nellafolder
interna variabileset record=+sent
crea unsent
mbox per memorizzare la posta inviata all'interno della directory impostata comefolder
variabile, in questo casoMaildir
Salva e chiudi 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 tua home directory è inviarti un'email con il s-nail
comando. Perché il sent
il file sarà disponibile solo una volta creata la Maildir, dovresti disabilitare la scrittura su di essa per questa e-mail iniziale. Fallo passando il -Snorecord
opzione.
Invia l'email collegando una stringa a s-nail
comando. Modifica il comando per contrassegnare il tuo utente Linux come destinatario:
echo 'init' | s-nail -s 'init' -Snorecord admin
Puoi verificare che la directory sia stata creata cercando il tuo ~/Maildir
directory:
ls -R ~/Maildir
Vedrai che la struttura della directory è stata creata e che un nuovo file di messaggio è in ~/Maildir/new
directory:
$ ls -R ~/Maildir
/home/ubuntu/Maildir:
cur new tmp
/home/ubuntu/Maildir/cur:
/home/ubuntu/Maildir/new:
1643972360.V10301Ifbca3M171366.dev-ubuntusrv.inv.re 1643972375.V10301Ifbca5M242683.dev-ubuntusrv.inv.re
/home/ubuntu/Maildir/tmp:
Ora che la struttura della directory è stata creata, sei pronto per testare il s-nail
client visualizzando init
messaggio che hai inviato e inviando un messaggio a un indirizzo email esterno.
Fase 4:testare il client
Per aprire il client, esegui s-nail
comando:
s-nail
Nella tua console vedrai una rudimentale casella di posta con init
messaggio in attesa:
$ s-nail
s-nail version v14.9.15. Type `?' for help
/home/admin/Maildir: 1 messages 1 new
▸N 1 Ubuntu 2022-02-04 10:59 14/432 init
?
Premi ENTER
per visualizzare il messaggio:
[-- Message 1 -- 14 lines, 432 bytes --]:
From [email protected] Fri Feb 4 10:59:35 2022
Date: Fri, 04 Feb 2022 10:59:35 +0000
To: [email protected]
Subject: init
Message-Id: <[email protected]>
From: Ubuntu <[email protected]>
init
Puoi tornare all'elenco dei messaggi digitando h
, quindi ENTER
:
h
▸R 1 Ubuntu 2022-02-04 10:59 14/432 init
Nota che il messaggio ora ha uno stato di R
, indicando che è stato letto.
Poiché questo messaggio non è molto utile, puoi eliminarlo premendo d
, quindi ENTER
:
d
Per tornare al terminale, digita q
e poi ENTER
:
q
Come test finale, controlla se s-nail
è in grado di inviare correttamente i messaggi di posta elettronica. Per fare ciò, puoi reindirizzare il contenuto di un file di testo nella s-nail
processo, come hai fatto con init
messaggio che hai inviato nel passaggio precedente.
Inizia scrivendo un messaggio di prova in un editor di testo:
vim ~/test_message
Dentro, 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, usa il cat
comando per reindirizzare il messaggio a s-nail
processi. Puoi farlo con il seguente esempio, che utilizza queste opzioni:
-s
:Definisce la riga dell'oggetto del messaggio e-mail-r
:una modifica facoltativa al campo "Da:" dell'e-mail. Per impostazione predefinita, l'utente Linux a cui hai effettuato l'accesso verrà utilizzato per popolare questo campo. Il-r
l'opzione ti consente di sovrascriverlo con un indirizzo valido, come uno di quelli che hai definito in/etc/postfix/virtual
file. Per illustrare, il comando seguente utilizza[email protected]
Inoltre, assicurati di modificare[email protected]
a un indirizzo email valido a cui hai accesso:
cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
Quindi, vai alla posta in arrivo dell'indirizzo e-mail a cui hai inviato il messaggio. Vedrai il tuo messaggio in attesa lì quasi immediatamente.
Nota :se il messaggio non è nella tua casella di posta, potrebbe essere stato recapitato nella tua cartella Spam.
Puoi visualizzare i messaggi inviati all'interno del tuo s-nail
cliente. Riavvia il client interattivo:
s-nail
Dal client di posta elettronica, visualizza i messaggi inviati digitando:
file +sent
Copia
Vedrai un output come questo:
$ s-nail
s-nail version v14.9.15. Type `?' for help
/home/admin/Maildir: 0 messages
No more mail.
? file +sent
+[/home/admin/Maildir/]sent: 1 message 1 new
▸N 1 [email protected] 2022-02-04 11:07 12/291 Test email subject line
?
Puoi gestire la posta inviata utilizzando gli stessi comandi che utilizzi 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 dovresti avere sufficienti funzionalità di posta elettronica MTA per iniziare.