Le implementazioni più comunemente usate di SMTP nella maggior parte delle distribuzioni Linux sono Sendmail e Postfix. Postfix è un agente di trasferimento della posta open source originariamente sviluppato come alternativa a Sendmail e solitamente impostato come server di posta predefinito.
Installazione di Postfix
Prima di iniziare l'installazione, prima di tutto. Una buona abitudine è controllare e vedere se il software è già installato sul server. È sempre utile controllare se c'è qualcosa prima di mettersi al lavoro.
Per controllare le distribuzioni basate su RPM, usa questo comando:
$ rpm -qa | grep postfix
Se il comando precedente mostra che l'RPM non è installato, puoi installare l'RPM Postfix con quanto segue (su yum
-distribuzioni basate):
$ yum install -y postfix
Dopo aver installato Postfix, puoi avviare il servizio e abilitarlo per assicurarti che si avvii dopo il riavvio:
$ systemctl start postfix
$ systemctl enable postfix
Configurazione di Postfix
Dopo aver installato Postfix, puoi iniziare a configurare il servizio a tuo piacimento. Tutte le opzioni necessarie per il servizio si trovano in /etc/postfix
. Il file di configurazione principale per il servizio Postfix si trova in /etc/postfix/main.cf
. All'interno del file di configurazione, ci sono molte opzioni che puoi aggiungere, alcune più comuni di altre. Esaminiamo alcuni che potresti vedere di più durante la configurazione del servizio e quando è necessario risolverlo:
myhostname
dichiara il nome host del server di posta. I nomi host normalmente contengono prefissi, come questo:
myhostname = mail.sinisterriot.com
mydomain
dichiara il dominio che sta effettivamente gestendo la posta, in questo modo:
mydomain = sinisterriot.com
mail_spool_directory
dichiara la directory in cui sono posizionati i file della casella di posta, in questo modo:
mail_spool_directory = /var/mail
mynetworks
dichiara un elenco di server SMTP remoti affidabili che possono essere inoltrati tramite il server, come questo:
mynetworks = 127.0.0.0/8, 168.100.189.0/28
L'elenco fornito con mynetworks
deve contenere solo indirizzi IP di rete locale o modelli di rete/maschera di rete separati da virgole o spazi bianchi. È importante utilizzare solo indirizzi di rete locali per evitare che utenti non autorizzati utilizzino il tuo server di posta per attività dannose, con il risultato che il tuo server e gli indirizzi vengono inseriti nella lista nera.
Test di Postfix
Prima di mettere qualcosa in produzione, testarlo in un ambiente di sviluppo è sempre una buona idea. Questo processo ha lo stesso concetto:una volta configurato il server di posta, testalo per assicurarti che funzioni.
Innanzitutto, ti consiglio di verificare se puoi inviare un'e-mail a un destinatario locale. In caso di successo, puoi procedere a un destinatario remoto. Preferisco usare il comando telnet per testare il mio server di posta:
$ telnet mail.sinisterriot.com 25
Aggiungi il HELO
comando per dire al server da quale dominio provieni:
HELO sinisterriot.com
Il prossimo è il mittente. Questo ID può essere aggiunto con il MAIL FROM
comando:
MAIL FROM: [email protected]
Questa voce è seguita dal destinatario e puoi aggiungerne più di una utilizzando il RCPT TO
comando più volte:
RCPT TO: [email protected]
Infine, possiamo aggiungere il contenuto del messaggio. Per accedere alla modalità contenuto, aggiungiamo il prefisso DATA
su una riga da solo, seguito da Subject
linea e il corpo del messaggio. Di seguito è riportato un esempio:
DATA
Subject: This is a test message
Hello,
This is a test message
.
Per completare il corpo del messaggio e chiuderlo, è necessario aggiungere un singolo punto (.) o un punto su una riga da solo. Una volta completato questo processo, il server tenterà di inviare l'e-mail con le informazioni fornite. La risposta del codice ti avviserà se l'e-mail è andata a buon fine o meno. Una volta terminato, usa il quit
comando per chiudere la finestra di invio.
In ogni caso, controlla i log di posta per eventuali errori. Si trovano in /var/log/maillog
per impostazione predefinita, ma questa posizione può essere cambiata in un'altra posizione. In qualità di amministratore di sistema, controllare i registri degli errori è una buona abitudine da avere. Questa pratica è ottima per la risoluzione dei problemi e ci fornisce informazioni utili per identificare e risolvere un problema più rapidamente. Anche la decifrazione dei registri di posta è una parte importante del lavoro dell'amministratore, poiché ogni parte del registro ci consente di sapere cosa è importante. Negli ultimi anni, conoscere queste parti mi ha aiutato a scrivere script per richieste specifiche mentre dovevo solo redigere o tralasciare parti dei log di posta.
Sicurezza Postfix
Proteggere i tuoi servizi è importante tanto quanto configurarli. È più sicuro trasferire i dati su una connessione sicura rispetto a una non protetta. Successivamente, tratteremo come proteggere il nostro server di posta appena configurato. Puoi farlo generando una sessione SSL su Transport Layer Security (TLS) per il server SMTP.
Innanzitutto, devi generare la chiave privata e la richiesta di firma del certificato (CSR). Puoi farlo tramite il openssl
comando:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Quindi, genera una richiesta di firma e copiala in /etc/postfix
directory:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Questa sequenza emette un certificato firmato al server di posta, noto anche come certificato di autorità di certificazione (CA). Questa pratica significa che la CA deve fidarsi del firmatario del certificato per proteggere la chiave privata e trasmettere i dati su Internet. Nell'altro tipo di certificato, un autofirmato, la CA non si fida del firmatario del certificato, lasciando le informazioni vulnerabili al furto e aperte per essere compromesse. È sempre meglio andare con un certificato firmato.
Una volta completato questo processo, puoi aggiungere le opzioni TLS al file di configurazione di Postfix:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
Quindi, riavvia il servizio per rendere effettive le nuove opzioni:
$ systemctl restart postfix
Ora hai un server di posta elettronica funzionante e sicuro.