Newsgroup: it.comp.os.linux.sys
Titolo: Postfix + SMTP-Auth (dalla parte del Client!) = bestemmie a non finire

Ciao a tutti!
Ho un Server sul quale ho Postfix 2.1.1, non aggiornabile e, purtroppo,
non sostituibile con altri MTA po' meno fetenti.
Questo Server deve spedire le E-Mail non locali tramite un altro Server,
insomma il classico SmartHost.
Ovviamente, il Server che fara' il Relay vuole tassativamente che Postfix
si autentichi con nomeutente+password, altrimenti gli tira, giustamente,
un bel pernacchione stereofonico.
Problema: chiello fetiente di Postfix non vuole assolutamente saperne di
mandare lo username e la password.
Dalla documentazione che ho trovato in giro vedo che, mio malgrado, devo
passare tramite Cyrus-SASL anche per la parte client (il perche' mi sfugge
totalmente visto che basterebbe mandare un bel AUTH PLAIN o AUTH LOGIN, ma
tant'e'... Questo abbiamo e questo, purtroppo, dobbiamo tenere).
Ovviamente, Cyrus-SASL e' installato, di configurarlo manco se ne parla,
visto che da nessuna parte ho trovato qualcosa che mi dica COSA devo
configurare in questo caso.
Insomma, alla fine della fiera, ho fatto quanto segue:
1) Creato un file smtp_auth in /etc/postfix, con dentro:
 
mail.server.de
      username:password
2) postmap smtp_auth per trasformarlo nel giusto formato
3) Aggiunto le seguenti righe in 
main.cf
:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
relayhost = 
mail.server.de
4) Riavviato Postfix
5) Cominciato a bestemmiare in tutte le lingue...
Il fetente infatti mi dice quanto segue:
Feb 18 15:46:44 localhost postfix/smtp[7637]: maps_find: smtp_sasl_passwd:
hash:/etc/postfix/smtp_auth(0,100): 
mail.server.de
 = username:password
Feb 18 15:46:44 localhost postfix/smtp[7637]: smtp_sasl_passwd_lookup:
host `
mail.server.de
' user `username' pass `password'
Feb 18 15:46:44 localhost postfix/smtp[7637]: starting new SASL client
Feb 18 15:46:44 localhost postfix/smtp[7637]: fatal: per-session SASL
client initialization
Feb 18 15:46:45 localhost postfix/qmgr[6999]: warning: premature
end-of-input on private/relay socket while reading input attribute name
Feb 18 15:46:45 localhost postfix/qmgr[6999]: warning: private/relay
socket: malformed response
Feb 18 15:46:45 localhost postfix/qmgr[6999]: warning: transport relay
failure -- see a previous warning/fatal/panic logfile record for the
problem description
Feb 18 15:46:45 localhost postfix/master[5031]: warning: process
/opt/postfix/libexec/smtp pid 7637 exit status 1
Feb 18 15:46:45 localhost postfix/master[5031]: warning:
/opt/postfix/libexec/smtp: bad command startup -- throttling
Ovviamente ne' sul sito di Postfix, ne da nessuna altra parte ho trovato
una anche minima informazione...
Qualche anima pia mi sa dare un buon consiglio prima che, colto da un
raptus vendicativo, mi metta a strozzare il cliente per convincerlo a
mettere su un MTA un po' meno del XXXXX?
Grazie
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 un bel pernacchione stereofonico.
E' facile... se cerchi su qualchi wiki trovi tutto.
detto questo, devi aggiundere la seguente riga in 
main.cf
:
smtp_sasl_password_maps=hash:/etc/postfix/saslpass
il contenuto di saslpass sara':
remotehost user:password
dopo devi generare saslpass.db. Per fare cio' userai 'postalias'
-- 
Massimiliano

 dopo devi generare saslpass.db. Per fare cio' userai 'postalias'
