IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Web: http://openfpnet.guifi.net
Centre coordinador:
LogoINSEbre.png
http://www.iesebre.com
Wiki: OpenFPnet
Repositori SVN: http://www.iesebre.com/subversion/openfpnet/
Autors: Sergi Tur Badenas
Llicència: LogoCreativeCommons.png Creative Commons
Ajudes: LogosMinisteriEducacioiUE.png Tot el que es detalla en aquesta wiki es responsabilitat exclusiva dels autors
Enllaços: TodoFP.png http://todofp.es/

Configuració de la màquina virtual

Aquesta màquina s'obté a partir de la plantilla replicaLdap.

Configuració de la xarxa

NOTA: Depenent de cada centre poden haver-hi petites variacions en el rol de cada servidor Samba

rp_filter

Al ser la màquina accessible al mateix temps per múltiples interfícies de xarxa (multihoming), per no tenir problemes d'accés a la màquina per qualsevol de les interfícies des de qualsevol de les targetes de arxa cal desactivar rp_filter (vegeu Encaminament per a més informació)

$ sudo joe  /etc/sysctl.d/10-network-security.conf

i poseu:

# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks.
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

Serveis

Samba

Qüestions a tenir en compte:

  • Cal tenir en compte si el servidor es munta des de zero o cal migrar un servidor Samba existent
  • Per facilitar la migració cal obtenir els SSIDs originals
  • TODO: Com migrar usuaris? Gosa

Característiques

  • Activat el servidor d'hora de Samba (time server=Yes)

Dades dels centres

Dada Institut de l'Ebre Institut Montsià Institut els Alfacs Institut de Deltebre Institut Leopoldo Querol Institut Joan Cormonines
Nom de domini/Workgroup INSEBRE INSMONTSIA INSALFACS Text de cel·la IESLEOPOLDO Text de cel·la
SSID Text de cel·la Text de cel·la S-1-5-21-3639968310-533092537-190950812 Text de cel·la S-1-5-21-1635145937-3713817944-1413118544 Text de cel·la
Nom del PDC Text de cel·la Text de cel·la Text de cel·la Text de cel·la IESLEOPOLDO Text de cel·la
Nom del BDC 1 Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la
Nom del BDC2 Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la
Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la
Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la
Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la Text de cel·la


Instal·lació i configuració

Per tal de configurar Samba caldrà configurar dos màquines diferents:

  • gosa/Master Ldap: Aquí configurarem i executarem smbldap-tools per tal de preparar l'arbre Ldap per tal de ser utilitzar pels servidors Samba
  • samba01 o servidor principal Samba: Aquí instal·larem i configurarem un servidor samba com a PDC. També caldrà configurar smbldap-tools, entre d'altres per tal que funcioni afegir comptes de màquines (Machine Trust Account MTA) de domini on the fly.

IMPORTANT: En un altre configuració podria ser possible tenir el servidor principal Samba o PDC en la mateixa màquina que el servidor master de Ldap

Primer anem a configurar la màquina samba01.

Instal·leu els paquets necessaris a la màquina samba01:

$ sudo apt-get install samba smbldap-tools samba-doc tofrodos

Feu una còpia de referència del fitxer original de configuració:

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Una plantilla de fitxer de configuració (en negreta el que cal adaptar), on:

  • WORKGROUP: és el nom de domini. No té per que coincidir amb el nom de domini DNS. Lo important no éstant el nom com el SID o identificador del domini. El SID no s'indica al fitxer de configuració, es guarda a la base de dades (en el nostre cas a la base de dades Ldap)
  • netbios name: Nom de la màquina que farà de PDC
  • server string: Podeu posarel que vulgueu però val la pena un text descriptiu que indiqui el rol del servidor
  • ldap admin dn: Adapteu el basedn. Normalment s'utilitza l'usuari admin de Ldap, el mateix usuari que es troba al fitxer /etc/gosa/gosa.conf. IMPORTANT: observeu que la paraula de pas no es guarda al fitxer de configuració, més endavant utilitzarem l'ordre smbpasswd -w per emmagatzemar el password de l'usuari
  • ldap ssl = off: No cal SSH ja que el servidor Ldap és localhost: passdb backend = ldapsam:"ldap://localhost"
  • ldap suffix: Adapteu el basedn. IMPORTANT: L'objecte Ldap sambaDomain que conté la informació Ldap del servidor Samba ha d'estar en aquesta part de l'arbre Ldap.
  • La resta de paràmetres en negreta segurament no els heu de modificar però si que ens recorden que utilitzen configuracions importants o scripts que s'hauran d'instal·lar al sistema.
