Installazione Postfix su Rocky Linux 9 e configurazione relay SMTPS

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