Postalias?!? A me risulta di dover usare postmap...
Comunque, in ogni caso, il fetentone continua a dire di non voler
funzionare...
Lanciando postfix con l'opzione di debug vedo che legge perfettamente lo
username e la password per il Server, ma poi si rifiuta di fare alcunche'!
Tracciando il traffico con ngrep vedo che manda l'EHLO (e il Server con il
quale deve parlare manda ovviamente la risposta), ma poi tutto si ferma
li...
Postfix si rifiuta categoricamente di mandare un solo altro bit e si
pianta mostrando gli errori che ho gia' scritto prima...
Comunque, per il momento, ho trovato un Workaround (viva Exim che c'e' sul
Server!!!), mettendo una lista di host da accettare "dinamica", visto che
Postfix sta' su un IP dinamico...
Funziona, ma la soluzione e' decisamente "sporca"...
Ovvio che, se non c'e' modo di far capire a quel "§$%§ di Postfix che deve
fare cio' che gli dico, terro' quella...
Certo che pero', visti tutti i casini che mi pianta ultimamente, mi sta
venendo veramente voglia di scrivere una bella E-Mail a Wietse Wenema per
informarlo che il suo programma fa un po' cagare...
Ciao


 socket: malformed response
Qui dice che ha problemi di interazione con sasl. Usi postfix in una
chroot? Dove di trova la socket di sasl?
-- 
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4

 E non funziona... Sigh!
ops. Non avevo letto bene tutto il tuo messaggio.
cmq, con quello che tu dici di aver fatto, a me funziona alla
perfezione... altrimenti non potresti leggere il messaggio che sto
inviando al newsgroup ;).
forse (come ti hanno suggerito) dovresti guardare alla integrazione con
sasl.
ciao
Massimiliano

 chroot? Dove di trova la socket di sasl?
Che mi risulta, Postfix NON gira come root, visto che in 
master.cf
 la
colonna del chroot ha tutti "n"...
Il Socket di SASL, se non sono diventato completamente scemo e' in
/var/run/saslauthd/
Li ci sono 3 files: mux, mux.accept e saslauthd.pid
Il primo e' un socket.
ciao


 sasl.
Ecco! Questo si che e' un buon consiglio!
Peccato che da nessuna parte ho trovato una sola riga sull'argomento.
O, meglio, sul cosa fare per mettere a posto quest'integrazione, visto che
dappertutto c'e' solo scritto "fai cosi' che tutto funziona".
Io "cosi'" ho fatto, ma non funziona manco per niente...


 Io "cosi'" ho fatto, ma non funziona manco per niente...
a occhio:
nel mio caso con gentoo utilizzo il flag per aggiungere il support di
sasl, ma nel caso della tua distribuzione (che non conosco) dovresti
controllare se il binario che hai installato supporta l'integrazione con
postfix.
se questo fosse il problema non si tratterebbe piu' di un problema di
postfix, ma di un problema di installazione del pacchetotto.
Massimiliano

 postfix, ma di un problema di installazione del pacchetotto.
c'e' da dire che nel mio caso (ho 2 macchine, su una va su una no), nel
caso in cui non ho inserito il supporto per sasl in postfix succede
quanto segue:
warning: smtp_sasl_auth_enable is true, but SASL support is not compiled in
che e' un po' diverso da quello che succede a te.
Massimiliano


dopo meno di 5 minuti (puoi controllare la differenza di tempo tra i 2
messaggi sul NG) ho ricompilato con il support sasl, e' tutto a posto
anche sul secondo PC.
Massimiliano

 anche sul secondo PC.
Anch'io avevo quell'errore, all'inizio, proprio perche' Postfix non era
compilato con il supporto SASL.
Ricompilato e riavviato e ottengo gli errori che ho mandato in lista.
La distribuzione e' una Fedora Core 2, SASL e' stato installato tramite
RPM, Postfix compilato.


 
mmhhh .... fedora sucks, o postfix sucks? :)
A proposito, nell'altro messaggio ho visto che parlavi di "socket sasl".
Nel mio caso il demone saslauthd non e' avviato.
Forse bisogna avviarlo per usare, ad esempio, postfix come server che
richiede autenticazione.
-- 
Massimiliano

 Il primo e' un socket.
Esatto. Quando postfix gira in una chroot (che è il default) la socket
di saslauthd non è raggiungibile in quanto esterna alla chroot.
Per ovviare bisogna che /var/run/saslauthd/ sia un link simbolico alla
directory nella chroot (in debian /var/spool/postfix/var/run/saslauthd)
che deve essere vista da postfix.


 che deve essere vista da postfix.
OK! Quindi non gira come chroot.
Che fo'?
Ciao


 Che fo'?
Dove sono le librerie di sasl? /usr/lib/sasl2 ?

 di saslauthd non è raggiungibile in quanto esterna alla chroot.
