Postfix è un efficiente Mail Transfer Agent utilizzato per l’instradamento e l’invio/ricezione di e-mail. È il server di posta elettronica più noto utilizzato in diverse distribuzioni Linux in sostituzione di Sendmail che era installato di default. Verifichiamo per prima cosa che sul nostro sistema non sia già installato Sendmail
# rpm -qa | grep sendmail
Se presente, procediamo con la disinstallazione
# dnf remove sendmail*
Possiamo ora installare Postfix ed attivare l’avvio automatico del servizio in modo che venga avviato al riavvio del sistema
# dnf install postfix
# systemctl enable postfix
# systemctl start postfix
A questo punto possiamo installare sul server il client mailx che può essere utilizzato per effettuare test di invio mail da linea di comando. Dalla versione 9 di Rocky Linux questo comando si trova nel pacchetto s-nail
# dnf install s-nail
Nelle versioni precedenti di Rocky Linux per l’installazione di mailx si utilizzava il comando # dnf install mailx
A questo punto possiamo installare il pacchetto STunnel che ci permetterà di utilizzare un mail relay tramite il protocollo sicuro SMTPS
# dnf install stunnel
# systemctl enable stunnel
Creiamo il file di configurazione di stunnel in /etc/stunnel/stunnel.conf
# vi /etc/stunnel/stunnel.conf
con il seguente contenuto, andando a sostituire SMTP_SERVER con l’indirizzo del server da utilizzare
client = yes
foreground = no
[smtp-tls-wrapper]
accept = 11125
connect = SMTP_SERVER:465
Possiamo a questo punto avviare il servizio
# systemctl start stunnel
Per verificare che tutto funzioni è possibile utilizzare il seguente comando (anche in questo caso sostituire SMTP_SERVER con l’indirizzo del server da utilizzare)
# openssl s_client -connect SERVER_SMTP:465
Per l’utilizzo del metodo di autenticazione SASL PLAIN è necessario installare il seguente pacchetto
# dnf install cyrus-sasl-plain
Possiamo ora procedere alla configurazione di Postfix. Per prima cosa creiamo il file /etc/postfix/sasl_passwd nel quale andremo a definire il mail server di destinazione e le credenziali di accesso con il formato riportato di seguito
[SMTP_SERVER]:11125 <USERNAME>:<PASSWORD>
e creiamo il database con il comando
# postmap /etc/postfix/sasl_passwd
Completiamo ora la configurazione di Postfix nel file /etc/postfix/main.cf andando a modificare le seguenti righe
myhostname = ServerName
mydomain = DomainName
myorigin = $mydomain
inet_interfaces = all
mynetworks = 192.168.1.0/24, 127.0.0.0/8
relayhost = [127.0.0.1]:11125
message_size_limit = 104857600
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login
Riavviamo il servizio Postfix
# systemctl restart postfix
Possiamo ora fare un test di invio di un messaggio tramite linea di comando
# mailx -r sender@senderdomain -s "This is the subject" recipient@recipientdomain
To: recipient@recipientdomain
Subject: This is the subject
Prova
^D
-------
(Preliminary) Envelope contains:
From: sender@senderdomain
To: recipient@recipientdomain
Subject: This is the subject
Send this message [yes/no, empty: recompose]? yes