Menu Chiudi

Samba LDAP come PDC su Debian Sarge

Liberamente tratto da:

zless /usr/share/doc/smbldap-tools/README.Debian.gz   (fatto molto bene!!)

http://www.pluto.it/files/journal/pj0605/samba3pdc.html (molto simile da questo howto!! uh?)

alcune ino interessanti anche se contestualizzate per woody

http://www.slag.it/documenti/samba3_ldap_pdc/samba3_ldap_pdc_howto.php

e con la sezione dedicata ai client tratta da

http://openskills.info/topic.php?ID=75

Installazione samba:

Liberamente tratto da:

zless /usr/share/doc/smbldap-tools/README.Debian.gz   (fatto molto bene!!)

http://www.pluto.it/files/journal/pj0605/samba3pdc.html (molto simile da questo howto!! uh?)

alcune ino interessanti anche se contestualizzate per woody

http://www.slag.it/documenti/samba3_ldap_pdc/samba3_ldap_pdc_howto.php

e con la sezione dedicata ai client tratta da

http://openskills.info/topic.php?ID=75

Installazione samba:

apt-get install samba samba-doc

rispondere alle domande di rito, il file verrà modificato comunque a mano più tardi, in samba doc c’e’ il samba.schema per LDAP:

apt-get install slapd

all’inserimento del DNS domain name inserire il dominio, es: linuxtrent.it che creerà un base DN:

dc=linuxtrent,dc=it

come nome dell’organizzazione mettere una descrizione dell’organizzazione:

Utenti GNU Linux del Trentino

e quindi settare la password di admin.

Ora è necessario aggiungere lo schema per i dati di samba all’indice LDAP:

zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

e quindi includerlo fra gli schema di ldap, è sufficiente aggiungere agli include già presenti nel file /etc/ldap/slapd.conf:

include         /etc/ldap/schema/samba.schema

per ottimizzare il database per l’utilizzo con samba (opzioni non necessarie):

index         uid,uidNumber,gidNumber,memberUid       eq
index cn,mail,surname,givenname eq,subinitial
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

per permettere algi utenti di cambiare le proprie passowrd NT e LM cambiare la linea:

access to attrs=userPassword

a:

access to attrs=userPassword,sambaNTPassword,sambaLMPassword

in /etc/ldap/ldap.conf decommentare e sistemare i parametri:

BASE dc=linuxtrent,dc=it
URI ldap://localhost

far ripartire il server ldap con:

/etc/init.d/slapd restart

Installazione degli smbldap-tools:

apt-get install smbldap-tools

per comodità ci sono un paio di file di esempio da copiare nella directory di configurazione:

zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf

cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf

Editare il file /etc/smbldap-tools/smbldap.conf, modificando il SID, per ottenerlo eseguire il programma:

net getlocalsid

modificare il suffix:

suffix="dc=linuxtrent,dc=it"

lo sambaUnixIdPooldn:

sambaUnixIdPooldn="sambaDomainName=NOMEDOMINIONT,${suffix}"

e aggiungere la voce:

rootdn          "cn=admin,dc=linuxtrent,dc=it"

ora nel file /etc/smbldap-tools/smbldap_bind.conf:

slaveDN="cn=admin,dc=linuxtrent,dc=it"
slavePw="passworddiadmindigitataprecedentemente"
masterDN="cn=admin,dc=linuxtrent,dc=it"
masterPw="passworddiadmindigitataprecedentemente"

a questo punto è possibile popolare il db di LDAP con i dati neccessari alla gestione dei dominio:

smbldap-populate -k 0

il parametro -k 0 serve a impostare l’UID dell’utente Administrator a 0, facendolo di fatto coincidere con l’utente root. Infine è necessario cambiare la password di Administrator con il comando:

smbldap-passwd Administrator

si può controllare il contenuto del db con:

slapcat

oppure:

ldapsearch -b "dc=linuxtrent,dc=it" -x

È necessario quindi configurare anche l’autenticazione sulla macchina con ldap installare quindi:

apt-get install libpam-ldap libnss-ldap

impostare i dati richiesti e modificare /etc/nsswitch.conf:

passwd:         compat ldap
group: compat ldap
shadow: compat ldap

È possibile verificare le impostazioni con il comando:

getent passwd

se tutto è corretto la lista dovrebbe riportare anche gli utenti di ldap

è possibile copiare un prototipo per il file di configurazione di samba (facendo una copia dell’originale!):

zcat /usr/share/doc/smbldap-tools/examples/smb.conf.gz > /etc/samba/smb.conf

**ATTENZIONE** le voci da modificare sono parecchie, conviene un’attenta analisi del file d’esempio, soprattutto per quanto riguarda il binding verso ldap, in modo che rispecchino queste opzioni:

