Postfix è un popolare software libero e open-source che funge da mail transfer agent (MTA). Il compito di Postfix è quello di instradare e consegnare le e-mail. Oltre all'uso classico, Postfix può anche essere configurato per inviare e-mail solo tramite applicazioni locali.
Questa applicazione di Postfix è un trucco utile da implementare in varie situazioni. Ad esempio, può essere utilizzata per inviare regolarmente notifiche e-mail, quando si lavora con un provider di servizi e-mail di terze parti con traffico in uscita limitato, ecc. Rispetto a qualsiasi SMTP server, Postfix è un'alternativa più leggera che allo stesso tempo mantiene le funzionalità necessarie.
In questo tutorial, scopri come installare e configurare Postfix come server SMTP di solo invio su Ubuntu.
Prerequisiti
Per seguire questa guida, è necessario soddisfare i seguenti prerequisiti:
-
È necessario disporre di un server Ubuntu configurato correttamente con accesso a un utente sudo non-root.
-
È inoltre necessario un nome di dominio completamente registrato. Scopri di più sui nomi di dominio nel nostro Installazione di un certificato SSL da un'Autorità di Certificazione commerciale post.
-
Infine, avrai bisogno di un record DNS con il nome di dominio che punta all'indirizzo IP pubblico del server.
Installazione di Postfix
Una volta soddisfatti i prerequisiti, il server è pronto per distribuire Postfix. Il modo più semplice per installare Postfix è installare il mailutils pacchetto. È direttamente disponibile dai repository ufficiali di Ubuntu.
Per prima cosa, avvia un terminale e aggiorna il APT database dei pacchetti:
|
1 |
sudo apt update |

Quindi, puoi installare Postfix:
|
1 |
sudo apt install mailutils |

Durante il processo di installazione, apparirà la seguente finestra di configurazione. L'opzione predefinita è Internet Sito. Per confermare la selezione, premere TAB per spostare il cursore alla sezione successiva. Quindi, premere Invio:

Il passaggio successivo richiederà il nome di posta del sistema. Sarà il nome assegnato al server al momento della creazione. Come descritto nello script, se l'indirizzo di posta per l'host locale è “foo@example.org”, allora il nome di posta del sistema sarà example.org:

Si noti che lo script di configurazione può essere avviato in qualsiasi momento anche successivamente utilizzando il seguente comando:
|
1 |
sudo dpkg-reconfigure postfix |
Configurazione di Postfix
In questa fase, Postfix verrà configurato per inviare e ricevere email solo da localhost. Questo richiede che Postfix rimanga in ascolto sull'interfaccia di loopback. Si tratta dell'interfaccia di rete virtuale che il server utilizza per la comunicazione interna. Successivamente, apri il file di configurazione di Postfix utilizzando l'editor di testo preferito:
|
1 |
sudo nano /etc/postfix/main.cf |
Modifica il valore di inet_interface in loopback-only:

Un'altra direttiva che devi modificare è mydestination. Definisce l'elenco dei domini che vengono recapitati tramite il local_transport trasporto di recapito della posta. Il valore predefinito sarà simile a questo:

Modifica il suo valore nel seguente:
|
1 |
mydestination = localhost.$mydomain, localhost, $myhostname |

Nel caso in cui il tuo dominio sia in realtà un sottodominio e desideri che le email appaiano come se fossero inviate dal dominio principale, aggiungi la seguente direttiva alla fine della configurazione di Postfix. Rimuoverà il sottodominio dall'indirizzo email:
|
1 |
masquerade_domains = <dominio_principale> |

Per rendere effettive le modifiche, riavvia Postfix:
|
1 |
sudo systemctl restart postfix |
Test del server SMTP
Supponendo che il processo di configurazione sia andato a buon fine, è il momento di testarlo. Per fare questo, verifica se Postfix è in grado di inviare un'e-mail a un account e-mail esterno utilizzando il mail comando. Fa parte del mailutils pacchetto:
|
1 |
echo "Corpo dell'e-mail di prova" | mail -s "Oggetto" <indirizzo_email> |
Il messaggio dovrebbe arrivare all'indirizzo email specificato. A questo punto, tutte le email inviate non sono crittografate. I provider di servizi generalmente contrassegnano tali email come spam, quindi assicurati di controllare la cartella dello spam per l'arrivo dell'email.
Se il mail comando segnala un errore o l'email non è arrivata dopo un periodo di tempo prolungato, ricontrolla la configurazione di Postfix e assicurati che il nome del server e l'hostname siano impostati correttamente. Con questa configurazione, le email sembreranno inviate dal seguente indirizzo:
|
1 |
<username>@<dominio> |
Qui, il nome utente sarà il nome utente dell'utente del server che ha eseguito il mail comando.
Inoltro della posta di sistema
Abbiamo verificato con successo che il server di posta elettronica è configurato correttamente e funzionante. Ora deve essere configurato per inoltrare le email per root. Tutti i messaggi generati dal sistema inviati al server verranno inoltrati a un indirizzo email esterno. Per i destinatari delle email, il /etc/aliases file contiene l'elenco dei nomi alternativi. Aprilo usando il tuo editor di testo preferito:
|
1 |
sudo nano /etc/aliases |
Per impostazione predefinita, apparirà così:

Alla fine del file, aggiungi la riga seguente:
|
1 |
root: <email_address> |

Indica che le email inviate a root verranno inoltrate a un indirizzo email. Per rendere effettiva la modifica, esegui il comando seguente. Ricostruirà il database degli alias che il mail comando utilizza:
|
1 |
sudo newaliases |
![]()
Successivamente, devi verificare se la modifica è andata a buon fine. Invia un'email di prova a root:
|
1 |
echo "Corpo dell'email di prova di root" | mail -s "Oggetto" root |
L'e-mail dovrebbe arrivare all'indirizzo e-mail specificato. Non dimenticare di controllare la cartella dello spam poiché non è ancora configurata alcuna crittografia.
Abilitazione della crittografia SMTP
Inviare e-mail in formato non crittografato è una mossa rischiosa. Per garantire la sicurezza, è necessario avere la crittografia SMTP abilitata. Per ottenere questo, richiederemo un certificato TLS gratuito da Let’s Encrypt per il tuo dominio.
Per Ubuntu, è lo strumento Certbot che fa il lavoro. Fortunatamente, è disponibile direttamente dal repository ufficiale di Ubuntu. Installa Certbot con il comando seguente:
|
1 |
sudo apt install certbot |

Supponendo il server ha UFW configurato, è necessario avere la porta 80 aperta affinché la verifica del dominio possa avere luogo. Esegui il seguente comando per abilitarla:
|
1 |
sudo ufw allow 80 |

Ora, esegui Certbot per generare un certificato. Indica a Certbot di emettere certificati con una chiave RSA a 4096 bit. La verifica avverrà tramite la porta 80 (HTTP):
|
1 |
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d <domain> |
L'output sarà simile a questo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Salvataggio debug log in /var/log/letsencrypt/letsencrypt.log Plugin selezionati: Autenticatore standalone, Installatore Nessuno Ottenimento di un nuovo certificato Esecuzione delle seguenti sfide: http-01 sfida per '<domain>' In attesa di verifica... Pulizia delle sfide NOTE IMPORTANTI: - Congratulazioni! Il tuo certificato e la catena sono stati salvati in: /etc/letsencrypt/live/<domain>/fullchain.pem Il tuo file della chiave è stato salvato in: /etc/letsencrypt/live/<domain>/privkey.pem Il tuo certificato scadrà expire il 2020-07-11. Per ottenere una nuova o modificata versione di questo certificato in the futuro, semplicemente esegui certbot di nuovo. Per non-interattivamente rinnovare *tutti* i tuoi certificati, esegui "certbot renew" - Se ti piace Certbot, per favore considera di supportare il nostro lavoro con: una donazione a ISRG / Let's Encrypt: https://letsencrypt.org/donate una donazione a EFF: https://eff.org/donate-le |
La chiave sarà memorizzata nella seguente directory:
|
1 |
/etc/letsencrypt/live/<dominio> |
Ora che il tuo certificato è generato, apri il file di configurazione di Postfix in un editor di testo:
|
1 |
sudo nano /etc/postfix/main.cf |
Trova la sezione TLS parametri:

Dopodiché, cambia il valore delle direttive smtpd_tls_cert_file e smtpd_tls_key_file:

Successivamente, salva e chiudi il file. Per rendere effettive le modifiche, riavvia Postfix:
|
1 |
sudo systemctl restart postfix |
Infine, invia nuovamente un'email di prova a un indirizzo email di destinazione:
|
1 |
echo "Questo è il corpo dell'email" | mail -s "Oggetto dell'email" <email> |
L'email dovrebbe ora apparire normalmente come le altre email. Se controlli le informazioni tecniche dell'email, apparirà crittografata.
Considerazioni finali
Congratulazioni! Hai configurato con successo un server e-mail di solo invio, supportato da Postfix. Anche le transazioni e-mail sono sicure grazie a una chiave di crittografia appropriata.
Per altri modi per ottimizzare il trasferimento delle e-mail, dai un'occhiata a questo tutorial I modi migliori per utilizzare il server SMTP di Google.
Buon divertimento con il computer!
Commenti
Ancora nessun commento. Scrivi il primo.