Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
DanBadJar
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 28 lug 2006, 19:27
Nome Cognome: Daniele Malavasi
Slackware: 13.1
Kernel: 2.6.34.1
Desktop: XFCE - Gnome
Località: Bologna
Contatta:

Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da DanBadJar »

Ciao a tutti,
sto costruendo un mailserver con lo scopo di avere un frontend globale su MySQL (almeno per la gestione degli utenti,password..attivi o non attivi).
Ho disinstallato sendmail e ricompilato postfix 2.5.2 abilitando il supporto a SASL e MySQL.
Il mio scopo è offrire autenticazione SMTP col servizio Cyrus SASL (Pacchetto standard di Slackware 12.1 cyrus-sasl-2.1.22)
Il file di configurazione del servizio smtp è /usr/lib/sasl2/smtpd.conf ed è questo:

Codice: Seleziona tutto

# Global Parameters
log_level: 7
pwcheck_method: auxprop
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5

# Auxiliary plugins parameters
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_database: mail
sql_user: root
sql_password: password
sql_select: SELECT '%p' FROM users WHERE username = '%u' AND userrealm = '%r' AND auth='1'
sql_usessl: no

Il database su MySQL esiste e le tabelle sono corrette.
In fase di autenticazioni ottengo i seguenti errori da Postfix (/var/log/maillog):

Codice: Seleziona tutto

Jun 28 11:05:27 SLACKSERVER2 postfix/smtpd[3842]: connect from unknown[192.168.1.2]
Jun 28 11:05:29 SLACKSERVER2 postfix/smtpd[3842]: warning: SASL authentication failure: no secret in database
Jun 28 11:05:29 SLACKSERVER2 postfix/smtpd[3842]: warning: unknown[192.168.1.2]: SASL CRAM-MD5 authentication failed: authentication failure
Jun 28 11:05:29 SLACKSERVER2 postfix/smtpd[3842]: warning: SASL authentication failure: Password verification failed
Jun 28 11:05:29 SLACKSERVER2 postfix/smtpd[3842]: warning: unknown[192.168.1.2]: SASL PLAIN authentication failed: authentication failure
Jun 28 11:05:29 SLACKSERVER2 postfix/smtpd[3842]: warning: unknown[192.168.1.2]: SASL LOGIN authentication failed: authentication failure
Jun 28 11:06:02 SLACKSERVER2 postfix/smtpd[3842]: disconnect from unknown[192.168.1.2]
Se invece cambio il serivizio di verifica della password da auxprop a saslauthd , offrendo a Cyrus SASL il seguente file /usr/lib/sasl2/smtpd.conf

Codice: Seleziona tutto

pwcheck_method: saslauthd
log_level: 3
mech_list: PLAIN LOGIN
...tutto funziona e si autentica cercando la password dell'utente sul file /etc/shadow
Ma questo non era il mio scopo...

Ora mi chiedo:
1) Faccio bene ad avviare saslauthd con

Codice: Seleziona tutto

saslauthd -a shadow
?

2) C'è da ricompilare Cyrus SASL? Se si...come?

3) Perchè diavolo PAT non la smette con sendmail e include Postfix di default su slackware?!

Grazie a tutti in anticipo.

Avatar utente
bebbo
Linux 0.x
Linux 0.x
Messaggi: 31
Iscritto il: gio 16 feb 2006, 0:32
Località: Roma
Contatta:

Re: Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da bebbo »

Spesso mi chiedo se sono io che mi complico la vita... ma fa piacere vedere che c'è chi se la complica più di me :p

Solitamente quando ho problemi di questo tipo mi ricompilo tutti i pacchetti dai sorgenti aggiornati e i problemi si risolvono "da soli".

Sinceramente nn so se cyrus SASL ha supporto sql... dovresti controllare se hai un file tipo /usr/lib/sasl2/smtpd.conf insomma... prova con un "locate smtpd.conf| grep sasl2" se non lo trovi... nn ha il supporto SQL :) Se invece esiste... dovresti controllarne il contenuto e schiaffarci una cosa tipo:

Codice: Seleziona tutto

sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: mysql login plain crammd6 digestmd5
mysql_user: XXXXX
mysql_passwd: XXXXX
mysql_database: postfix
mysql_statement: SELECT password FROM mailboxes WHERE mail = '%u'
mysql_verbose: yes
comunque ti consiglio di dare uno sguardo qui: http://postfix.wiki.xs4all.nl/index.php ... _and_MySQL

Spero di esser stato d'aiuto :)

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da conraid »

Dan, ora non posso controllare, ma mi sembra che sasl in Slackware sia compilato senza --enable-sql

Avatar utente
DanBadJar
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 28 lug 2006, 19:27
Nome Cognome: Daniele Malavasi
Slackware: 13.1
Kernel: 2.6.34.1
Desktop: XFCE - Gnome
Località: Bologna
Contatta:

Re: Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da DanBadJar »

