FreeBSD, SMTP Authentication e MySQL (DBMail)

Da sempre sono stato un grande sostenitore di DBMail, un Mail server che ha la peculiarità di appoggiare tutti i suoi dati dentro un DB – mySql, PgSql, SQLite…)

Ultimamente ho avuto la necessità di aggiungere l’autenticazione SMTP al mio Sendmail di base… e mi sono accorto che far interoperare i vari pezzi che compongono la ricetta è più facile di quel che credessi. Eccovi un rapido prontuario.

Innanzitutto come reference sono partito dal FreeBSD Handbook che però faceva l’autenticazione sugli utenti di sistema di FreeBSD.

Comunque ho installato il port security/cyrus-sasl2 avendo cura di selezionare tra i possibili backend di autenticazione mySql.

A questo ho creato /usr/local/lib/sasl2/Sendmail.conf inserendoci dentro:

pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_database: dbmail
sql_user: dbmail
sql_passwd: dbmail
sql_select: SELECT passwd FROM dbmail_users WHERE userid = ‘%u@%r’
sql_verbose: yes

Ovviamente al posto di sql_user e sql_password dovrete sostiture utenza e password del vostro dbmail.

A questo punto ho aggiunto ad /etc/make.conf le seguenti righe:

SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2

che serviranno ad indicare a Sendmail di caricare le estensioni SASL per l’autenticazione. Di conseguenza dovremo ricompilare Sendmail con tre semplici passi:

cd /usr/src/lib/libsmutil
make cleandir && make obj && make
cd /usr/src/lib/libsm
make cleandir && make obj && make
cd /usr/src/usr.sbin/sendmail
make cleandir && make obj && make && make install

Per attivare le nuove funzionalità modifichiamo il file .cf di sendmail dentro /etc/mail aggiungendo le seguenti righe:

dnl The group needs to be mail in order to read the sasldb2 file
define(`confRUN_AS_USER’,`root:mail’)dnl

dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN’)dnl
define(`confAUTH_MECHANISMS’, `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN’)dnl

define(`confDONT_BLAME_SENDMAIL’,`GroupReadableSASLDBFile’)dnl

Dovrebbe funzionare 🙂

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.