Creare Pdc Samba su Centos 6 con Openldap Smbldap Samba

Creare Pdc Samba su Centos 6 con Openldap Smbldap Samba

In questa guida come esempio
 
ServerPdc: srvlinux.domain.local
Domain: domain.local

___________________________________________________________________________________________________________________________________

Configurazione ntp server

#yum install ntp

Editare file /etc/ntp.conf
# vi /etc/ntp.conf

inserire all'interno del file

server ntp1.inrim.it
server ntp2.inrim.it

Decomentare come segue adattando alla propria rete
# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Avviare servizio ed impostarlo all'avvio
#service ntpd start
#chkconfig ntpd on

Test della funzionalita
#ntpq -p

I client dovranno puntare il server come ntp di rete
___________________________________________________________________________________________________________________________________

Configurazione Iptables

Editera file /etc/sysconfig/iptables

#Porte Samba
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
#Porta Ntp
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
#Porta Http per ldap admin
-A INPUT -i interfaccis di rete esempio eth0 -s maschera di rete esempio 192.168.x.x/x -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
___________________________________________________________________________________________________________________________________

Sistemare Samba di default esce versione Samba 3.5.X.

Ma installiamo repository sernet per samba 3.5.11

#vi /etc/yum.repos.d/sernet-samba.repo

[sernet-samba]
name=SerNet Samba Team packages (CentOS 6)
type=rpm-md
baseurl=http://ftp.sernet.de/pub/samba/3.5/centos/6
enabled=1
gpgcheck=0

#yum install samba3 samba3-doc samba3-client

al termine con comando

#smbd -V

potete verificare la versione di samba

___________________________________________________________________________________________________________________________________

Installare Openldap e Smbldap bisogna aggiungere repository epel con Centos 6 mi sono trovato meglio che con rpmforge

rpm -Uvh http://bit.ly/q7kHBq

wget http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm

rpm -i epel-release-6-5.noarch.rpm

# yum install smbldap* openldap*
___________________________________________________________________________________________________________________________________

Configuriamo ora ldap.conf, slapd.conf, smbldap.conf e smbldap_bind.conf

Editiamo il file /etc/openldap/ldap.conf

BASE dc=domain, dc=local
URI ldap://127.0.0.1

Impostazione password
#slappasswd

inseriamo la pwd restituira stringa
esempio {SSHA}*caratteri*
copiamola perchè andra inserita in alcuni files

Editiamo il file /etc/openldap/slapd.conf

inseriamo negli include
include /etc/openldap/schema/samba.schema


suffix “dc=domain,dc=local”
rootdn “cn=admin,dc=domain,dc=local”
rootpw ({SSHA} PASSWORD COPIATA IN PRECEDENZA)

negli index inseriamo

index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

ed infine

# allow onlu rootdn to read the monitor
access to *
        by dn.exact="cn=admin,dc=domain,dc=local" read
        by * none


Ora copia il file samba.schema potrebbe gia essere presente nel percorso cmq
#cp /usr/share/doc/samba3/examples/LDAP/samba.schema /etc/openldap/schema/

Copiamo DB_CONFIG ed impostiamo accessi e permessi
#cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
#chown ldap:ldap /var/lib/ldap/DB_CONFIG
#chmod 600 /var/lib/ldap/DB_CONFIG

Avviare servizio ldap ed impostarlo all'avvio
service sldap start
chkconfig sldap on

Creiamo il file admin.ldif [Decidete un percorso io lo messo nella cartella dove metto le cfg]
come segue

# Voce 1: dc=domain,dc=local
dn: dc=domain,dc=local
dc: domain
o: domain.local
objectclass: top
objectclass: dcObject
objectclass: organization

# Voce 2: cn=admin,dc=domain,dc=local
dn: cn=admin,dc=domain,dc=local
cn: domain
objectclass: organizationalRole
objectclass: simpleSecurityObject
objectclass: top
userpassword: ({SSHA} PASSWORD COPIATA IN PRECEDENZA)

Ora digitiamo
#ldapadd -x -D “cn=admin,dc=domain,dc=local” -w [PASSWORD_IN_CHIARO] -f /percorso/admin.ldif
___________________________________________________________________________________________________________________________________

Nonostante la configurazione di OpenLdap si accoretta in RHEL 6.x & CentOS 6.x si può verificare un problema sull'autenticazione:

errore restituito dal comando:

#ldapadd .....

e':

#ldapadd ldap_bind: Invalid credentials (49)

Questo problema si può risolvere seguendo la procedura sotto descritta:

Bisogna cancellare il contenuto della cartella /etc/openldap/slapd.d/

Codice:

# rm -rf /etc/openldap/slapd.d/*

Eseguire slaptest per controllare la configurazione e crearla nuovamente /etc/openldap/slapd.d/

# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

Settare i permessi per la nuova configurazione

# chown -R ldap:ldap /etc/openldap/slapd.d
# chmod -R 000 /etc/openldap/slapd.d
# chmod -R u+rwX /etc/openldap/slapd.d

rieseguire

#ldapadd -x -D “cn=admin,dc=domain,dc=local” -w [PASSWORD_IN_CHIARO] -f /percorso/admin.ldif
___________________________________________________________________________________________________________________________________

Ora visualizziamo il sid della macchina
# net getlocalsid

Otteniamo
S-*-*-*-*-*

copiamolo perchè andra inserito in alcuni files

Editiamo /etc/smbldap-tools/smbldap.conf

Compiliamolo andando a modificare i campi come segue

SID=”SID copiato in precedenza"
sambaDomain=”domain.local”
#slaveLDAP=”ldap.iallanis.info”
#slavePort=”389"
masterLDAP=”127.0.0.1"
suffix=”dc=domain,dc=local”
ldapTLS=”0"
userSmbHome=”\\nome del servero o indirizzo ip\%U”
userProfile=”\\nome del servero o indirizzo ip\profiles\%U”
mailDomain=”dominio di posta”

Ora editiamo /etc/smbldap-tools/smbldap_bind.conf

Compiliamolo come segue

slaveDN=”cn=admin,dc=domain,dc=local”
slavePw=”(pwd in chiaro)”
masterDN=”cn=admin,dc=domain,dc=local”
masterPw=”(pwd in chiaro)”

___________________________________________________________________________________________________________________________________

Configurazione di samba

Editiamo file smb.conf

[global]
workgroup = domain.local
netbios name = srvlinux
server string = Samba PDC Server Version %v
obey pam restrictions = Yes
passdb backend = ldapsam:ldap://127.0.0.1
passwd 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”
delete user script = /usr/sbin/smbldap-userdel “%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”
add machine script = /usr/sbin/smbldap-useradd -w “%u”
logon drive = H:
domain logons = Yes
domain master = Yes
dns proxy = No
wins support = Yes
ldap admin dn = cn=admin,dc=domain,dc=local
ldap delete dn = Yes
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap machine suffix = ou=Computers
ldap passwd sync = Yes
ldap suffix = dc=domain,dc=local
ldap user suffix = ou=Users
ldap ssl = off
time server = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192

[homes]
comment = Home Directories
read only = No
create mask = 0700
directory mask = 0700
browseable = No

[netlogon]
comment = Network Logon Service
path = /percorso/netlogon
guest ok = Yes

Io personalmente all'interno della /home directory ho creato una cartella domain per le home degli utenti e la netlogon

quindi

#mkdir /home/domain
#mkdir /home/domain/homes
#mkdir /home/domain/netlogon

Impostiamo smbpasswd e popoliamo il database

#smbpasswd -w (PASSWORD IN CHIARO)

richiede password

#smbldap-populate -a Administrator -k 0

richiede password

Avviare servizi smb, nmb ed impostarli all'avvio

#service smb start
#service nmb start
#chkconfig smb on
#chkconfig nmb on
___________________________________________________________________________________________________________________________________

Configuriamo autenticazione con utility
#authconfig-tui

Ablitiamo:
Usa LDAP
Usa Password MD5
Usa password Shadow
Usa autenticazione LDAP

Clicchiamo su avanti

Server: ldap://127.0.0.1/
Base DN: dc=domain,dc=local
___________________________________________________________________________________________________________________________________

Creiamo il primo utente

Creiamo il primo utente con il comando:

#smbldap-useradd -N “Nome” -S “Cognome” -P -a -m -d /home/domain/nome - utente -c “decrizione” nome utente

Visualizzare gli utente
#smbldap-userlist

Cancellare utenti
#smbldap-userdell
___________________________________________________________________________________________________________________________________

Installiamo utlity per gestione database ldap ovviamente serve apache e php

#yum install httpd
#yum install php
#yum install php-ldap

#cd /var/www/html/
#wget http://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.0.5/phpldapadmin-1.2.0.5.tgz
#tar -zxvf phpldapadmin-1.2.0.5.tgz
#mv phpldapadmin-1.2.0.5 phpldapadmin
#cp /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php

Avviare servizio httpd ed impostarlo all'avvio
#service httpd restart
#chkconfig httpd on

Ora  se digitate http://ip server/phpldapadmin

Vi comparira la pagina di accesso

username: cn=admin,dc=domain,dc=local
pwd: quella impostata

___________________________________________________________________________________________________________________________________

Configurazione Selinux

Con questo comando visualizziamo le boolean disponibili per samba
# getsebool -a | grep samba

Diamo samba possibilita di essere domain controller
#setsebool -P samba_domain_controller on

Abilitiamo la directory home
#setsebool -P samba_enable_home_dirs on
#setsebool -P use_samba_home_dirs on
___________________________________________________________________________________________________________________________________

Ora lato linux e tutto ok quindi bisogna apportare le seguenti modifiche hai client windows 7

Da esegui aprire secpol.msc

RUN -> secpol.msc -> Security Settings -> Local Policies -> Security
Options -> "Network security:LAN Manager authentication level" to a "Send
LM & NTLM - use NTLMv2 if negotiated"

RUN -> secpol.msc -> Security Settings -> Local Policies -> Security
Options -> "Network security:Minimum sesion security for NTLM SSP based
(including secure RPC) clents" to a "No minimum"

RUN -> secpol.msc -> Security Settings -> Local Policies -> Security
Options -> "Network security:Minimum sesion security for NTLM SSP based
(including secure RPC) servers" to a "No minimum"

Modificare Regedit come segue.

Modificare queste due voci
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LMCompatibilityLevel
from a 3 to a 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters\requiresecuritysignature
to a "0" (disabled)

Creare queste due voci.
HKLM\System\CCS\Services\LanmanWorkstation\Paramet ers
DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0
___________________________________________________________________________________________________________________________________

 

 

 

 

 



SMF 2.0.13 | SMF © 2013, Simple Machines
TinyPortal © 2005-2012

Indietro all'articolo