workgroup = NOMEDOMINIONT
netbios name = NOMESERVERPDC

domain logons = Yes

obey pam restrictions = no

ldap admin dn = cn=admin,dc=linuxtrent,dc=it
ldap suffix = dc=linuxtrent, dc=it
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users

Per utilizzare smbldap per gestire le password:

; Do ldap passwd sync
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*

e per gestire gli utenti e i gruppi da windows:

add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

controllare se i parametri sono corretti e se il server agirà come PDC tramite il comando:

testparm

che dovrebbe ritornare fra le altre, una riga contenente:

Server role: ROLE_DOMAIN_PDC

cambiare la password dell’amministratore di smbldap:

smbpasswd -w PASSWORDDESIDERATA

far ripartire samba:

/etc/init.d/samba restart

ora modificare l’utente administrator per renderlo come uid 0 altrimenti non sarà possibile fare il join del dominio dai client (probabilmente c’e’ qualche via più pulita):

smbldap-usermod -u 0 administrator

ora è possibile fare il join al nuovo dominio:), La configurazione di un sistema Windows per unirsi ad un dominio, varia a seconda della versione:

Windows 95/98/ME

  • Verificare che sia installato il “Client per Reti Microsoft” fra le proprietà di rete
  • Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
  • Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
  • Se si è configurata su smb.conf l’opzione “add user script”, selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
  • Inserire il nome del proprio dominio e cliccare OK.

Windows NT

  • Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
  • Selezionare Dominio e inserire il nome del prorio dominio
  • Selezionare Crea un Computer Account
  • Alla richiesta della password di un amministratore inserire la login e la password di root, ricordarsi che l’utente root deve essere aggiunto a smbpasswd.
  • Dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.

Windows 2000

Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull’icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).

Windows XP

La procedura con Windows XP è più complessa (lamentele a Microsoft che usa cambiare le specifiche e le implementazioni dei suoi protocolli anche per rendere più complicata l’interoperabilità con soluzioni alternative). Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio (Samba o Windows based).

  • Aprire l’editor delle policy di Sicurezza Locale (Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione)
  • Disabilitare la voce “Domain member: Digitally encrypt or sign secure channel (always)” (Membro di dominio: aggiunta crittografia of irma digitale ai dati del canale protetto (sempre) )
  • Disabilitare la voce “Domain member: Disable machine account password changes” (Controller di dominio: rifiuta cambio password account computer)
  • Disabilitare la voce “Domain member: Require strong (Windows 2000 or later) session key” (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )
  • Scaricare da Samba.org (https://download.samba.org/pub/samba/docs/Registry/WinXP_SignOrSeal.reg) la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
  • A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard.

Linux/Unix

Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba e se sono dei file server, si può configurare Samba per permettere l’autenticazione tramite il dominio. Su smb.conf ci devono essere le seguenti righe:

[global]
workgroup = <nome dominio>
netbios name = <nome server samba>
security = DOMAIN
encrypt passwords = Yes
password server = <nome/ip del PDC>
preferred master = False
domain master = False

Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:

smbpasswd -j <nome dominio> -r <nome PDC server> -U root

Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).

Nota del _v_tiz:

OpenLDAP ha la brutta abitudine di non riavviarsi quando la donna delle pulizie si inciampa nell’interruttore generale della corrente:

apt-get install db4.2-util

Contiene l’utilit y ‘db4.2_recover’ che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.

Promemoria comandi ldap

slapcat

# Per fare delle modifiche nel DB in maniera semplice

slapcat -l /tmp/backup.ldif

# stoppare il servizio

/etc/init.d/slapd stop

# una copia del vecchio db

cp -r /var/lib/ldap /var/lib/ldap.old
mkdir /var/lib/ldap

#modificare il file backup.ldif e quindi reimportarlo

slapadd -c -l /tmp/backup.ldif


ldapsearch -b "dc=linuxtrent,dc=it" -x

ldapsearch -b "dc=linuxtrent,dc=it" -LLL "cn=nomedellutente*" -x

ldapadd -x -W -D "cn=admin,dc=linuxtrent,dc=it" -f entry.ldif # per importare un ldif

ldapdelete -x -D "cn=admin,dc=linuxtrent,dc=it" -W "cn= nomeutente,dc=linuxtrent,dc=it"


**** ATTENZIONE *****
nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups
con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il
file di configurazione corretto

Pro memoria comandi samba:

pdbedit -L

getent passwd

FFFATTO???? BBBBBBBBBene..ora avete un PDC con LDAP, il vostro gypsymauro

WordPress Appliance - Powered by TurnKey Linux