per eseguire l'autenticazione su un altro server non serve un socket
attivo! A me funziona con saslauthd non avviato.
comunque e' sempre giusto quello che dici:
puo' darsi che in un ambiente chroot postfix non riesce a lanciare il
comando necessario per eseguire l'autenticazione.
-- 
Massimiliano

 Che fo'?
se fai EHLO al server che ottieni?
e cosa hai in smtpd.conf?

 e cosa hai in smtpd.conf?
Dove lo trovo questo file?


 Dove sono le librerie di sasl? /usr/lib/sasl2 ?
Esattamente!
In quella directory vedo:
-rwxr-xr-x   1 root root    838  8. Okt 2004  
libanonymous.la
lrwxrwxrwx   1 root root     22 13. Dez 2004  libanonymous.so ->
libanonymous.so.2.0.18
lrwxrwxrwx   1 root root     22 13. Dez 2004  libanonymous.so.2 ->
libanonymous.so.2.0.18
-rwxr-xr-x   1 root root  12592  8. Okt 2004  libanonymous.so.2.0.18
-rwxr-xr-x   1 root root    826  8. Okt 2004  
libcrammd5.la
lrwxrwxrwx   1 root root     20 13. Dez 2004  libcrammd5.so ->
libcrammd5.so.2.0.18
lrwxrwxrwx   1 root root     20 13. Dez 2004  libcrammd5.so.2 ->
libcrammd5.so.2.0.18
-rwxr-xr-x   1 root root  15116  8. Okt 2004  libcrammd5.so.2.0.18
-rwxr-xr-x   1 root root    847  8. Okt 2004  
libdigestmd5.la
lrwxrwxrwx   1 root root     22 13. Dez 2004  libdigestmd5.so ->
libdigestmd5.so.2.0.18
lrwxrwxrwx   1 root root     22 13. Dez 2004  libdigestmd5.so.2 ->
libdigestmd5.so.2.0.18
-rwxr-xr-x   1 root root  41328  8. Okt 2004  libdigestmd5.so.2.0.18
-rwxr-xr-x   1 root root    814  8. Okt 2004  
liblogin.la
lrwxrwxrwx   1 root root     18 13. Dez 2004  liblogin.so ->
liblogin.so.2.0.18
lrwxrwxrwx   1 root root     18 13. Dez 2004  liblogin.so.2 ->
liblogin.so.2.0.18
-rwxr-xr-x   1 root root  13036  8. Okt 2004  liblogin.so.2.0.18
-rwxr-xr-x   1 root root    814  8. Okt 2004  
libplain.la
lrwxrwxrwx   1 root root     18 13. Dez 2004  libplain.so ->
libplain.so.2.0.18
lrwxrwxrwx   1 root root     18 13. Dez 2004  libplain.so.2 ->
libplain.so.2.0.18
-rwxr-xr-x   1 root root  13036  8. Okt 2004  libplain.so.2.0.18
-rwxr-xr-x   1 root root    894  8. Okt 2004  
libsasldb.la
lrwxrwxrwx   1 root root     19 13. Dez 2004  libsasldb.so ->
libsasldb.so.2.0.18
lrwxrwxrwx   1 root root     19 13. Dez 2004  libsasldb.so.2 ->
libsasldb.so.2.0.18
-rwxr-xr-x   1 root root 798308  8. Okt 2004  libsasldb.so.2.0.18
-rw-r--r--   1 root root     25 15. Apr 2004  Sendmail.conf
Ciao
Luca Bertoncello
(
luca...@lucabert.de
!


 comando necessario per eseguire l'autenticazione.
Il fatto e' che Postfix NON gira in chroot...
Mi manca qualcosa?
Ciao


 Che fo'?
se fai EHLO al server che ottieni?


 Mi manca qualcosa?
mmhh .....
scusa ci daresti il nome del server verso il quale ti connetti (nel caso
in cui si tratta di server pubblico).
Se tutto va bene dovremmo ottenere un errore di password sbagliata, che
e' diverso dal quel casino che viene fuori a te.
MA... invece... potrebbe verificarsi il caso che anche a noi viene fuori
lo stesso messaggio di errore....
-- 
Massimiliano

 Dove lo trovo questo file?
Giorgio Tobia e' probabilmente un buontempone.
quel file non c'entra niente con postfix e qui da me non esiste :P
-- 
Massimiliano


ok... non e' un problema sul lato server.
-- 
Massimiliano

 ok... non e' un problema sul lato server.
Considerato che il Server funziona da tempo in maniera impeccabile in
situazioni ben piu' rognose, mi sarei stupito veramente se tu mi avessi
detto che era un problema lato Server... :)
In tal caso, il problema e' circoscritto sul client.
Che faccio? Mi metto a bestemmiare fino a far cadere tutti i crocifissi di
Dresden o ci sono altre soluzioni meno "violente"? =:)


 (
luca...@lucabert.de
)
solitamente lo trovi nella stessa directory delle sasl con cui hai
compilato postfix, /usr/lib/[sasl|sasl2]
a proposito, postfix l'hai compilato con sasl o sasl2?
potrebbe essere quello il tuo problema

 Dresden o ci sono altre soluzioni meno "violente"? =:)