$ sudo joe /etc/samba/smb.conf

[global]
  workgroup = INSMONTSIA
  netbios name = SAMBA01
  
  enable privileges = yes

  socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY
#  veto files = /*.eml/*.nws/riched20.dll/*.{*}/*autorun*/*Autorun*/
  interfaces = 192.168.50.41/24
  bind interfaces only = Yes
  time server = Yes

#Default 15 minuts: Quant de temps es mantindrà una connexió inactiva abans de matar-la
#   deadtime = 2

# Permisos? A Global?
#   read list = @coordinacio
#   admin users = @coordinacio, @direccio
#   write list = @coordinacio, @direccio
#DEPRECATED
#   printer admin = @coordinacio

  server string = Servidor principal del domini
  dns proxy = no

#DEBUG i LOG
  log level = 0
#   log level = 10
  debug timestamp = yes
  log file = /var/log/samba/log.%m
#   max log size = 1000
  max log size = 0
  syslog = 0
#   syslog = 10

  panic action = /usr/share/samba/panic-action %d
  security = user
  encrypt passwords = true

#NAME RESOLUTIONS
  os level = 99
  preferred master = Yes
  domain master = Yes
  wins support = Yes
  name resolve order = wins host bcast
  local master = yes

# Només local
  passdb backend = ldapsam:"ldap://localhost"

#   obey pam restrictions = yes
#   unix password sync = yes
#   passwd program = /usr/bin/passwd %u
#   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
#   pam password change = yes
  map to guest = bad user
#  Bad User - Means user logins with an invalid password are rejected, unless the username does not exist, in which case it is treated as a guest login and
#              mapped into the guest account.

#

#PDC
   domain logons = yes
#  add machine script = /usr/sbin/smbldap-useradd -w "%u"
#  Nou script personalitzat amb més info i log
  add machine script = /etc/samba/scripts/machine_add -d -a "%a" -I "%I" -m "%m" -M "%M" -w "%u"


  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"

#Disable roaming profiles
#   logon home =
   logon path =

#  On trobar els scripts de logon
  logon script = logon.bat
  logon drive = u:

#Mandatory profiles
# Canviar el fitxer NTUSER.DAT i renombrar-lo a NTUSER.MAN dins del perfil de l'usuari

# ????
#   update encrypted = Yes 

#ALTRES
  usershare allow guests = yes

#TODO: Establish message sender!
#   message command = /usr/local/kde/bin/popper-send.sh %s %f &
 

# http://www.samba.org/samba/history/samba-3.0.22.html
#If an 'ldap suffix' is defined, it will be appended to all of the
#remaining sub-suffix parameters.  In this case, the order of the suffix
#listings in smb.conf is important.  Always place the 'ldap suffix' first
#in the list.

#LDAP OPTIONS
   ldap passwd sync = Yes
# ldap filter = (&(objectclass=sambaSamAccount)(uid=%u))

   ldap admin dn = cn=admin,dc=iesmontsia,dc=org
   ldap ssl = off
   ldap delete dn = no
   ldap suffix = ou=All,dc=iesmontsia,dc=org

#   ldap user suffix = ou=people
#   ldap group suffix = ou=groups
#   ldap machine suffix = ou=Computers

#  Com utilitzem libnss_ldap no cal idmap
#   IMPORTANT:
# idmap s'ha de consultar al servidor ldap principal no a repliques (s'escriu i  a les repliques no es pot)
#   ldap idmap suffix = ou=Idmap
#   idmap backend = ldap:ldap://ldap.iesebre.com
#   idmap uid = 10000-30000
#   idmap gid = 10000-30000
#   winbind use default domain = Yes

#   Print options
#   printing = cups
#   printcap name = cups

#[printers]
#   comment = Totes les impressores
#   browseable = no
#   path = /var/spool/samba
#   printable = yes
#   guest ok = yes 
#   read only = yes
#   create mask = 0700
#   write list = "@printoperators"

#[print$]
#   comment = Printer Drivers
#   path = /var/lib/samba/printers
#   browseable = yes
#   read only = yes 
#   guest ok = yes  
#   use client driver = yes
#  valid users = "@Domain Users"
#   write list = "@printoperators"

[netlogon]
       comment = Logon
       path = /etc/samba/netlogon
       browseable = No
       root preexec = /etc/samba/scripts/netlogon_hook -u "%u" -S "%S" -m "%m" -I "%I"
       root postexec = /etc/samba/scripts/netlogoff_hook -u "%u" -S "%S" -m "%m" -I "%I"

