|
Premessa In questo documento spiegherò come installare e configurare Samba, in modo da poter realizzare un PDC (Primari Domain Controller). Solitamente la funzione di un PDC è associata all’uso di un server Win NT/2000/2003, infatti il nostro obiettivo è quello di evitare l’uso di questi OS proprietari, così da ottenere un PDC a costo zero, ma con le stesse funzioni di uno realizzato con sistemi Microsoft®.
Risorse Hardware e Software Per il mio scopo ho utilizzato un pc, composto da un processore Pentium III 7330MHz, 256 MB di RAM, Hard Disk da 30GB IDE, scheda di rete RTL8139C 10/100Mbit. Dal lato software ho utilizzato Debian Sarge, Samba e OpenLDAP.
Installazione su Debian Sarge Preparazione del sistema Useremo dei pacchetti già pronti per l’installazione tramite apt, scaricandoli dai alcuni mirror riportati di seguito:
# /etc/apt/sources.listdeb http://debian.fastweb.it/debian stable main contrib non-freedeb http://packages.dotdeb.org stable all apt-get update
Durante l’installazione dei pacchetti software il sistema ci chiederà di inserire vari parametri, possiamo anche ignorarli in quanto in una fase successiva sarà ricreato il file di configurazione sia di Samba che di OpenLDAP.
Installazione di Samba Adesso possiamo installare Samba e installarli nel sistema con l’uso di apt.
apt-get install samba smbclient nmap
dpkg-reconfigure samba
- Nome del Dominio/Workgroup: LOGIC
- Utilizzare password cifrate: SI
- Utilizzare DHCP per i nomi Netbios: NO
- Avviare Samba come demoni (no inetd)
- Creare il database delle password: NO
Installazione di OpenLDAP Installiamo sul sistema il software OpenLDAP, che gestirà il database degli account utenti del PDC grazie ad un apposito file (samba.schema).
apt-get install slapd ldap-utils samba-doc -ydpkg-reconfigure slapd
- DNS domain name: logic
- Name of organisation: logic
- Admin password: password
- Confirm password: password
- Allow LDAP v2: no
Configurazione di OpenLDAP Adesso procediamo con la configurazione di LDAP. Dato che in fase d’installazione è stato generato un file in base alle risposte scelte, è utile rinominare l’attuale file e crearne uno nuovo. Procediamo come segue:
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema nano /etc/ldap/slapd.confinclude /etc/ldap/schema/samba.schemarootdn "cn=admin,dc=logic"rootpw "password"index uid,uidNumber,gidNumber,memberUid eqindex cn,mail,surname,givenname eq,subinitialindex sambaSID eqindex sambaPrimaryGroupSID eqindex sambaDomainName eqaccess to attrs=userPassword,sambaNTPassword,sambaLMPassword nano /etc/ldap/ldap.confBASE dc=logicURI ldap://localhost
Salvati i file, procediamo con il riavvio del server LDAP e controlliamo che tutto sia funzionante
/etc/init.d/slapd restartldapsearch -x
Installazione di Smb-ldap SMBLDAP-TOOLS sono una raccolta di script che consentono la gestione di utenti e gruppi con LDAP. Sono utilizzati per aggiungere, cancellare e modificare utenti e gruppi. Per il corretto funzionamento degli stessi, sono necessarie delle librerie che installeremo.
apt-get install smbldap-tools -y
Configurazione di Smb-LDAP Copiare i file smbldap.conf e smbldap_bind.conf in /etc/smbldap-tools.
zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.confcp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
Modificare il file /etc/smbldap-tools/smbldap_bind.conf
nano /etc/smbldap-tools/smbldap_bind.confslaveDN="cn=admin,dc=logic"slavePw="password"masterDN="cn=admin,dc=logic"masterPw="password"
Modificare il file /etc/smbldap-tools/smbldap.conf modificando la stringa "SID" con il valore generato dal comando net getlocalsid
nano /etc/smbldap-tools/smbldap.confSID="S-1-5-21-351105684-3651906924-4293240841"sambaDomain="LOGIC"ldapTLS="0"suffix="dc=logic"sambaUnixIdPooldn="sambaDomainName=LOGIC,${suffix}"defaultMaxPasswordAge="180"userSmbHome="\\PDC-SERVER\%U"userProfile="\\PDC-SERVER\profiles\%U"userScript="startup.bat"mailDomain="logic"
Per non compromettere la sicurezza del sistema è opportuno impedire agli utenti di avere accesso alle password di amministratore di LDAP, settando i permessi come indicato di seguito.
chmod 0644 /etc/smbldap-tools/smbldap.confchmod 0600 /etc/smbldap-tools/smbldap_bind.conf
A questo punto è possibile popolare il db di LDAP con i dati neccessari alla gestione dei dominio. Configurazione degli utenti e database LDAP Il prossimo passo è quello di creare gli utenti che avranno accesso al PDC e di creare la struttura del database che li conterrà. Per automatizzare l’aggiunta di in computer al dominio è necessario che l’utente Administrator, che si userà per connettere per la prima volta il pc al dominio, abbia l’uid uguale a quello di root (pari a 0). Imposta l’uid di Administrator a 0
smbldap-populate -k 0smbldap-populate -a Administrator -b nobody -u 2000 -g 2000
Setta la password per root
smbpasswd -a root
Setta la password per Administrator
smbldap-passwd Administratorsmbldap-usermod -J Administrator
Testa le informazioni sull’utente specificato
ldapsearch -x uid=Administrator
Mostra il contenuto del database ldap
slapcat | grep Group | grep dn
È necessario configurare anche l'autenticazione sulla macchina stessa dov'è installato ldap.
apt-get install libnss-ldap -ynano /etc/nsswitch.confpasswd: compat ldapgroup: compat ldapshadow: compat ldap
Verifichiamo che tuuto sia corretto e funzionante con il comando getent passwd, che restuirà un output simile a questo qui di seguito.
getent passwd[...]sshd:x:100:65534::/var/run/sshd:/usr/sbin/nologinopenldap:x:101:104:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/falseroot:x:0:0:Netbios Domain Administrator:/home/root:/bin/falsenobody:x:999:514:nobody:/dev/null:/bin/falseAdministrator:x:0:0:Netbios Domain Administrator:/home/Administrator:/bin/false apt-get install libpam-ldap -y* Risposte di default nano /etc/pam.d/common-accountaccount sufficient pam_ldap.soaccount required pam_unix.so nano /etc/pam.d/common-authauth sufficient pam_ldap.so nullok_secureauth required pam_unix.so use_first_pass nano /etc/pam.d/common-passwordpassword sufficient pam_ldap.sopassword required pam_unix.so try_first_pass nullok obscure min=4 max=8 md5 nano /etc/pam.d/common-sessionsession sufficient pam_ldap.sosession required pam_unix.so
Configurazione di Samba Adesso possiamo procedere alla configurazione di Samba per consentire l’integrazione con LDAP. Come per OpenLDAP, è opportuno rinominare il file creato al momento dell’installazione e crearne uno nuovo.
mv /etc/samba/smb.conf /etc/samba/smb.conf.old nano /etc/samba/smb.confwins support = yessecurity = userpassdb backend = ldapsam:ldap://127.0.0.1ldap admin dn = cn=admin,dc=logicldap suffix = dc=logicldap group suffix = ou=Groupsldap user suffix = ou=Usersldap machine suffix = ou=Computersldap idmap suffix = ou=Idmapldap passwd sync = Yespasswd program = /usr/sbin/smbldap-passwd %upasswd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*add user script = /usr/sbin/smbldap-useradd -m "%u"ldap delete dn = Yesdelete 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"os level = 255domain master = yesdomain logons = yespreferred master = yes[homes]comment = Home Directoriesbrowseable = nowritable = yescreate mask = 0700directory mask = 0700[netlogon]comment = Network Logon Servicepath = /var/lib/samba/netlogonguest ok = yeswritable = noshare modes = no[profiles]path = /var/lib/samba/profilesread only = nocreate mask = 0600directory mask = 0700
Controlliamo se i parametri sono corretti con il comando testparm. Ci verranno riepilogati i parametri appena settati e cosa importante da controllare è la presenza della riga Server role: ROLE_DOMAIN_PDC che conferma la configurazione di Sambacome PDC. Creiamo le directory dove saranno salvati i profili degli utenti.
mkdir /var/lib/samba/netlogonmkdir /var/lib/samba/profileschmod 1757 /var/lib/samba/profiles
A questo punto è necessario riavviare Samba in maniera tale da usare il nuovo file di configurazione.
/etc/init.d/samba restart
Occore utilizzare il comando di seguito per cambiare la password per l'amministrazione di smbldap.
smbpasswd -w password
Si devono assegnare i diritti ai gruppi del dominio per consentire la corretta creazione delle directory che conterrano i profili e le altre impostazioni.
net -S DEBIAN -U Administrator rpc rights grant "DOMAIN\Domain Admins" SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatnet -S DEBIAN -U Administrator rpc rights grant "DOMAIN\Print Operators" SePrintOperatorPrivilege
Gestione degli utenti/gruppi presenti nel database LDAP Uno strumento molto utile è PhpLdapAdmin, che è molto simile al noto programma php per la gestione dei database mysql, PhpMyAdmin.
apt-get install phpldapadmin xml-core php-pear php5-dev -y
- Authentication type: session
- Configure webserver: apache2
- Restart: yes
apt-get install db4.4-util -y
Ora che tutto è pronto, possiamo cominciare ad aggiungere i client al dominio appena realizzato. Nel caso si usino macchine con installato WinXP Pro, ricordo che WinXP Home non ha il supporto per essere integrato con un dominio, occorre modificare una chiave di registro come riportato di seguito: Su WinXP - Pro eseguire REGEDIT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters"RequireSignOrSeal"=dword:00000000
Installazione di Samba come PDC con LDAP Backend su Debian Sarge
|