venerdì , Marzo 29 2024
Ultime Notizie
Home / Linux / Postfix: Autenticazione SASL

Postfix: Autenticazione SASL

Ciao Ragazzi,

oggi andiamo sul tecnico.

Questo articolo server a chi utilizza Postfix come SMTP Server e nel caso specifico ad implementare l’autenticazione mediante il sistema Simple Authentication and Security Layer (SASL)

Questo sistema prevede la possibilità di integrare diverse modalità di autenticazione:

– EXTERNAL, in cui l’autenticazione è implicita nel contesto (per esempio, nei protocolli che già utilizzano IPsec o TLS)
– ANONYMOUS, per accessi guest non autenticati
– PLAIN, per gli accessi in testo chiaro
– OTP, un meccanismo one-time password. (OTP è stato reso obsoleto da SKEY)
– SKEY, meccanismo S/KEY.
– CRAM-MD5, un semplice schema challenge-response basato su HMAC-MD5.
– DIGEST-MD5 (storico), meccanismo challenge-response compatibile parzialmente con HTTP Digest basato su MD5.
– SCRAM (RFC 5802), schema moderno challenge-response con supporto al binding del canale
– NTLM, schema di autenticazione NT LAN Manage
– GSSAPI, per Kerberos V5 authentication attraverso il GSSAPI.
– BROWSERID-AES128, per Mozilla Persona authentication
– EAP-AES128, per GSS EAP authentication
– GateKeeper (& GateKeeperPassport), meccanismo challenge-response sviluppato da Microsoft per MSN Chat

Quello che vediamo oggi per Postfix è il più semplice ovvero il PLAIN con login tramite username e password memorizzati in un Database MySQL.

In questo articolo do per scontato che Postfix sia installato e funzionante.

Installiamo il demone di SASL:

apt-get install libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql

 

Fatto questo modifichiamo il file /etc/default/saslauthd sostituendo START=no con START=yes così il demone partirà all’avvio del pc.

Inoltre modificate la stringa OPTIONS=…. così OPTIONS=”-c -r -m /var/spool/postfix/var/run/saslauthd” questo è necessario perchè Postfix è eseguito come chroot e ha bisogno di accedere al socket di saslauthd

Inoltre dobbiamo creare la directory:

mkdir -p /var/spool/postfix/var/run/saslauthd

Sempre per l’ambiente chroot è necessario creare il link simbolico:

rm -rf /var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd

ATTENZIONE: se non cancellate il file /var/run/saslauthd testando il sistema avrete l’errore “connect() : No such file or directory 0”

Creiamo un nuovo file:

vi /etc/pam.d/smtp

Modifichiamo il file come segue:

auth    required   pam_mysql.so user=mailadmin passwd=newpassword host=127.0.0.1 db=mail table=mailbox usercolumn=username passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mailadmin passwd=newpassword host=127.0.0.1 db=mail table=mailbox usercolumn=username passwdcolumn=password crypt=1

Abbiamo necessità di un secondo file:

vi /etc/postfix/sasl/smtpd.conf

Che editiamo come segue:

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true

Nel caso di autenticazione basata su DB MySQL il file va editato come segue (attenzione a mettere i nomi giusti del db e delle tabelle!):

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: dbuser
sql_passwd: dbpassword
sql_database: dbname
sql_select: SELECT password FROM user WHERE username = '%u@%r'

Aggiungiamo l’utente postfix al gruppo sasl:

adduser postfix sasl

Poi provvediamo ad inserire le voci per l’autenticazione SASL dentro il main.cf di Postfix:

smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Riavviamo i servizi:

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart

E proviamo che tutto funziona correttamente:

razorblade:~# testsaslauthd -s smtp -u [email protected] -p newpassword
0: OK "Success."

Enjoy!

Info Paolo Daniele

Ingegnere delle Telecomunicazioni, appassionato di informatica fin da piccolo ho trasformato la passione in lavoro. Con il PHP faccio tutto (o quasi...) ma non disprezzo altri linguaggi all'occorrenza. Se vi piace il mio sito, o vi è utile, o vi sto simpatico, offritemi una birra!

Ti potrebbe interessare

Configurazione SSL/HTTPS Wildfly Application Server

Ciao Ragazzi, ritorno per fare alcune considerazioni sull’installazione di un certificato SSL e quindi l’abilitazione …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *