Linux counter

Cisco User Group

Accessi

TodayToday452
YeserdayYeserday565
This WeekThis Week4102
This MonthThis Month13750
All DaysAll Days520420
38.107.179.217
Guests 4
Registered Users 1
Registered Today 0

Mappa visitatori

Installazione di Samba come PDC con LDAP Backend su Debian Sarge PDF Stampa E-mail
(0 - user rating)
Scritto da Alessandro Pensato   
Venerdì 31 Dicembre 2010 16:59

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.list
deb http://debian.fastweb.it/debian stable main contrib non-free
deb 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 -y
dpkg-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.conf
include /etc/ldap/schema/samba.schema
rootdn "cn=admin,dc=logic"
rootpw "password"
index uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
access to attrs=userPassword,sambaNTPassword,sambaLMPassword

nano /etc/ldap/ldap.conf
BASE dc=logic
URI ldap://localhost

Salvati i file, procediamo con il riavvio del server LDAP e controlliamo che tutto sia funzionante

/etc/init.d/slapd restart
ldapsearch -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.conf
cp /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.conf
slaveDN="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.conf
SID="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.conf
chmod 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 0
smbldap-populate -a Administrator -b nobody -u 2000 -g 2000

Setta la password per root

smbpasswd -a root

Setta la password per Administrator

smbldap-passwd Administrator
smbldap-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 -y
nano /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: 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/nologin
openldap:x:101:104:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false
root:x:0:0:Netbios Domain Administrator:/home/root:/bin/false
nobody:x:999:514:nobody:/dev/null:/bin/false
Administrator:x:0:0:Netbios Domain Administrator:/home/Administrator:/bin/false

apt-get install libpam-ldap -y
* Risposte di default

nano /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so

nano /etc/pam.d/common-auth
auth sufficient pam_ldap.so nullok_secure
auth required pam_unix.so use_first_pass

nano /etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so try_first_pass nullok obscure min=4 max=8 md5

nano /etc/pam.d/common-session
session sufficient pam_ldap.so
session 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.conf
wins support = yes
security = user
passdb backend = ldapsam:ldap://127.0.0.1
ldap admin dn = cn=admin,dc=logic
ldap suffix = dc=logic
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
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*
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"
os level = 255
domain master = yes
domain logons = yes
preferred master = yes
[homes]
comment = Home Directories
browseable = no
writable = yes
create mask = 0700
directory mask = 0700
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
[profiles]
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory 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/netlogon
mkdir /var/lib/samba/profiles
chmod 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 SeDiskOperat
net -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

icon Installazione di Samba come PDC con LDAP Backend su Debian Sarge

 

Aggiungi commento


Codice di sicurezza
Aggiorna