Newsgroup: it.comp.os.linux.sys
Titolo: [LDAP] xp e dominio samba

Salve a tutti , 
anche se l'argomento è già stato ampiamente trattato , nei vecchi
post non ho trovato ancora alcuna soluzione , perciò scusatemi ma ecco di
nuovo una discussione su samba PDC e ldap .
In pratica con i tools della idealx ho creato i vari gruppi e l'utente
Administrator accertandomi che abbia uid 0 e gid 512 che corrisponde al
gruppo "Domain Admins" .
Ho eseguito tutte le procedure necessarie sul client XP pro (vedi la
disabilitazione in gpedit.msc di alcuni parametri in Membro di Dominio
.... ecc ecc), ma quanto tento di joinare la macchina XP nel dominio
con Administrator e relativa password ebbene non trova l'utente .
se faccio:
smbclient -L macchina_samba -U Administrator
<password> 
non da nessun errore .
Tralatro esiste già un account samba configurato con cui dalla macchina
XP riesco ad accedere senza problemi alla sua $HOME tramite IExploder
facendo: \\macchina_samba\utente_di_prova
<al promt inserisco login e passwd dell'utente_di_prova>
Se poi ad esempio nel tentativo di joinare il dominio uso login e password
dell' utente_di_prova mi ritorna (giustamente) "accesso negato" , quindi
presumo che la ricerca nell'albero LDAP funzioni bene... ,
eppure sembra non trovare Administrator (che in LDAP sono entrambi sotto
"ou=People,dc=miodominio")
i log di samba non mi dicono nulla , e il syslog (per ldap) è qua sotto :
====> cache_find_entry_id( 98 ) "uid=Administrator,ou=People,dc=localdomain" (found) (1 tries)
<= id2entry_r( 98 ) 0x812b920 (cache)
=> string_expand: pattern:  cn=admin,dc=localdomain
=> string_expand: expanded: cn=admin,dc=localdomain
=> regex_matches: string:^I
=> regex_matches: rc: 1 no matches
ldbm_search: candidate entry 98 does not match filter
....
send_search_result: err=0 matched="" text=""
send_ldap_response: msgid=2 tag=101 err=0
connection_get(19): got connid=273
connection_read(19): checking for input on id=273
ber_get_next on fd 19 failed errno=11 (Resource temporarily unavailable)
Quale può essere il problema ?
grazie
Arrigo

 non da nessun errore .
che non centra nulla col join a dominio :-)



