Inoltro di posta ad un server esterno (SMARTHOST) con autenticazione

From RVM Wiki
Jump to navigation Jump to search

Può essere necessario che un mail server non possa inviare direttamente email ad altri mail server (direct MX), ad esempio per problemi di firewall, oppure perchè collegato ad un ip dinamico / blacklistato, e quindi sia necessario che inoltri tutta la mail in uscita ad un altro mail server, che viene denominato SMARTHOST.

Molto spesso questo smarthost richiede anche che l'invio di posta sia soggetto ad autenticazione smtp.


Prerequisiti

L'utilizzo di uno smarthost non ha prerequisiti.

Per utilizzare l'autenticazione smtp, è necessario appoggiarsi a SASL. Installare quindi i pacchetti necessari come per una autenticazione smtp server:

sudo apt-get install sasl2-bin libsasl2-modules
/etc/init.d/saslauthd start

Creazione elenco password per SMTP AUTH

Si crea il file contenete:

nome.smarthost username:password

Quindi:

sudoedit /etc/postfix/smtp_sasl_password_maps
smtp.libero.it rvmgroup@libero.it:rvmsrl


Compilazione Password map

Dato che la lista deve essere letta in formato hash, va compilata:

sudo postmap /etc/postfix/smtp_sasl_password_maps

Mettendo in debug smtpd, so noterà che i messaggi inviati allo smarthost sono preceduti da autenticazione.


Definizione dello SMARTHOST

sudoedit /etc/postfix/main.cf
...
relayhost = smtp.libero.it
...

In questo modo postfix inoltrerà tutta la posta esterna al server smtp indicato.

Abilitazione della Server SMTP AUTH

Bisogna specificare in main.cf che le password per l'autenticazione su smarthost sono nel file /etc/postfix/smtp_sasl_password_maps

sudoedit /etc/postfix/main.cf
...
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_password_maps
smtp_sasl_security_options =
...

(Verificato per Ubuntu Dapper)


Abilitazione cifratura TLS

Se si vuole che la sessiona sia crittografata:

sudoedit /etc/postfix/main.cf
...
smtp_use_tls = yes
smtp_tls_loglevel = 1
...

Si vedrà dai log:

Aug 18 12:34:44 localhost postfix/pickup[28346]: 40E8DE25C8: uid=1000 from=<diesis>
Aug 18 12:34:44 localhost postfix/cleanup[28362]: 40E8DE25C8: message-id=<20060818103444.40E8DE25C8@rvmnot003>
Aug 18 12:34:44 localhost postfix/qmgr[28347]: 40E8DE25C8: from=<gabriele.vivinetto@rvmgroup.it>, size=343, nrcpt=1 (queue a
ctive)
Aug 18 12:34:44 localhost postfix/smtp[28364]: setting up TLS connection to support.rvmgroup.it
Aug 18 12:34:44 localhost postfix/smtp[28364]: certificate verification failed for support.rvmgroup.it: num=19:self signed c
ertificate in certificate chain
Aug 18 12:34:45 localhost postfix/smtp[28364]: Unverified: subject_CN=support.rvmgroup.it, issuer=ca.rvmgroup.it
Aug 18 12:34:45 localhost postfix/smtp[28364]: TLS connection established to support.rvmgroup.it: TLSv1 with cipher DHE-RSA-
AES256-SHA (256/256 bits)
Aug 18 12:34:45 localhost postfix/smtp[28364]: Server certificate could not be verified
Aug 18 12:34:45 localhost postfix/smtp[28364]: 40E8DE25C8: to=<gabriele@rvmgroup.it>, relay=support.rvmgroup.it[81.208.113.1
51], delay=1, status=sent (250 Ok: queued as A024D25C02B)
Aug 18 12:34:45 localhost postfix/qmgr[28347]: 40E8DE25C8: removed