Da quanto ho potuto vedere in /usr/lib/sasl2 non ho notato la libreria libsql.so.2.0.22 non esiste ... quindi credo proprio che Conraid avesse ragione (Conraid santo subito)
Così ho disinstallato il pacchetto di Pat e ho ricompilato da zero seguendo questo configure:

Codice: Seleziona tutto

./configure \
--with-plugindir=/usr/lib/sasl2 \
--disable-java \
--disable-krb4 \
--with-dblib=berkeley \
--with-saslauthd=/var/state/saslauthd \
--without-pwcheck \
--with-devrandom=/dev/urandom \
--enable-cram \
--enable-digest \
--enable-plain \
--enable-login \
--disable-otp \
--enable-sql \
--with-ldap=/usr \
--with-mysql=/usr \
Poi il famoso make che non ha restituito errori
E poi il temuto make install

Ho notato che le librerie me le ha messe in /usr/local/lib/sasl2 e come da suggerimento ho creato un link simbolico da /usr/lib/sasl2
con

Codice: Seleziona tutto

ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
Così finalmente ho rimesso il smtpd.conf di cui ho parlato nel primo post e adesso trovo in /var/log/maillog alcuni errori diversi e l'autenticazione comunque non avviene.

Codice: Seleziona tutto

postfix/smtpd[16772]: fatal: SASL per-process initialization failed
postfix/master[16746]: warning: process /usr/libexec/postfix/smtpd pid 16772 exit status 1
postfix/master[16746]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Non ne vengo mica fuori. Qualcuno mi da una manina? Thanks :oops:

Avatar utente
DanBadJar
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 28 lug 2006, 19:27
Nome Cognome: Daniele Malavasi
Slackware: 13.1
Kernel: 2.6.34.1
Desktop: XFCE - Gnome
Località: Bologna
Contatta:

Re: Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da DanBadJar »

Procedendo con l'odissea ho notato che nel file di configurazione di postfix avevo un valore impostato male.
Correggendolo è diventato

Codice: Seleziona tutto

smtpd_sasl_path = /usr/lib/sasl2
..che poi ora è un link che punta a /usr/local/lib/sasl2

Così riavviando i servizi ho trovato errori diversi...il piu lampante nei log di saslauthd

Codice: Seleziona tutto

Jun 29 01:28:40 SLACKSERVER2 postfix/smtpd[3853]: sql_select option missing
Jun 29 01:28:40 SLACKSERVER2 postfix/smtpd[3853]: auxpropfunc error no mechanism available
Jun 29 01:28:40 SLACKSERVER2 postfix/smtpd[3853]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql
?

Poi da /var/log/maillog

Codice: Seleziona tutto

Jun 29 01:28:44 SLACKSERVER2 postfix/smtpd[3853]: warning: SASL authentication failure: Password verification failed
Jun 29 01:28:44 SLACKSERVER2 postfix/smtpd[3853]: warning: unknown[192.168.1.2]: SASL PLAIN authentication failed: authentication failure
Jun 29 01:28:44 SLACKSERVER2 postfix/smtpd[3853]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
Jun 29 01:28:44 SLACKSERVER2 last message repeated 5 times
Jun 29 01:28:44 SLACKSERVER2 postfix/smtpd[3853]: warning: unknown[192.168.1.2]: SASL LOGIN authentication failed: authentication failure
Perchè mi cerca il Berkley db se gli ho chiesto di cercare mysql?

:-k

Avatar utente
DanBadJar
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 28 lug 2006, 19:27
Nome Cognome: Daniele Malavasi
Slackware: 13.1
Kernel: 2.6.34.1
Desktop: XFCE - Gnome
Località: Bologna
Contatta:

Re: Probemi autenticazione SMTP con Postfix + Cyrus SASL + MySQL

Messaggio da DanBadJar »

RISOLTO!

Tutti i pacchetti vanno ricompilati da sorgente.

Ecco come compilare la libreria Cyrus Sasl:

Codice: Seleziona tutto

./configure \
--with-plugindir=/usr/lib/sasl2 \
--disable-java \
--disable-krb4 \
--with-dblib=berkeley \
--with-saslauthd=/var/state/saslauthd \
--without-pwcheck \
--with-devrandom=/dev/urandom \
--enable-cram \
--enable-digest \
--enable-plain \
--enable-login \
--disable-otp \
--disable-anon \
--enable-sql \
--with-mysql=/usr \
Ecco come compilare Postfix:

Codice: Seleziona tutto

make -f Makefile.init makefiles \
    'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \
    'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lsasl2'
Poi per l'autenticazione su tabelle mysql è necessario fornire questo file smtpd.conf nella directory della libreria Cyrus /usr/lib/sasl2:

Codice: Seleziona tutto

#Global parameters
log_level: 3
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: mysql login plain crammd6 digestmd5
sasl_mech_list: PLAIN LOGIN

sql_engine: mysql
sql_hostnames: localhost
sql_database: mail
sql_user: utente
sql_passwd: password
sql_select: SELECT password FROM mailboxes WHERE mail = '%u'
sql_usessl: no


Rispondi