Postfisso è un MTA gratuito e opensource (Mail Transfer Agent) utilizzato per instradare o consegnare e-mail su un sistema Linux. In questa guida imparerai come installare e configurare Postfix su CentOS 8.
Allestimento laboratorio:
- OS : Server CentOS 8
- Indirizzo IP: 192.168.1.13
- Nome host: server1.crazytechgeek.info (assicurati che il nome di dominio sia puntato all'IP del server)
Passaggio 1) Aggiorna il sistema
Il primo passo è assicurarsi che i pacchetti di sistema siano aggiornati. Per fare ciò, aggiorna il sistema come segue:
# dnf update
Prima di procedere ulteriormente, assicurati anche che nessun altro MTA come Invia email sono esistenti in quanto ciò causerà un conflitto con la configurazione di Postfix. Per rimuovere Sendmail, ad esempio, esegui il comando:
# dnf remove sendmail
Passaggio 2) Imposta il nome host e aggiorna il file /etc/hosts
Usa sotto il comando hostnamectl per impostare il nome host sul tuo sistema,
# hostnamectl set-hostname server1.crazytechgeek.info # exec bash
Inoltre, devi aggiungere il nome host del sistema e le voci IP nel file /etc/hosts
# vim /etc/hosts 192.168.1.13 server1.crazytechgeek.info
Salva ed esci dal file.
Leggi anche : Come configurare il server DNS (Bind) su CentOS 8 / RHEL8
Passaggio 3) Installa il server di posta Postfix
Dopo aver verificato che nessun altro MTA sia in esecuzione sul sistema, installa Postfix eseguendo il comando:
# dnf install postfix
Passaggio 4) Avvia e abilita il servizio Postfix
Dopo aver installato correttamente Postfix, avvia e abilita il servizio Postfix eseguendo:
# systemctl start postfix # systemctl enable postfix
Per controllare lo stato di Postfix, esegui il seguente comando systemctl
# systemctl status postfix
Ottimo, abbiamo verificato che Postfix è attivo e funzionante. Successivamente, configureremo Postfix per inviare e-mail localmente al nostro server.
Passaggio 5) Installa il client di posta mailx
Prima di configurare il server Postfix, è necessario installare la funzione mailx. Per installare mailx, eseguire il comando:
# dnf install mailx
Passaggio 6) Configura il server di posta Postfix
Il file di configurazione di Postfix si trova in /etc/postfix/main.cf . Dobbiamo apportare alcune modifiche al file di configurazione, quindi aprilo usando il tuo editor di testo preferito.
# vi /etc/postfix/main.cf
Apporta modifiche alle seguenti righe:
myhostname = server1.crazytechgeek.info mydomain = crazytechgeek.info myorigin = $mydomain ## Uncomment and Set inet_interfaces to all ## inet_interfaces = all ## Change to all ## inet_protocols = all ## Comment ## #mydestination = $myhostname, localhost.$mydomain, localhost ##- Uncomment ## mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ## Uncomment and add IP range ## mynetworks = 192.168.1.0/24, 127.0.0.0/8 ## Uncomment ## home_mailbox = Maildir/
Al termine, salva ed esci dal file di configurazione. Riavvia il servizio di postfix per rendere effettive le modifiche
# systemctl restart postfix
Passaggio 7) Testare Postfix Mail Server
Verifica se la nostra configurazione funziona, prima crea un utente di prova
# useradd postfixuser # passwd postfixuser
Quindi, esegui il comando seguente per inviare e-mail da pkumar utente locale a un altro utente "utente postfix '
# telnet localhost smtp or # telnet localhost 25
Se il servizio telnet non è installato, puoi installarlo usando il comando:
# dnf install telnet -y
Quando esegui il comando come indicato in precedenza, dovresti ottenere l'output come mostrato
[[email protected] ~]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 server1.crazytechgeek.info ESMTP Postfix
Sopra conferma che la connettività al server di posta postfix funziona correttamente. Quindi, digita il comando:
# ehlo localhost
L'output sarà qualcosa del genere
250-server1.crazytechgeek.info 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8
Quindi, esegui i comandi evidenziati in arancione, come "mail from", "rcpt to", data e infine digita quit,
mail from:<pkumar> 250 2.1.0 Ok rcpt to:<postfixuser> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Hello, Welcome to my mailserver (Postfix) . 250 2.0.0 Ok: queued as B56BF1189BEC quit 221 2.0.0 Bye Connection closed by foreign host
Completa il comando telnet per inviare e-mail dall'utente locale "pkumar ” a un altro utente locale “utente postfix ” sarebbe qualcosa come sotto
Se tutto è andato secondo i piani, dovresti essere in grado di visualizzare l'e-mail inviata nella home directory del nuovo utente.
# ls /home/postfixuser/Maildir/new 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info #
Per leggere l'email, usa semplicemente il comando cat come segue:
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Registri del server di posta Postfix
I log di posta del server di posta Postfix sono archiviati nel file “/var/log/maillog ", usa il comando seguente per visualizzare i registri in tempo reale,
# tail -f /var/log/maillog
Protezione del server di posta Postfix
Si consiglia sempre di proteggere la comunicazione tra i client e il server Postfix, ciò può essere ottenuto utilizzando certificati SSL, questi certificati possono provenire da autorità attendibili o certificati autofirmati. In questo tutorial genereremo un certificato autofirmato per postfix utilizzando openssl comando,
Presumo che openssl sia già installato sul tuo sistema, nel caso in cui non sia installato, usa il seguente comando dnf,
# dnf install openssl -y
Genera chiave privata e CSR (Richiesta di firma del certificato) utilizzando il comando openssl,
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
Ora genera il certificato autofirmato usando il seguente comando openssl,
# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out mail.crt Signature ok subject=C = IN, ST = New Delhi, L = New Delhi, O = IT, OU = IT, CN = server1.crazytechgeek.info, emailAddress = [email protected] Getting Private key #
Ora copia la chiave privata e il file del certificato nella directory /etc/postfix
# cp mail.key mail.crt /etc/postfix
Aggiorna la chiave privata e il percorso del file del certificato nel file di configurazione suffisso,
# vi /etc/postfix/main.cf ……… smtpd_use_tls = yes smtpd_tls_cert_file = /etc/postfix/mail.crt smtpd_tls_key_file = /etc/postfix/mail.key smtpd_tls_security_level = may ………
Riavvia il servizio postfix per apportare le modifiche precedenti all'effetto.
# systemctl restart postfix
Proviamo a inviare e-mail al dominio locale interno e al dominio esterno utilizzando il client mailx.
Invio di email interne locali dall'utente pkumar all'utente postfix
# echo "test email" | mailx -s "Test email from Postfix MailServer" -r [email protected] [email protected]
Controlla e leggi l'e-mail utilizzando quanto segue,
# cd /home/postfixuser/Maildir/new/ # ll total 8 -rw-------. 1 postfixuser postfixuser 476 Nov 12 17:34 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info -rw-------. 1 postfixuser postfixuser 612 Nov 13 02:40 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info # cat 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
Invio di email da postfixuser a dominio esterno ( [email protetta])
# echo "External Test email" | mailx -s "Postfix MailServer" -r [email protected] [email protected]
Nota: Se il tuo IP non è nella lista nera da nessuna parte, la tua e-mail al dominio esterno verrà consegnata, altrimenti verrà rimbalzata dicendo che l'IP è nella lista nera nel database di spamhaus così e così.
Controlla la coda di posta di Postfix
Usa il comando mailq per elencare i messaggi in coda.
# mailq Mail queue is empty #
E questo è tutto! La nostra configurazione Postfix funziona! È tutto per ora. Ci auguriamo che tu abbia trovato questo tutorial utile e che tu possa configurare comodamente il tuo server Postfix locale.
Leggi anche :Come installare e configurare Samba su CentOS 8