mmhh, magari succede com per l'alluvione e cadono pure qui a praga :)
-- 
Massimiliano

 quel file non c'entra niente con postfix e qui da me non esiste :P
certo che io sono un buontempone!

 potrebbe essere quello il tuo problema
SASL2!


 mmhh, magari succede com per l'alluvione e cadono pure qui a praga :)
:)))
Adesso si spiegano un po' di cose, per esempio come mai vedevo degli
indirizzi cechi nel Test che mi hai fatto...
ciao


 Dite che puo' essere per quello?
a questo punto perché non lo installi da rpm?
http://rpmfind.net/linux/RPM/fedora/2/i386/postfix-2.0.18-4.i386.html
questo é compilato con sasl2
ti rispondo qui per smtpd.conf
[root@centos ~]# ls -al /usr/lib/sasl2/smtpd.conf
-rw-r--r--  1 root root 27 19 feb 21:54 /usr/lib/sasl2/smtpd.conf
[root@centos ~]# cat /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd

 E cosa ci deve essere li dentro?
Parametri per il server, non per il client.

 Dite che puo' essere per quello?
Potrebbe essere che in effetti non sia stato compilato in modo corretto
per funzionare in questa configurazione.
Il suggerimento di installare da RPM è il più sensato che ti sia stato dato.



no, ok ... ritiro quanto detto: il file da qualche parte c'e' e
appartiene a postfix.
sorry per la cazzata, ma serve per configurare l'autenticazione sul
proprio server.
-- 
Massimiliano

 indirizzi cechi nel Test che mi hai fatto...
Super Off Topic:
tu c'eri quando c'e' stata l'alluvione? Io per fortuna no :)
ca$$o, la cosa piu' tragica che e' rimasta impressa per sempre nella
mente dei praghesi e' stata la morte dell'elefante dello zoo.
Pooraccio, in seguito all'alluvione era uscito dalle gabbie ma e'
rimasto coperto dall'acqua e non sono riusciti a tirarlo fuori in alcun
modo.
-- 
Massimiliano

 modo.
Ricordo...
Ciao


 mmhh.. beh si, provare con l'RPM sarebbe una buona idea.
Boh, alla fine ho fatto che installare un Postfix di prova con l'RPM.
E tutto funziona al primo colpo...
Ora, visto che pare che siano stati compilati uguali, solo con altri path,
la domanda che mi sorge spontanea e': PERCHE'?!?
Ciao


 insomma il classico SmartHost.
Ovviamente, giusto per concludere (e senza scatenare guerre di religione),
facendo un riassunto del thread, il fetente non è postfix che è una roccia
ed anche una cazzata da configurare, ma il sysadmin che lo ha installato.
Max

 la domanda che mi sorge spontanea e': PERCHE'?!?
Ipotesi a caso: librerie di sasl in /usr/lib/sasl2 e le andava a cercare 
in /usr/local/lib/sasl2?

 in /usr/local/lib/sasl2?
[root@frodo root]# ldd `/opt/postfix/postconf -h daemon_directory`/smtpd
        libldap.so.2 => /usr/lib/libldap.so.2 (0x00164000)
        liblber.so.2 => /usr/lib/liblber.so.2 (0x00588000)
        libpcre.so.0 => /lib/libpcre.so.0 (0x005af000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00571000)
        libssl.so.4 => /lib/libssl.so.4 (0x0012e000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x0231b000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00c12000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00a53000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00df1000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00bee000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x007a3000)
        libdl.so.2 => /lib/libdl.so.2 (0x00596000)
        libz.so.1 => /usr/lib/libz.so.1 (0x003a2000)
 
