Poiche' appunto erano poche le mie conoscenze e dovevo tirar su questa
macchina in fretta, ho cercato la soluzione piu' semplice alla gestione
della stessa.
La macchina funziona egragiamente da diversi mesi (6) utilizzando come
schema di auteticazione il basic (ncsa_auth) e servendo 20 computer di
un dominio Win2k.
Naturalmente il passo che mi sono imposto ora e' quello di sfruttare il
Domain Controller Win2k e far fare a lui l'autenticazione degli utenti
in modo da non dover creare ogni volta un utente sul server Proxy per
far navigare il nuovo arrivato.
Mi sono scartabellato allora lo "Squid-Book oltre le FAQ", e ho provato
a tirare in piedi lo schema ntlm_auth ma senza successo.
Su questa bibbia e' scritto che ntlm_auth puo' essere usato senza dover
usare Samba (la macchina mi deve fare da Proxy server e nient'altro e
vorrei tenere meno servizi possibile sulla stessa).
Nonostante abbia seguito alle lettera, non c'e' verso di farlo funzionare.
Nel file cache.log di squid non viene rilevato alcune errore e squid
stesso parte regolarmente. Ho dato un occhiata allo access.log che
riporta un access denied su qualsiasi indirizzo (non riporta il nome
utente che fa la richiesta di accesso, questo mi ha fatto pensare ad una
mancata negoziazione con il server PDC ma non so come testare questa
cosa. Da notare che nel file host ho messo l'indirizzo ip del PDC e ho
assegnato un name alla macchina... Un ping verso la stessa da esiti
positivi.
Ora non vi chiedo di risolvere il mio problema, o almeno non
direttamente, mi accontenterei di una guida o una documentazione da
seguire per configurare sto coso :D.
Riporto qua sotto l'estrapolazione dello squid.conf che uso:
auth_param ntlm program /usr/lib/squid/ntlm_auth laboratorio/SRVLAB
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate off
dove laboratorio e' il nome del dominio e SRVLAB e' il name specificato
in hosts.
Grazie per ogni suggerimento!
Riccardo.
AFAIK ntlm_auth richiede che winbind sia installato e configurato.
Per non iscrivere la macchina Linux al dominio Windows puoi usare
ldap_auth, ma non hai comunque l'aut. trasparente.
> Ora non vi chiedo di risolvere il mio problema, o almeno non
> direttamente, mi accontenterei di una guida o una documentazione da
> seguire per configurare sto coso :D.
Non ho sottomano i link che avevo seguito, ma se cerchi con google
ntlm_auth+winbindd+squid+howto dovresti trovarlo.
> Grazie per ogni suggerimento!
Io la configurazione dell'ntlm_auth la faccio sempre così e funziona:
in squid.conf
auth_param ntlm program /usr/bin/ntlm_auth
--helper-protocol=squid-2.5-ntlmssp --domain=DOMINIO
--require-membership-of=DOMINIO+Internet --diagnostic -d 5
auth_param ntlm children 10
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate on
auth_param basic program /usr/bin/ntlm_auth
--helper-protocol=squid-2.5-basic --domain=DOMINIO
--require-membership-of=DOMINIO+Internet --diagnostic -d 5
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
In smb.conf
[global]
workgroup = DOMINIO
security = DOMAIN
obey pam restrictions = Yes
passdb backend = tdbsam, guest
passwd program = /usr/bin/passwd %u
client NTLMv2 auth = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = +
winbind cache time = 10
winbind use default domain = Yes
winbind nested groups = Yes
invalid users = root
E poi iscrizione al dominio con "net {rpc|ads} join".
Flavio
Ok quindi in sostanza se voglio l'autenticazione trasparente devo
installare samba sulla macchina e farla joinare al dominio giusto?
Che io sappia sì. Non ci metterei la mano sul fuoco, ma è l'unico metodo
che fino ad oggi sono riuscito a fare andare.
Flavio
Ok mi armo di pazienza e vedo di installare samba con i relativi
supporti necessari ;)
Flavio un ultima cosa... samba devo copilarlo con qualche opzione
particolare?
Da quel che ho letto, a me dovrebbe servire samba e kerberos (v5, build
superiore alla 1.3.x) ma non mi e' chiaro se devo predisporre anche winbdd.
gli step che pensavo di fare sono:
emerge samba (mi ritrovo samba samba-3.0.10)
merge mit-krbr (mi ritrovo kerberos5 1.3.6-r2)
ed infine configurare samba per usare il kerberos installato...
right?
> E poi iscrizione al dominio con "net {rpc|ads} join".
E se la stessa macchina su cui gira Squid fa anche da Primary Domain
Controller per il dominio in questione, come si procede?
Grazie, ciao!
Decibel.
Non so su Gentoo cosa ti serva esattamente. Su Debian mi bastano
winbind, samba-common e libkrb53.
Flavio
Teoricamente dovrebbe andare direttamente.
THe_ZiPMaN wrote:
> Bruceno Mejo wrote:
>
>>Su questa bibbia e' scritto che ntlm_auth puo' essere usato senza dover
>>usare Samba (la macchina mi deve fare da Proxy server e nient'altro e
>>vorrei tenere meno servizi possibile sulla stessa).
>
Esagerato, alla bibbia non ci siamo ancora arrivati, al massimo direi
che siamo arrivati al livello di Vangelo apocrifo ... :-)
C'e' ancora un sacco di possibili aggiornamenti che dobbiamo fare.
>
> AFAIK ntlm_auth richiede che winbind sia installato e configurato.
> Per non iscrivere la macchina Linux al dominio Windows puoi usare
> ldap_auth, ma non hai comunque l'aut. trasparente.
>
Non esattamente, ci sono 3 possibili soluzioni:
- Usare ntlm_auth fornito con Squid, e' un autenticatore autonomo, ed e'
quello a cui si riferisce Riccardo
- Usare wb_auth fornito con Squid, che pero' funziona SOLO con Samba 2.2.x
- Usare ntlm_auth fornito con Samba 3, che ovviamente richiede Samba 3
... :-)
Guido
> Non esattamente, ci sono 3 possibili soluzioni:
>
> - Usare ntlm_auth fornito con Squid, e' un autenticatore autonomo, ed e'
> quello a cui si riferisce Riccardo
Ehm pero' con quello sembra che non ne vuole sapere di andare...
In sostanza anche se configuro tutto come descritto, direi che non
chiede un fico secco di autenticazione al dominio Win2k ;)
Cmq resta che vorrie fare un autenticazione trasparente (niente piu'
pannellino col rischio che l'utonto sbagli la password o la proprio
login) pertante e' possibile implementare questa cosa con il ntlm_auth
di Squid? O devo passare per quello di Samba?
Un dubbio dell'ultima riga... l'autenticazione avviene per ogni
applicativo che tenta di passare dal proxy giusto? Nel senso se ho un
browser diverso da Internet Explorer, questo passa usando la stessa
tecnica di autenticazione?
Riccardo.
Solo se supporta lo schema di autenticazione NTLM. Pressoché tutti i
prodotti M$ sono OK, mentre il 90% degli altri non è predisposto.
Firefox, per il momento, è tra questi ultimi.
Flavio
Allora forse ho capito perche' i miei tests non andavano... :D
Vabbe' stasera a laboratorio chiuso riapplico la configurazione che
avevo provato nei giorni scorso e vedo di usare explorer...
Se riuscissi a fare a meno di samba sarebbe per me piu' semplice, e non
lo dico perche' non voglio imparare ma perche' adoro la filosofia: usa
solo quello che ti serve nello stretto necessario. Se squid ha gia' un
helper che fa al caso mio perche' dovrei coinvolgere anche samba? ;)
--
./ Riccardo
./ The pure and simple truth is rarely pure and never simple (O. Wilde)
Guido dammi na mano va che qua sto litigando con sto coso e non ne vengo
a unao... io voglio usare l'helper di Squid e non voglio Samba a
complicarmi la vita...
Attualmente se configuro secondo le lo Squid Book non riesco ad ottenere
nulla :(
THe_ZiPMaN wrote:
Mi sa che le tue fonti sono poco aggiornate:
Mozilla e Firefox supportano NTLM in modo nativo da un pezzo, se ricordo
bene a partire da Mozilla 1.5.
La versione beta 2 di Firefox 1.5 supporta anche Kerberos (!!!)
Opera per il momento non sembra invece supportare NTLM.
Non so nulla di Safari e Konqueror.
Bye
Guido
Riccardo aka Bruceno Mejo wrote:
>
> Guido dammi na mano va che qua sto litigando con sto coso e non ne vengo
> a unao... io voglio usare l'helper di Squid e non voglio Samba a
> complicarmi la vita...
>
> Attualmente se configuro secondo le lo Squid Book non riesco ad ottenere
> nulla :(
>
Provare a configurare l'opzione di debug dell'helper, cosi' vediamo se
"dice" qualcosa:
auth_param ntlm program /usr/lib/squid/ntlm_auth -d laboratorio/SRVLAB
Trovi l'ouput in cache.log.
Bye
Guido
Ops. Hai proprio ragione :-)
Non usando mai Windows sono rimasto parecchio indietro con le
caratteristiche windows oriented. :-)
> Mozilla e Firefox supportano NTLM in modo nativo da un pezzo, se ricordo
> bene a partire da Mozilla 1.5.
Sě, dalla 1.6.
Flavio
> Naturalmente il passo che mi sono imposto ora e' quello di sfruttare il
> Domain Controller Win2k e far fare a lui l'autenticazione degli utenti
> in modo da non dover creare ogni volta un utente sul server Proxy per
> far navigare il nuovo arrivato.
Io l'ho configurato su una Debian (prima Woody, poi aggiornata a Sarge);
sinceramente ora non ti so dire esattamente la procedura, è tardino :)
ed inoltre avevo seguito varie guide. Comunque ti posso dire che al
riguardo in squid.conf ho solo queste righe:
> auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
> acl autenticati proxy_auth REQUIRED
> http_access allow da_retelocale autenticati
Sulla stessa macchina sono installati i pacchetti di Samba 3.0.14a-1
(samba-common, samba-doc, smbclient, smbfs e winbind), ma forse l'unico
importante è winbind, che installa appunto il file /usr/bin/ntlm_auth
che uso.
Il dominio è gestito da un'altra macchina Linux con Samba 3.0.14a-1, nel
cui database è stato inserito un account per la macchina proxy, in modo
che winbind possa accedervi per ricavare i dati degli utenti.
In crontab ho inserito la seguente riga per rinnovare ogni giorno il
trust con il PDC:
00 07 * * * root net rpc changetrustpw
...il che mi fa pensare che sia necessario almeno il pacchetto
samba-common, che contiene il comando net.
Non so cosa cambi con il ntlm_auth di squid, né se si può usare, ma
almeno nel mio caso la scelta era obbligata, visto che nei commenti di
squid.conf si legge:
"Note: If you're using Samba >= 3.0.2, please install the winbind
package and use the ntlm_auth helper from that package."
--
Ciao,
Marco.
Avevo gia' provato ad abilitarla e infatti stavo cercando documentazione
in merito agli errori che mi riportava. Cmq eccola qua:
ntlm-auth[9305](ntlm_auth.c:284): managing request
ntlm-auth[9305](ntlm_auth.c:290): ntlm authenticator. Got 'YR' from Squid
ntlm-auth[9305](ntlm_auth.c:239): obtain_challenge: selecting
JURISLAB\SRVJURIS (attempt #1)
ntlm-auth[9305](ntlm_auth.c:251): attempting challenge retrieval
ntlm-auth[9305](libntlmssp.c:119): Connecting to server SRVJURIS domain
JURISLAB
ntlm-auth[9305](libntlmssp.c:126): Couldn't connect to SMB Server.
Error:The attempt to call the remote server failed. See protocol error info.
RFCNBE_CallRejCNNP: Call rejected. Called name not present.
ntlm-auth[9305](ntlm_auth.c:253): make_challenge retuned (nil)
ntlm-auth[9305](ntlm_auth.c:259): Marking DC as DEAD
ntlm-auth[9305](ntlm_auth.c:262): moving on to next controller
ntlm-auth[9223](ntlm_auth.c:239): obtain_challenge: selecting
JURISLAB.COM\SRVJURIS (attempt #1)
ntlm-auth[9223](ntlm_auth.c:243): Reviving DC
ntlm-auth[9223](ntlm_auth.c:251): attempting challenge retrieval
ntlm-auth[9223](libntlmssp.c:119): Connecting to server SRVJURIS domain
JURISLAB.COM
ntlm-auth[9223](libntlmssp.c:126): Couldn't connect to SMB Server.
Error:The attempt to call the remote server failed. See protocol error info.
RFCNBE_CallRejCNNP: Call rejected. Called name not present.
ntlm-auth[9223](ntlm_auth.c:253): make_challenge retuned (nil)
ntlm-auth[9223](ntlm_auth.c:259): Marking DC as DEAD
ntlm-auth[9223](ntlm_auth.c:262): moving on to next controller
Tenendo presente che:
SRVJURIS e' un entri in /etc/hosts a cui e' associato l'indirizzo ip del
server di dominio perfettamente raggiungibile dal proxy attraverso un
semplice "ping SRVJURIS".
JURISLAB e' il nome del dominio in formato pre-Windows 2000
jurislab.com e' il nome del dominio in formato Windows 2000
Da quel che posso capire e non ci vuole un genio, ntlm_auth non trova un
dominio a cui chiedere le credenziali...
Sto usando l'helper ntlm_auth fornito con Squid 2.5.STABLE9.
Non e' che per caso devo installare qualcosa anche PDC Win2k per farli
comunicare?
Vorrei pero' almeno una volta farlo funzionare, poi giuro che passo a
Samba :)
Riccardo aka Bruceno Mejo wrote:
>
> Avevo gia' provato ad abilitarla e infatti stavo cercando documentazione
> in merito agli errori che mi riportava. Cmq eccola qua:
> ntlm-auth[9305](libntlmssp.c:119): Connecting to server SRVJURIS domain
> JURISLAB
> ntlm-auth[9305](libntlmssp.c:126): Couldn't connect to SMB Server.
> Error:The attempt to call the remote server failed. See protocol error
> info.
> RFCNBE_CallRejCNNP: Call rejected. Called name not present.
....
> Tenendo presente che:
>
> SRVJURIS e' un entri in /etc/hosts a cui e' associato l'indirizzo ip del
> server di dominio perfettamente raggiungibile dal proxy attraverso un
> semplice "ping SRVJURIS".
>
> JURISLAB e' il nome del dominio in formato pre-Windows 2000
> jurislab.com e' il nome del dominio in formato Windows 2000
>
> Da quel che posso capire e non ci vuole un genio, ntlm_auth non trova un
> dominio a cui chiedere le credenziali...
>
Dice che non si capiscono, diffida sembre degli errori legati al mondo
Microsoft ....
Ovviamente il nome del domain controller e' SRVJURIS, vero ?
Domanda: in fase di installazione dell'Active Directory (dcpromo) e'
stata selezionata la compatibilità con i sistemi pre Windows 2000 ?
Per verificare se un Dominio Active Directory sia stato stato installato
in modalità compatibile pre Windows 2000 é sufficiente eseguire Active
Directory Users and Computers e controllare se nel gruppo "Pre-Windows
2000 Compatible Access" situato nel container built-in sia presente
l'utente Everyone. Se non fosse presente, guarda l'articolo Q303973
(http://support.microsoft.com/) della Knowledge Base Microsoft.
Bye
Guido
SRVJURIS "é l'indirizzo IP del server di Dominio..."
> Domanda: in fase di installazione dell'Active Directory (dcpromo) e'
> stata selezionata la compatibilità con i sistemi pre Windows 2000 ?
> Per verificare se un Dominio Active Directory sia stato stato installato
> in modalità compatibile pre Windows 2000 é sufficiente eseguire Active
> Directory Users and Computers e controllare se nel gruppo "Pre-Windows
> 2000 Compatible Access" situato nel container built-in sia presente
> l'utente Everyone. Se non fosse presente, guarda l'articolo Q303973
> (http://support.microsoft.com/) della Knowledge Base Microsoft.
>
> Bye
>
> Guido
No tale account non c'era, ora ho aggiunto tale account... a laboratorio
chiuso farò un ulteriore prova...
Thorin Oakenshield wrote:
>
> Ehm, io mi autentico *anche* con Opera su un ISA (che è il peggio del
> peggio nell'ambito del discorso che state facendo, l'autenticazione
> NTLM)
>
Il fatto che tu sia stato autenticato da un ISA server non implica
l'utilizzo di NTLM: ISA Server, come anche Squid, puo' autenticare
contemporaneamente con piu' schemi di autenticazione, sta al browser
decidere quale usare.
Nel dettaglio: il proxy risponde alla richiesta con una pagina di codice
HTTP 407 (Proxy Authentication Required) ed elenca negli header HTTP gli
schemi di autenticazione supportati, al momento:
Basic
NTLM
Digest
Il browser sceglie lo schema con il livello di sicurezza maggiore tra
quelli disponibili (l'ordine e' appunto quello in cui li ho riportati).
Quindi, nel caso di Opera ed ISA Server, l'autenticazione dovrebbe
essere avvenuta in modalita' Basic.
Saluti
Guido
Riccardo aka Bruceno Mejo wrote:
> SRVJURIS "é l'indirizzo IP del server di Dominio..."
>
E' il nome reale od e' un nome fittizio ? I Domain Controller Windows
2000 sono molto suscettibili su questa cosa, devi indicarlo con il nome
NETBIOS reale.
>
> No tale account non c'era, ora ho aggiunto tale account... a laboratorio
> chiuso farň un ulteriore prova...
>
Questo spiega probabilmente i tuoi problemi.
Rispondo qui al tuo altro post: e' sufficiente inserire Everyone.
Saluti
Guido
Thorin Oakenshield wrote:
>>Il fatto che tu sia stato autenticato da un ISA server non implica
>
> [..]
> Uhm può essere che sia come dici tu, alla fine non è che sia stato molto
> a perderci del tempo per capire cosa facesse quel canchero di ISA. C'è
> un modo, che tu sappia?
>
A parte ovviamente andarne a vedere direttamente la configurazione da
console, puoi ad esempio usare l'utility squidclient di squid.
Quello che vedi e' il risultato lanciandolo verso uno Squid che ascolta
sulla porta 3128 ed ha NTLM e basic authentication attive. Nota le righe
"Proxy-Authenticate".
C:\squid\bin>squidclient -h proxyserver -p 3128 http://www.cisco.com
HTTP/1.0 407 Proxy Authentication Required
Server: squid/2.5.STABLE10-NT
Mime-Version: 1.0
Date: Thu, 13 Oct 2005 21:32:51 GMT
Content-Type: text/html
Content-Length: 1372
Expires: Thu, 13 Oct 2005 21:32:51 GMT
X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
Proxy-Authenticate: NTLM
Proxy-Authenticate: Basic realm="Squid proxy-caching web server"
X-Cache: MISS from xxx.xxx.it
Proxy-Connection: close
Saluti
Guido
non e' il nome netbios... e' il nome che gli ho dato io nel file
/etc/hosts della macchina linux...
Il che spiega un altro problema... ho interpretato male lo Squid-Book ;)
Sto continuando a fare tests, ma a quanto pare non ne vuole sapere di
autenticare...
questo quello che continuo ad ottenere :(
ntlm-auth[23861](libntlmssp.c:119): Connecting to server SRVJURIS domain
JURISLAB
ntlm-auth[23861](libntlmssp.c:126): Couldn't connect to SMB Server.
Error:The attempt to call the remote server failed. See protocol error info.
RFCNBE_CallRejCNNP: Call rejected. Called name not present.
ntlm-auth[23861](ntlm_auth.c:253): make_challenge retuned (nil)
ntlm-auth[23861](ntlm_auth.c:259): Marking DC as DEAD
ntlm-auth[23861](ntlm_auth.c:262): moving on to next controller
Ok ci sono riuscito era tutta colpa di come inserivo nome netbios e nome
del dominio.
1. Fare riferimento a questa guida:
http://merlino.merlinobbs.net/Squid-Book/HTML/sec-squid-25-autenticazione-ntlm.html#SUBSEC-NTLM-AUTH
Precisazione che mi ha risolto il problema grazie anche all'aiuto del ng.
Nei sistemi Win2k/Win2k3, DOMINIO deve essere il "nome di Dominio
Pre-Windows 2000", e SERVER il nome NetBios della macchina su cui gira
Active Directory da aggiungere eventualmente in /etc/hosts se non
raggiungibile.
> Teoricamente dovrebbe andare direttamente.
Cosa intendi per "andare direttamente"?
Dovrebbe andare senza dichiarare cosa?
Ciao!
Decibel.