[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