[Samba-it] Samba + LDAP + pdbedit

Simo Sorce simo.sorce at xsec.it
Mon Jan 10 16:33:01 MST 2005


On Mon, 2005-01-10 at 16:12 +0100, nostradamus at libero.it wrote:
> Avendo sul mio PC la versione da rpm di samba, ho scaricato i sorgenti 
> (3.0.10), ho compilato soltanto crackcheck.c con il Makefile, l'ho copiato 
> in una directory e ho aggiunto a smb.conf la riga:
> check password script /PATH_TO_DIR/crackcheck

check password script = /patch/to/crackchek

ci vuole l'"="

> Ho riavviato samba, ma ovviamente non ha funzionato...(ovviamente la 
> versione dell'rpm e' sempre 3.0.10)! Non ho trovato da nessuna parte esempi 
> di utilizzo, il sorgente non e' commentato e il man non esiste. Lanciando 
> da shell crackcheck, viene mostrato come utilizzarlo, e cioe' con l'opzione 
> -d dictionary, ma devo dire che non mi e' molto d'aiuto. Che cos'e' 
> dictionary? Un semplice file di testo, con un elenco di parole? E con quale 
> formato?

devi installare il pacchetto con i dizionari, su RH si chiama:
cracklib-dicts e contiene i seguenti file:
/usr/lib/cracklib_dict.hwm
/usr/lib/cracklib_dict.pwd
/usr/lib/cracklib_dict.pwi
/usr/sbin/mkdict
/usr/sbin/packer


> Speravo che creandone uno d'esempio con due parole, funzionasse, ma ... nisba!
> 
> Da quello che mi scrivevi l'altra volta, il programma crackcheck dovrebbe 
> utilizzare cracklib, e quindi, in teoria, dovrebbe accettare i parametri: 
> dcredit, ucredit, lcredit, ocredit, difok, minlen, ..., gli unici che mi 
> permettono un controllo serio della password inserita. Un controllo da 
> dizionario e' troppo poco per essere un controllo degno di tal nome! 
> Infatti, basta inserire una password del tipo "asdfgh" (cioe' i caratteri 
> sulla tastiera a partire da sinistra), e questa sarebbe accettata... mentre 
> invece e' una password pessima!

Il programma accetta solo il percorso del dizionario, i parametri come
lunghezza delle password e storico delle password da usare sono quelli
di samba di solito che risolvono il problema a monte.

> Esaminando il codice .c del programma, non sono riuscito a capire come 
> crackcheck prenda la password inviata dal client windows

linea 46:
        password = fgets(f, sizeof(f), stdin);

> e dove venga chiamata la libreria cracklib.so.

linea 53:
        reply = FascistCheck(password, dictionary);

>  Inoltre non capisco perche' la password 
> deve essere inserita da stdin (come si evince dal sorgente), quando invece 
> gli proviene da smb o LDAP...

la password deve essere passata via stdin perchè così ho fatto il
codice. Samba fa un fork+exec di un programma esterno e poi gli passa la
password da controllare via stdin e aspetta una risposta: buona/cattiva
È il metodo che rende più semplice possibile creare script esterni senza
esporre la password in chiaro.

> Come avrai certamente capito, sono ben lontano dal vederci chiaro!

Come avrai capito si tratta comunque di un programma di esempio (non per
niente è nella directory /examples/ ...), liberissimo di crearti un
programma adatto alle tue esigenze, devi solo rispettare due constraint:
1. la password viene passata via stdin
2. devi uscire con 0 se va bene o un qualsiasi altro errore se la
password non va bene.

Saluti,
simo.

-- 
Simo Sorce - simo.sorce at xsec.it
Xsec s.r.l. - http://www.xsec.it
via Garofalo, 39 - 20133 - Milano
mobile: +39 329 328 7702
tel. +39 02 2953 4143 - fax: +39 02 700 442 399




More information about the samba-it mailing list