libdb-4.2.so
 => /lib/tls/
libdb-4.2.so
 (0x00195000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x058f5000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00453000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00408000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0043a000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00689000)
Direi di no...


 ed anche una cazzata da configurare, ma il sysadmin che lo ha installato.
Guarda, puoi anche pensarla cosi', se vuoi, ma a me sembra che, se un
programma messo in una certa directory funziona e messo in un'altra no,
c'e' qualcosa di seriamente sbagliato in quel programma...
Visto e considerato che e' proprio questa la differenza tra i due postfix
(quello che va e quello che non va), sinceramente mi viene un po' da
pensare...
Quanto all'essere "roccia", me lo deve ancora dimostrare, a meno che con
"roccia" tu non intenda "un qualcosa che non riesci a fargli entrare in
testa cio' che vuoi manco con il martello pneumatico"... :)
La configurazione e' identica in tutti e due i casi, e visto che la
configurazione la fa il SysAdmin (io in questo caso!) non mi sembra un
problema del SysAdmin, ma del programma che fa veramente cagare.
E, giusto per dirla tutta, sebbene la configurazione di Postfix sia
DECISAMENTE piu' comprensibile di quella di Sendmail, a me sembra sempre
il classico esempio di dati messi li alla bell'emeglio ma senza un senso
logico.
Exim, da quel punto di vista, mi sembra nettamente piu' comprensibile,
almeno per vedere l'esatto percorso che fara' l'E-Mail...
Poi pensala come vuoi, io intanto continuo a guadagnarmi da vivere
gestendo un Cluster di 36 Server tutti con Exim e senza il benche' minimo
problema (e con un traffico medio giornaliero di circa 25GB solo di
E-Mail...).
Penso proprio che spingero' per mettere Exim anche sul PC incriminato,
visto che ho come il sentore che in futuro mi dara' altri problemi...


 pensare...
Sei sicuro che sia solo quella la differenza? In questo caso ti basterebbe
cambiare il percorso del tuo postfix ricompilato per risolvere il problema.
Più probabilmente c'è dell'altro.

 quel file non c'entra niente con postfix
/etc/postfix/sasl/smtpd.conf
-- 
Chaos A.D.		|	Raging crowd
Tanks on the streets	|	Burning cars
Confronting police	|	Bloodshed starts
Bleeding the Plebs	|	Who'll be alive?

 E-Mail...).
Non lo metto in dubbio.
In compenso c'è gente che gestisce realtà almeno altrettanto grosse
usando postfix come MTA.
Outblaze, per dirne uno che conosco, ha 40 milioni di mailbox.
Il che dimostra solo che, come ovvio, tutti gli strumenti hanno bisogno
di essere conosciuti da chi li amministra.
Il che vale per Exim come per postfix.
Io Exim non lo conosco, e ogni volta che ci devo mettere le mani sopra
bestemmio.
Mi pare che tu e postfix abbiate solo lo stesso rapporto...

 visto che ho come il sentore che in futuro mi dara' altri problemi...
Tu sei libero di fare quello che vuoi.
Quello che invece a me sta sulle balle è che spari sentenze su cose OTTIME
senza saperle usare.
Una cosa è il gusto personale, se vuoi legato all'esperienza che si ha in
merito a quel prodotto.
Una cosa è sparare a zero su qualcosa che non si riesce a fare funzionare,
vuoi per mancanza di esperienza o mancanza di pazienza.
Io non parlerò mai male di Exim, allo stato attuale, perchè non lo conosco.
Tu ti permetti di sparare cagate su postfix quando, banalmente, non lo sai
usare oppure usi versione compilate da altri alla pene di segugio.
Tutto questo non mi pare "politically correct" in un NG dove spesso il
parere dei professionisti è considerato autorevoleed attendibile, e nei
tuoi post inerenti postfix di attendibile c'è poco.
Max

 Direi di no...
smtp, non smtpd.

 bestemmio.
Idem.
Mai trovato nessun MTA incasinato come Exim, sendmail a parte :-)


 (
luca...@lucabert.de
)
-- 
-----------------------------------
There are 10 types of people in the world: those who understand binary and
those who don't...




 configurare in questo caso.
Guarda qua per il cyrrus-SASL...
http://www.gentoo.org/doc/en/virt-mail-howto.xml
 
è un how to per gentoo x il virtual domain ma la sezione 6 dovrebbe fare