identico problema, risolto con un account -u 0 -g 512 che non si chiami ne
Administrator ne Admin... strano ma così funge.
winter
-- 
oggi: 10/10/2004 21.37.01 
sempre di più
antivieri.

 
Che gid dovrei assegnargli ?
In pratica io ho:
Domain Admins gid=512
(utente Administrator che cmq nel joinare il dominio non me lo vede)
Domain Users gid=513
(utente test , da IExploder inserendo login e passwd accede alla $HOME)
Domain Guest gid=514
Domain Computers gid=515
(c'è il nome del client XP con '$' finale che dovrebbe joinare il dominio)
Senz'altro è buona cosa creare un utente apposito che non abbia uid 0
per aggiungere le macchine , ciò non toglie che non è normale che il mio
utente Administrator non riesca a fare quello che dovrebbe .
E non capisco dove sbaglio ...
Toglimi una curiosità , in slapd.conf
la direttiva 
rootdn "cn=admin,dc=miodominio"
rootpw password_di_admin
a che serve esattamente , che non mi è molto chiara ...
non vorrei che il problema fosse qui.
Nel tree ldap ho :
# admin.ldif
dn: cn=admin,dc=localdomain
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: admin
description: LDAP administrator
userPassword: {SSHA}... bla bla..pwd_di_adm
ciao

 winter
Purtroppo ho già provato e la situazione non cambia ...
Arrigo

Incrementandone il log level (2) ho notato una cosa strana nei log di
samba . In pratica ho creato un utente 'arrigo' con uid=0 e gid=512 
Il dominio si chiama LOCALDOMAIN (...che originalità)
Questo è il log di quando provo a joinare il dominio con
'arrigo'
[2004/10/11 13:35:40, 2] smbd/sesssetup.c:setup_new_vc_session(608)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close
  all old resources.
[2004/10/11 13:35:40, 2] smbd/sesssetup.c:setup_new_vc_session(608)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close
  all old resources.
[2004/10/11 13:35:40, 2] passdb/pdb_ldap.c:init_sam_from_ldap(485)
  init_sam_from_ldap: Entry found for user: arrigo
[2004/10/11 13:35:40, 2] passdb/pdb_ldap.c:init_group_from_ldap(1902)
  init_group_from_ldap: Entry found for group: 512
[2004/10/11 13:35:40, 2] auth/auth.c:check_ntlm_password(305)
  check_ntlm_password:  authentication for user [arrigo] -> [arrigo] ->
  [arrigo] succeeded
[2004/10/11 13:35:41, 2]
rpc_server/srv_samr_nt.c:_samr_lookup_domain(2477)
  Returning domain sid for domain LOCALDOMAIN ->
  S-1-5-21-2307764821-3012071779-389151025
[2004/10/11 13:35:41, 2]
rpc_server/srv_samr_nt.c:access_check_samr_object(93)
  _samr_open_domain: ACCESS DENIED  (requested: 0x00000211)
[2004/10/11 13:35:41, 2]
rpc_server/srv_samr_nt.c:_samr_lookup_domain(2477)
  Returning domain sid for domain LOCALDOMAIN ->
  S-1-5-21-2307764821-3012071779-389151025
[2004/10/11 13:35:41, 2]
rpc_server/srv_samr_nt.c:access_check_samr_function(115)
  _samr_create_user: ACCESS DENIED (granted: 0x00000201;  required:
  0x00000010)
[2004/10/11 13:35:41, 2] smbd/server.c:exit_server(571)
  Closing connections
Questo invece è il log di quando provo a joinare il dominio con
'Administrator' , che apparentemente sembrerebbe ok , però
l'autentificazione sul client XP fallisce lo stesso .
[2004/10/11 13:15:43, 2] smbd/sesssetup.c:setup_new_vc_session(608)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close
  all old resources.
[2004/10/11 13:15:43, 2] smbd/sesssetup.c:setup_new_vc_session(608)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close
  all old resources.
[2004/10/11 13:15:43, 2] passdb/pdb_ldap.c:init_sam_from_ldap(485)
  init_sam_from_ldap: Entry found for user: Administrator
[2004/10/11 13:15:43, 2] passdb/pdb_ldap.c:init_group_from_ldap(1902)
  init_group_from_ldap: Entry found for group: 512
[2004/10/11 13:15:43, 2] auth/auth.c:check_ntlm_password(305)
  check_ntlm_password:  authentication for user [Administrator] ->
  [Administrator] -> [Administrator] succeeded
[2004/10/11 13:15:44, 2]
rpc_server/srv_samr_nt.c:_samr_lookup_domain(2477)
  Returning domain sid for domain LOCALDOMAIN ->
  S-1-5-21-2307764821-3012071779-389151025
[2004/10/11 13:15:44, 2] smbd/server.c:exit_server(571)
  Closing connections
Qualche suggerimento ?
Arrigo

 userPassword: {SSHA}... bla bla..pwd_di_adm
queste sono le password degli utenti.

  
Eh eh , certo che lo so :
smbpasswd -w passwd_di_admin (salva in secrets.tdb)
Purtroppo era tutta la giornata che cercavo di far funzionare samba come
PDC su ldap e alla fine non ragionavo più ... penso che domanda più
sciocca non potevo fare !  
:)  basta rendersene conto 
Purtroppo cmq non sono ancora a capo del mio problema .
Mi sa che riproverò a fare tutto ex novo , magari qualche dettaglio mi è
sfuggito , ma prima , un ultima domanda :
Ma windows XP , non ha dei log dove cercare di capire cosa non gli piace
dei miei utenti a UID 0 ?
Il registro eventi di XP non dice 'na fava ..., i log di samba e il
syslog non hanno nulla di strano , trovano l'utente e non ritornano nessun
errore .
Arrigo

Wow , ho risolto il problema !
Ora anche il dominio samba per i client windoz funziona !
Il problema era che usando i tool della idealx , e definendo in smb.conf
la direttiva:
 add machine script' = /usr/sbin/smbldap-useradd -w -d /dev/null -s
 /bin/false %u
non mi ero accorto che nell'entry rappresentante l'account
macchina manca l'objectClass sambaSamAccount e il sambaSID. 
Apparentemente il problema sta tutto li,anche se ancora una cosa non mi
sconfiffera ... 
..ovvero prima di migrare i miei account su ldap avevo samba
che leggeva dal file smbpasswd e se facevo 'getent passwd' mi elencava
tutti gli accont (anche macchina) , se lo faccio ora che uso come backend
ldap gli account macchina non vengono elencati . E' giusto o c'è qualcosa
che non va ?
Arrigo

 ldap , quindi se non erro un 'getent passwd' dovrebbe mostrarmeli .
l'account della mia macchina windows che ha fatto il join nel dominio mi
sta sotto ou=Hosts,dc=my,dc=domain
E non sotto People. Forse č per quello che getent passwd non lo mostra?

 E non sotto People. Forse è per quello che getent passwd non lo mostra?