# No es deixarà entrar els usuaris a les seves Homes
# Només es podra des de la xarxa de servidors
# Aquest Samba només fa de PDC i servidors WINS.
# No ofereix servei de fitxers
[homes]
        comment = Directoris dels usuaris
        root preexec = /etc/samba/scripts/mk_sambadir "/home/%u" "%u" "%g"
        valid users = %S, %D%w%S
        browseable = no
        writable = yes 
        printable = no 
#        write list = sergi, @coordinacio
        guest ok = no
        comment = Home Directories
        create mode = 0755
        directory mode = 0755  

Sempre que modifiqueu el fitxer comproveu-lo amb:

$ sudo testparm

o també podeu utilizar:

$ sudo testparm -v -s

Ara cal instal·lar els scripts a mida i configurar les carpetes i netlogons:

$ sudo mkdir /etc/samba/netlogon 

Els fitxers de netlogon són molt variables depenent del que es vulgui fer en cada cas. Per començar podeu utilitzar amb un fitxer simple que contingui:

$ sudo joe /etc/samba/netlogon/logon.bat.unix
net time \\SAMBA01 /set /yes

És important que l'última línia acaba amb un salt de línia. El més important però és que sigui un fitxer amb format DOS. Per això podeu utilitzar l'eina de conversió tofrodos per convenrtir un fitxer UNIX a DOS i l'eina file per comprovar:

$ file /etc/samba/netlogon/logon.bat.unix
/etc/samba/netlogon/logon.bat: ASCII text
$ sudo bash -c "fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat"
$ file /etc/samba/netlogon/*

Vegeu més informació a Samba_com_a_PDC#Logon_Scripts.

Ara cal crear els scripts a mida que utilitzarem amb el servidor Samba. Podeu obtenir els scripts a mida a:

http://www.iesebre.com/subversion/openfpnet/samba/scripts/
$ cd /etc/samba
$ sudo wget -nH --cut-dirs=3 -r -np http://www.iesebre.com/subversion/openfpnet/samba/scripts
$ sudo rm -rf index.html robots.txt
$ cd scripts/
$ sudo chmod +x *

Ara creem els fitxers de log i els hi posem els permisos adequats:

$ sudo touch /var/log/samba/add_machine_log
$ sudo chmod 644 /var/log/samba/add_machine_log
$ sudo touch /var/log/samba/netlogon
$ sudo chmod 644 /var/log/samba/netlogon

Ara ha arribat el moment de configurar el servidor principal Ldap, en el nostre cas a la màquina GOsa.

 $ ssh gosa

NOTA: smbldap cal executar-lo només a la màquina Gosa, la resta de repliques Ldap s'autoreplicaran a partir del master. Per tant instal·leu smbldap-tools i executeu les comandes al màquina Gosa

Configureu smbldap-tools, aquesta eina ens permet modificar inicialment l'arbre Ldap del servidor principal Ldap (màquina gosa) per adaptar Ldap per treballar amb un domini Samba.

El següents passos es basen en:

Samba_i_Ldap#Configuraci.C3.B3_de_smbldap-tools

IMPORTANT: Feu una còpia de seguretat de la màquina samba abans de fer cap modificació per tal de poder recuperar la màquina en cas d'error

Abans que res, obteniu el SSID executant a on estigui instal·lat Samba:

$ sudo apt-get install smbldap-tools samba

IMPORTANT: La següent comanda getdomainsid si que es fa a la replica i no al GOsa.

$ sudo net getdomainsid
...
SID for local machine PROFESSORAT is: S-1-5-21-1539791675-2192341285-2760677840
SID for domain INSMONTSIA is: S-1-5-21-1539791675-2192341285-2760677840

NOTA: Les màquines que siguin PDCs o BDCs com a l'exemple tindran el mateix SSID de màquina que el del domini

Abans que res heu de saber el nom del vostre servidor PDC. Seguiu els següents passos:

Copieu els exemples de configuració de la documentació a la carpeta /etc/smbldap-tools:

$ cd /usr/share/doc/smbldap-tools/examples
$ sudo gunzip smbldap.conf.gz
$ sudo cp /usr/share/doc/smbldap-tools/examples/smbldap.conf /etc/smbldap-tools/
$ sudo cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/

Arreglem els permisos d'aquests fitxers:

$ sudo chmod 0644 /etc/smbldap-tools/smbldap.conf
$ sudo chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

NOTA: Si només utilitzem smbldap-tools parcialment, aleshores no caldrà configurar perfectament totes les opcions. M'explico: Si utilitzem una aplicació com Gosa per a gestionar els usuaris Ldap aleshores totes les funcions de modificar, eliminar usuaris o similars no les necessitarem pas. El que si necessitarem és smbldap-tools per a fer la configuració inicial del servidor amb l'ordre populate i per als add machine scripts

Abans de modificar la configuració n'obtenim una copia de referència:

$ sudo cp /etc/smbldap-tools/smbldap.conf /etc/smbldap-tools/smbldap.conf.original

Eliminem els comentaris:

$ cd /etc/smbldap-tools
$ sudo bash -c "cat smbldap.conf | grep -i -v '^#\|^$\|^;' >  smbldap.conf.backup"
$ sudo mv smbldap.conf.backup smbldap.conf

Al fitxer de configuració de smbldap-tools cal posar (en negreta el que cal adaptar a cada cas):

$ sudo joe /etc/smbldap-tools/smbldap.conf
SID="S-1-5-21-1539791675-2192341285-2760677840"
sambaDomain="INSMONTSIA"
slaveLDAP="localhost"
slavePort="389"
masterLDAP="localhost"
masterPort="389"
ldapTLS="0"
ldapSSL="0"
verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.example.com.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.example.com.key"
suffix="ou=All,dc=iesmontsia,dc=org"
usersdn="${suffix}"  
computersdn="ou=Computers,ou=Sistemes,${suffix}"
groupsdn="ou=GrupsDomini,ou=Grups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
scope="sub"
password_hash="SSHA"
password_crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
shadowAccount="1"
defaultMaxPasswordAge="45"
userSmbHome="\\SAMBA01\%U"
userProfile="\\SAMBA01\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="iesmontsia.org"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

On:

  • Posant les mateixes dades al masterLdap i al SlaveLdap el que estem fent és no utilitzar slave (tot es fa al master)
  • ldapTLS=off: La connexió és en localhost, no cal xifrar
  • suffix: Cal posar el baseDN del nostre servidor Ldap
  • usersdn: Normalment utilitzarem gosa per afegir usuaris i no pas smbldap-tools, per tant aquest parametre no és gaire relevant.
  • computersdn: Aquest paràmetre si que és relevant, indiquem la carpeta on guardem les màquines a Gosa. Nota: cal tenir en compte que a Gosa no apareixeran fins que no siguin comptes de màquina de Gosa. Important!: Al configurar gosa cal configurar correctament el sambaMachineAccountRDN.
  • sambaUnixIdPooldn: Indica on es crearà l'objecte que portarà la informació del domini i dels identificadors d'usuari tant de Samba com de Unix.
  • La resta de paràmetres en negreta també els adaptem al nostre cas però no sólen ser rellevants.

IMPORTANT: En els nostre cas podem ignorar les configuracions del servidor esclau Ldap (slave).

Abans d'executar l'ordre smbldap-populate cal donar les dades de connexió a Ldap amb l'usuari admin del servidor Ldap:

$ sudo joe /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=iesmontsia,dc=org"
slavePw="POSEU_LA_PARAULA_DE_PAS"   
masterDN="cn=admin,dc=iesmontsia,dc=org"
masterPw="POSEU_LA_PARAULA_DE_PAS"  

IMPORTANT: Recordeu que al fitxer /etc/gosa/gosa.conf es poden obtenir les credencials d'accés. Poseu de password de root el mateix que tingueu al fitxer gosa.conf!

Executeu:

$ sudo smbldap-populate

I apareixerà quelcom similar a:


Use of qw(...) as parentheses is deprecated at /usr/share/perl5/smbldap_tools.pm line 1423,  line 522.
Populating LDAP directory for domain INSMONTSIA (S-1-5-21-1539791675-2192341285-2760677840)
(using builtin directory structure)

entry dc=iesmontsia,dc=org already exist. 
entry ou=All,dc=iesmontsia,dc=org already exist. 
entry ou=Grups,ou=All,dc=iesmontsia,dc=org already exist. 
entry ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org already exist. 
entry ou=Sistemes,ou=All,dc=iesmontsia,dc=org already exist. 
entry ou=Idmap,dc=iesmontsia,dc=org already exist. 
entry sambaDomainName=INSMONTSIA,dc=iesmontsia,dc=org already exist. Updating it...
entry uid=root,ou=All,dc=iesmontsia,dc=org already exist. 
entry uid=nobody,ou=All,dc=iesmontsia,dc=org already exist. 
adding new entry: cn=Domain Admins,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Domain Users,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Domain Guests,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Domain Computers,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Administrators,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Account Operators,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Print Operators,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Backup Operators,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
adding new entry: cn=Replicators,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org

Please provide a password for the domain root: 
Use of qw(...) as parentheses is deprecated at /usr/share/perl5/smbldap_tools.pm line 1423, <DATA> line 522.
Changing UNIX and samba passwords for root
New password: 
Retype new password: 

Observeu com es creen els usuaris bàsics (root i nobody), s'estableix el password de root de Samba i també es creen els grups de domini imprescindibles per al correcte funcionament.

NOTA: L'usuari root és l'usuari de Windows Administrator o Administradors. Altres usuaris poden ser administradors formant part del grup Domain Admins

Hem acabat si tot va bé a la màquina gosa. Torneu a la màquina samba01:

$ ssh samba01

i comproveu amb:

$ sudo slapcat

que els canvis fets a l'arbre Ldap també apareixen a la replica.

Samba necessita que els usuaris de Samba siguin tant usuaris locals com usuaris de Samba. Configurarem el servidot samba01 per tal que utilitzi com a "usuaris locals Unix" els usuaris de Ldap i així sempre complirem amb aquesta condició:

$ sudo apt-get install ldap-auth-config

Poseu:

ldap://localhost

i

ou=All,dc=iesmontsia,dc=org

Versió:

3

i:

Make local root Database admin: No

i:

Does the LDAP database require login? No

I modifiqueu el fitxer:

$ sudo joe /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file. 

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

Feu les següents comprovacions:

$ sudo getent passwd

I que apareguin usuaris de Ldap.

IMPORTANT: Els usuaris han de tenir els comptes Unix activats! És a dir la pestanya Unix a Gosa i que aparegui la icona del TUX a la llista d'usuaris

$ sudo getent group | grep Domain
Domain Admins:*:512:root
Domain Users:*:513:
Domain Guests:*:514:
Domain Computers:*:515:

Comprovem un usuari concret i fem algunes millores:

$ su sergitur
Contrasenya: 
sergitur@samba01:/home/sergi$ cd
bash: cd: /home/sergitur: El fitxer o directori no existeix

Seguiu els passos de:

PAM#Crear_la_home_de_l.27usuari_durant_el_primer_login

Ara cal provar els usuaris Samba. Primer executeu:

$ sudo smbpasswd -w PASSWORD_ADMIN_LDAP

Per que Samba conegui en password de l'usuari admin i si pugui connectar al servidor. Comproveu els usuaris de Samba amb:

$ sudo pdbedit -L

o

$ sudo pdbedit -vL

Finalment per tal que funcionin bé els scripts de smbldap-tools a la màquina samba01, també hem de repetir la configuració amb uns petits canvis:

$ sudo apt-get install smbldap-tools
$ cd /usr/share/doc/smbldap-tools/examples
$ sudo gunzip smbldap.conf.gz
$ sudo cp /usr/share/doc/smbldap-tools/examples/smbldap.conf /etc/smbldap-tools/
$ sudo cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
$ sudo chmod 0644 /etc/smbldap-tools/smbldap.conf
$ sudo chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
$ sudo cp /etc/smbldap-tools/smbldap.conf /etc/smbldap-tools/smbldap.conf.original
$ cd /etc/smbldap-tools
$ sudo bash -c "cat smbldap.conf | grep -i -v '^#\|^$\|^;' >  smbldap.conf.backup"
$ sudo mv smbldap.conf.backup smbldap.conf

Al fitxer de configuració de smbldap-tools cal posar.

$ sudo joe /etc/smbldap-tools/smbldap.conf
SID="S-1-5-21-1539791675-2192341285-2760677840"
sambaDomain="INSMONTSIA"
slaveLDAP="192.168.50.30"
slavePort="389"
masterLDAP="192.168.50.30"
masterPort="389"
ldapTLS="0"
ldapSSL="0"
verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.example.com.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.example.com.key"
suffix="ou=All,dc=iesmontsia,dc=org"
usersdn="ou=people,${suffix}"
computersdn="ou=Computers,ou=Sistemes,${suffix}"
groupsdn="ou=GrupsDomini,ou=Grups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
scope="sub"
password_hash="SSHA"
password_crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
shadowAccount="1"
defaultMaxPasswordAge="45"
userSmbHome="\\SAMBA01\%U"
userProfile="\\SAMBA01\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="iesmontsia.org"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd" 

IMPORTANT: El fitxer de configuració és el mateix que el de la màquina Gosa però canvia la Ip del servidor Master Ldap. Podeu obtenir una còpia amb:

$ sudo scp usuari@192.168.50.30:/etc/smbldap-tools/smbldap.conf /etc/smbldap-tools/smbldap.conf 

Configurem les claus d'accés:

$ sudo joe /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=iesmontsia,dc=org"
slavePw="POSEU_LA_PARAULA_DE_PAS"   
masterDN="cn=admin,dc=iesmontsia,dc=org"
masterPw="POSEU_LA_PARAULA_DE_PAS"  

Provem que podem afegir un compte de màquina:

$ /usr/sbin/smbldap-useradd -w "testwindowsxppr$"

NOTA: Esborreu després el compte de l'arbre Ldap!

Recursos:

Comprovacions

Afegir un usuari de domini

Per això cal anar al Gosa i crer un nou usuari, per exemple un alumne a partir de la plantilla Alumne. La plantilla us ha de facilitar:

  • La creació del compte Unix (automàticament s'omplen les dades bàsiques de la pestanya Unix)
  • La creació del compte Samba (automàticament s'omplen les dades bàsiques de la pestanya Samba)
  • Valors per defecte:
La home de l'usuari és: /home/%uid
  • L'usuari pertany per defecte al gidNumber: 513, és a dir és un Domain User
  • El domini per defecte de l'usuari i el SID és corresponen al vostre domini

IMPORTANT: Cal comprovar que els UID i els SIDS del usuaris generats no siguin conflictius. per exemple cal evitar els UIDs de Linux de 1000 a 2000, sobretot els primers 1000, 1001, etc, que correspondran als usuaris locals dels servidors Linux

Un cop creat l'usuari, comproveu que té compte Unix al servidors, suposem que l'usuari és begonyasole als exemples (modifiqueu segons el vostres cas):

$ sudo getent passwd | grep begonyasole
begonyasole:x:2002:513:Begonya Solé Aragonés:/home/userid:/bin/bash

$ groups begonyasole
begonyasole : Domain Users

I comproveu el compte Samba:

$ sudo pdbedit -vL begonyasole
Unix username:        begonyasole
NT username:          begonyasole
Account Flags:        [U          ]
User SID:             S-1-5-21-1539791675-2192341285-2760677840-4004
Primary Group SID:    S-1-5-21-1539791675-2192341285-2760677840-513
Full Name:            Begonya Solé Aragonés
Home Directory:       \\samba01\begonyasole
HomeDir Drive:        u:
Logon Script:         logon.bat
Profile Path:         
Domain:               INSMONTSIA
Account desc:         
Workstations:         
Munged dial:            IAAgACAAIAAgACAAIAAgACAA  
...
Logon time:           0
Logoff time:          dt, 19 gen 2038 04:14:07 CET
Kickoff time:         never
Password last set:    ds, 11 ago 2012 06:36:52 CEST
Password can change:  ds, 11 ago 2012 06:36:52 CEST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Entreu amb l'usuari:

$ su begonyasole

I comproveu que funciona la paraula de pas i que se us genera la Home.

Mostrar els grups de domini a Gosa

Si els teniu a:

DN: ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org

Per que apareguin a Gosa només cal posar-los dins de una Organizational Uni anomenada groups (això segons el paràmetre de configuració groupRDN="ou=groups" del fitxer gosa.conf )

DN: ou=groups,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org

Afegir una màquina al domini

Arranqueu la màquina virtual de proves:

testWindowsXP

El primer que heu de fer es comprovar que la màquina es configura correctament per DHCP.Executeu a una lína de comandes de DOS:

IPCONFIG /ALL

Haurieu de tenir correctament el servidor de WINS apuntat a la Ip 192.168.50.41

Al servidor samba01 deixeu la següent comanda en execució per tal de veure el log:

$ sudo tail -f /var/log/samba/add_machine_log
Aug 11 07:52:53 samba01 [15522]: Samba machine add script initiated...
Aug 11 07:52:53 samba01 [15522]: whoami: root
Aug 11 07:52:53 samba01 [15522]:  =WinXP
Aug 11 07:52:53 samba01 [15522]: Client's architecture =WinXP
Aug 11 07:52:53 samba01 [15522]: Client's IP address I =192.168.50.241
Aug 11 07:52:53 samba01 [15522]: Client's NetBIOS name =testwindowsxp
Aug 11 07:52:53 samba01 [15522]: Client's DNS name     =192.168.50.241
Aug 11 07:52:53 samba01 [15522]: Requested client username =
Aug 11 07:52:53 samba01 [15522]:  Executing /usr/sbin/smbldap-useradd -w "testwindowsxp$" where:
Aug 11 07:52:53 samba01 [15522]:   %u: testwindowsxp$

Si tot va bé us dirà:

User added without errors

Un cop afegida la màquina, la reinicieu i mireu d'entrar amb algun usuari. Proveu un usuari normal i un usuari administrador del domini.

IMPORTANT: Configureu tots els privilegis de l'usuari administrador de domini i comproveu que es administradors local i que pot afegir màquines al domini!

Possibles errors:

Aug 11 07:52:53 samba01 [15522]: Use of qw(...) as parentheses is deprecated at /usr/share/perl5/smbldap_tools.pm line 1423, <DATA> line 522.

és un warning no us preocupeu.

erreur LDAP: Can't contact master ldap server for writing (IO::Socket::INET: Bad hostname 'ldap.example.com') at /usr/share/perl5/smbldap_tools.pm line 346.

Aquest últim cas d'error indica clarament que no s'ha configurat correctament smbldap-tools. Recordeu que cal configurar el paquet tant al servidor Ldap principal (màquina Gosa) com al servidor samba01.

Configuracions extres de Samba

Gestió dels privilegis

NOTA: A cada màquina han de tenir privilegis l'usuari root, el coordinador del projecte i el responsable del projecte per cada centre. També seria bé que tinguéssim usuari cadascun dels tècnics a cada centre

Cal escollir els usuaris que han de tenir privilegis i per a cada usuari seguir el següents passos:

  • Primer de tot cal tenir l'usuari donat d'alta a Gosa. Afegiu-lo al grup Domain Admins

Per línia de comandes també hauria de funcionar:

$ smbldap-usermod -G +512 adminuser  

És a dir afegim l'usuar adminuser al grup 512, que és el grup de Domain Admins!

Cal tenir els privilegis activats a la configuració de Samba:

enable privileges = yes

Podeu comprovar si els privilegis estan activats amb:

$ sudo testparm -v -s | grep "enable privileges"

NOTA: Cal reiniciar Samba per aplicar els canvis al fitxer smb.conf

Un exemple de com afegir privilegis:

$ net -U root%XXX rpc rights grant 'NOMDEDOMINI\Domain Admins' SeMachineAccountPrivilege

Però per facilitar la feina podeu utilitzar l'script a mida:

/etc/samba/scripts/addAllPrivileges.sh

Editeu-lo i modifiqueu els paràmetres:

$ sudo joe /etc/samba/scripts/addAllPrivileges.sh

USER="sergitur"
USER1="root"
SERVER_IP="192.168.50.41" 

Prepareu el password de root i executeu:

$ sudo /etc/samba/scripts/addAllPrivileges.sh

Us demanarà el password tantes vegades com comandes s'executen.

Configuració del netlogon compartit amb la resta de servidors BDC

Consulteu:

NFS#Exemple_de_com_compartir_els_fitxers_de_netlogon_entre_el_PDC_i_els_BDC

Vegeu també:

OpenFPnet/Mosaic/Formació/Execució/Servidor_samba_principal_com_a_BDC._samba02_i_altres...#Configuraci.C3.B3_del_client_NFS

Carpetes compartides i Homes

Les carpetes compartides per Samba es posaran a:

/samba

Per tal de separar les dades del sistema operatiu i també per tal de poder gestionar millor el tema de l'espai de disc, aquesta carpeta es muntarà en un disc virtual a part. Consulteu el següent apartat.

Creació d'un disc dur extra virtual on posar els fitxers samba

Consulteu Proxmox#Afegir_un_segons_disc_virtual

NOTA: Utilitzeu tune2fs per tal de reservar 0% de l'espai del disc a l'usuari root

Tasques de comprovació

En aquest punt seria bo realitzar un procediment complet d'alta de màquina:

  • Crear una copia de la màquina de proves Windows XP. Canviar la MAC, l'adreça IP, etc. Escollir un dels rangs de xarxa
  • Donar d'alta la màquina a Gosa. Configurar l'assignació estàtica d'adreça IP per MAC i el DNS
  • Arrancar la màquina i comprovar la xarxa
  • Afegir la màquina al domini
  • Comprovar que s'afegeix la màquina al domini, veure fitxers de log. Fer aparèixer la màquina al Gosa: Tipus de màquines Gosa.
  • Repetir el procés amb la mateixa màquina però canviant-li el nom i posant-la a un altre rang de xarxa.

Windows 7:

NOTA: Para que se pueda unir un Windows 7 a un dominio samba, la versión del servidor samba tiene que ser como minimo 3.2.7

Agregar estas claves al registro:

       HKLM\System\CCS\Services\LanmanWorkstation\Parameters
           DWORD  DomainCompatibilityMode = 1
           DWORD  DNSNameResolutionRequired = 0

Reconfiguracions i posada a punt de Gosa

El primer que cal fer es comprovar l'objecte que conté la informació de domini, inicialment tindrà el valor:

dn: sambaDomainName=INSMONTSIA,ou=All,dc=iesmontsia,dc=org
objectClass: sambaDomain
objectClass: sambaUnixIdPool
gidNumber: 1000
sambaDomainName: INSMONTSIA
sambaSID: S-1-5-21-1539791675-2192341285-2760677840
uidNumber: 1000

Fins que no afegim un usuari al gosa no tindrem més informació, com:

sambaMaxPwdAge: -1
sambaNextRid: 1000
sambaPwdHistoryLength: 0

Un altre tema és la plantilla que utilitzem. Hem de mirar que per defecte crei usuaris amb compte de unix i de SAmba per tal que funcionin aquells usuaris al Samba.

Si us dona els següents errors al crear un usuari a Gosa:

Se ha detectado un SID Samba sin definir. ¡Por favor solucione este problema manualmente! 

Cal que la plantilla tinguin no només un sambaSID sinó també el nom de domini (i per si de cas jo he posat altres valors). el he copiat d'un usuari plantilla normal de gosa:

sambaAcctFlags: [U           ]
sambaBadPasswordCount: 0
sambaBadPasswordTime: 0
sambaDomainName: INSMONTSIA
sambaLMPassword: 43D167D79193797A7AF8F86B7F46CB50
sambaLogoffTime: 2147483647
sambaLogonTime: 0
sambaMungedDial: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA
 gACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQAB
 oACAABAEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZ
 wBGAGwAYQBnAHMAMQAwMGUwMDAxMBYAAAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawASAAgAAQBD
 AHQAeABTAGgAYQBkAG8AdwAwMTAwMDAwMCIAAAABAEMAdAB4AEsAZQB5AGIAbwBhAHIAZABMAGE
 AeQBvAHUAdAAqAAIAAQBDAHQAeABNAGkAbgBFAG4AYwByAHkAcAB0AGkAbwBuAEwAZQB2AGUAbA
 AwMCAAAgABAEMAdAB4AFcAbwByAGsARABpAHIAZQBjAHQAbwByAHkAMDAgAAIAAQBDAHQAeABOA
 FcATABvAGcAbwBuAFMAZQByAHYAZQByADAwGAACAAEAQwB0AHgAVwBGAEgAbwBtAGUARABpAHIA
 MDAiAAIAAQBDAHQAeABXAEYASABvAG0AZQBEAGkAcgBEAHIAaQB2AGUAMDAgAAIAAQBDAHQAeAB
 XAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADAwIgACAAEAQwB0AHgASQBuAGkAdABpAGEAbABQAH
 IAbwBnAHIAYQBtADAwIgACAAEAQwB0AHgAQwBhAGwAbABiAGEAYwBrAE4AdQBtAGIAZQByADAwK
 AAIAAEAQwB0AHgATQBhAHgAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAI
 AAEAQwB0AHgATQBhAHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDA
 wHAAIAAEAQwB0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAw
sambaNTPassword: 345512ED0D22E290A5445F1260BDBA51
sambaPwdLastSet: 1344612319
shadowLastChange: 15562
...

Si us dona l'error:

No se puede convertir un grupo primario a grupo samba: ¡El grupo no puede ser identificado! 

Consulteu: Gosa#No_se_puede_convertir_un_grupo_primario_a_grupo_samba:_.C2.A1El_grupo_no_puede_ser_identificado.21

Bàsicament cal que el gidnumber existeixi. Segurament la plantilla serà per a crear usuaris de domini. El millor que es pot fer es poar el gidNumber:

513

Què és el RID de Samba reservat als usuaris de domini.

Vegeu també

Enllaços externs

TODO