senti, se la macchina ha come nome ccout computer prova a fare
ldapsearch -x uid=computer$
ovviamente cambia il nome e guarda se l'account esiste

 IMHO dovrebbe essere corretto , mi sfugge qualcos'altro ?
o c'è qulche problema di caporiga o non capisco l'ldap.conf....

 ovviamente cambia il nome e guarda se l'account esiste
ovviamente c'è ...
 
Ti dico che essenzialmente i miei problemi finora erano dovuti nel troppo
affidamento che ho fatto nei smbldap tools , che per carità sono utili e
risparmiano un po' di tempo , ma nel mio caso (.. e non so perchè )si
rifiutano di creare gli account macchina windows con objecClass
sambaSamAccount e non me ne ero accorto.
Ora che però la macchina è nel dominio e gli utenti configurati all'atto
del login ottengo un messaggio di errore del tipo :
Impossibile connettersi al dominio a causa di inattività o non
disponibilità del controller di dominio o di mancata individuazione
dell'account del computer .
'ldapsearch -x uid=computer$' mostra l' account del computer$
e 'getent passwd' lista anche computer$
:( , che è stavolta ?

 :( , che è stavolta ?
problemi di sid? Il sid nel file di configurazione dei tool e quello che
hai lanciando net getlocalsid coincidono?

 hai lanciando net getlocalsid coincidono?
net getlocalsid
SID for domain BLACK-LABEL is: S-1-5-21-2307764821-3012071779-389151025
#account macchina
smbldap-usershow computer$ | grep SID
sambaSID: S-1-5-21-2307764821-3012071779-389151025-3036
sambaPrimaryGroupSID: S-1-5-21-2307764821-3012071779-389151025-515
#un account samba
smbldap-usershow testuser1 | grep SID
sambaSID: S-1-5-21-2307764821-3012071779-389151025-3010
sambaPrimaryGroupSID: S-1-5-21-2307764821-3012071779-389151025-513
I sid come vedi sono uguali ,ma vorrei farti notare che che BLACK-LABEL è
il nome della macchina su cui girano samba e sldapd , e non il nome del
dominio . E' corretto , o dovrebbe esserci il nome di dominio ?

 configurato ldap nell'smb.conf?
eccolo qua :
#
# ldap.conf
#
BASE    dc=localdomain
URI     ldap://black-label
# x pam_ldap
pam_filter objectclass=posixAccount
pam_login_attribute     uid
pam_member_attribute    gid
pam_template_login_attribute    uid
pam_password    crypt
# end ldap.conf
oops mi è venuto un dubbio ora ...
il mio utente samba (che non riesce a loggarsi) è , oltre che di tipo 
sambaSamAccount , anche di tipo posixAccount , ma non è che lo stesso pam
filter objectclass deve anche filtrare sambaSamAccount ?
smbldap-usershow testuser
....
objectClass: top,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
.....

    ldap delete dn = Yes
giusto per citarti un pezzo della configurazione del server su cui ho
fatto manutenzione stamattina:
   ldap admin dn = "cn=amministratore,dc=itisrossi,dc=vi,dc=it"
   ldap ssl = no
   ldap suffix = dc=itisrossi,dc=vi,dc=it
   ldap machine suffix = ou=Computers
   ldap user suffix = ou=Users
   ldap group suffix = ou=Groups
   passdb backend = ldapsam:ldap://
ldap.itisrossi.vi.it
da me così va. A questo punto inizio a nutrire dei dubbi sui tool
debianizzati della idealx...

 Arrigo
in ldap.conf 
nss_base_passwd  	ou=Users,dc=ponte,dc=pt?one
nss_base_shadow	        ou=Users,dc=ponte,dc=pt?one
nss_base_group		ou=Groups,dc=ponte,dc=pt?one
nss_base_passwd	        ou=Computers,dc=ponte,dc=pt?one
winter
-- 
oggi: 13/10/2004 22.20.53 
sempre di più
antivieri.

 sambaSamAccount e non me ne ero accorto.
non vorrei dire una castroneria ma non occorre il sambaSamAccount con gli
account macchina, almeno nella mia conf...
winter
-- 
oggi: 13/10/2004 22.26.50 
sempre di più
antivieri.

 nss_base_passwd	        ou=Computers,dc=ponte,dc=pt?one
che distribuzione è? da me /etc/ldap.conf non esiste e questo file non
l'ho mai visto...

 l'ho mai visto...
se non c'č, prova a installare nss_ldap,
winter
-- 
oggi: 15/10/2004 13.46.20 
sempre di piů
antivieri.

 se non c'è, prova a installare nss_ldap,
l'ho visto sì, è per il name service swithc. In debian ha un altro nome