Samba com a PDC
De SergiTurWiki
| Curs: | SambasobreLDAP, LinuxAdministracioAvancada |
| Fitxers: | Sessio6.pdf,AutenticacioiAutoritzacionsLinux.pdf |
| Repositori SVN: | https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SambaSobreLDAP |
| Usuari: | anonymous |
| Paraula de pas: | sense paraula de pas |
| Autors: | Sergi Tur Badenas, Lluís Pérez Vidal |
Un controlador de domini de Windows NT és quelcom semblant a NIS a Unix (manté una base de dades del domini amb usuaris, grups, màquines i serveis). L'objectiu principal d'un controlador de domini és la seguretat, controlar el procés d'autenticació (usuari i password) i l'accés als recursos. El servei que manté la base de dades en controlador de domini s'anomena Service Account Manager (SAM). Windows NT utilitza:
- Security Identifiers (SIDS): Identificadors únics d'objectes del domini (usuaris,grups, computadores,etc.)
- Acces Control List (ACLs): Llista de control d'accés als objectes. Son similars als permisos de fitxers de Unix (rwx) però tenen una mica més de flexibilitat.
Hi han controladors de domini primaris i secundaris (Backup). Consulteu els articles:
- Samba com a PDC
- Samba com a BDC
Samba com a PDC
Un controlador de domini és un servidor SMB/CIFS que:
- Que es registra com a controlador de domini ( utilitzant broadcasts de NetBIOS, informant a un servidor de WINS o a través de DNS en el cas d'Active Directory)
- Proporciona el servei de NETLOGON. Realment aquest servei esta format per diferents protocols com el servei de logon de Lan Manager, Netlogon service, etc...
- Proporciona un recurs compartit anomenat NETLOGON
Un exemple de PDC:
$ nmblookup -S ACACHA querying ACACHA on 192.168.1.255 192.168.1.3 ACACHA<00> Looking up status of 192.168.1.3 ACACHA <00> - H <ACTIVE> ACACHA <03> - H <ACTIVE> ACACHA <20> - H <ACTIVE> ..__MSBROWSE__. <01> - <GROUP> H <ACTIVE> CASA <1d> - H <ACTIVE> CASA <1b> - H <ACTIVE> CASA <1c> - <GROUP> H <ACTIVE> CASA <1e> - <GROUP> H <ACTIVE> CASA <00> - <GROUP> H <ACTIVE> MAC Address = 00-00-00-00-00-00
Com podem veure aquesta màquina és el Master Browser (__MSBROWSE__) i és un PDC (valors 1b, 1d i 1c). Consulteu aquests valors a:
Els passos a establir per convertir una màquina Samba en un PDC són:
Configuració bàsica de TCP/IP i dels paràmetres de xarxa de Windows:
Normalment no ens cal tocar res de la configuració de TCP/IP (a no ser que el PDC també sigui un router amb diferents NIC i vulguem que samba només treballi per una NIC concreta). De la xarxa de Windows només hem d'establir el nom de màquina de NetBIOS i el nom del grup de treball. Per exemple:
workgroup = Aulalinux
Cal tenir en compte que no hi ha un paràmetre que indiqui el nom de domini en Samba i que s'utilitza el paràmetre workGroup.
Recordeu que si no establim explícitament el nom de NetBIOS aleshores coincideix amb el nom de màquina TCP/IP menys els sufix DNS. Per exemple:
$ hostname acacha.dyndns.org
Li correspon el nom de màquina de NetBIOS: ACACHA.
Establir com rol de seguretat user:
security = user
A Samba 3 aquest és el valor per defecte.
IMPORTANT: No utilitzeu el rol de seguretat DOMAIN. Al contrari del que pot semblar pel seu nom aquest model de seguretat només s'utilitza quan una màquina Samba és membre d'un domini però no és un PDC!
Configurar correctament la resolució de noms de NetBIOS.
La configuració adequada és que el Samba PDC sigui un servidor WINS i funcioni com a Domain Master Browser del domini:
os level = 35 preferred master = Yes domain master = Yes wins support = Yes
Per a més informació sobre aquest tema consulteu l'article NetBIOS Name Server i els apartats Configuració com a DMB i WINS de l'article sobre Samba.
Configurar els LOGON per a clients Windows NT4/200x/XP Professional.
Aquí el paràmetre més important és:
domain logons = yes
Aquest és el paràmetre que determina que aquesta màquina és un PDC.
NOTA: Si no ens interessa executar cap script d'inici (logon script) no cal configurar res més a Samba, amb aquesta configuració ja podríem treballar sense servei de Netlogon.
Si volem executar un script els passos bàsics serien indicar l'script:
[global] ... domain logons = yes logon script = logon.bat
Aquest script és sempre relatiu al recurs compartit [netlogon] que establim de la següent forma
[netlogon]
comment = Logon
path = /etc/samba/netlogon
browseable = No
Per defecte és de només lectura. Preparem les carpetes de recursos compartits del servidor:
$ sudo mkdir /etc/samba/netlogon $ sudo chmod 775 /etc/samba/netlogon $ sudo mkdir /etc/samba/profiles $ sudo chmod 777 /etc/samba/profiles
Ara creem l'script:
$ sudo joe /etc/samba/netlogon/logon.bat.unix net time \\SERVER_NETBIOS_NAME /set /yes net use p: \\SERVER_NETBIOS_NAME\aulalinux net use LPT1: \\MyServer\MyPrinter
El fitxer ha d'estar en format DOS. Podeu convertir un fitxer UNIX en un fitxer DOS amb:
$ sudo apt-get install tofrodos $ sudo -i #unix2dos < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat# fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat
IMPORTANT: En versions del paquet Debian "modernes" (--acacha 11:43, 20 juny 2010 (UTC)) ja no existeixen les ordres unix2dos i dos2unix:
$ sudo gunzip /usr/share/doc/tofrodos/NEWS.Debian.gz $ sudo cat /usr/share/doc/tofrodos/NEWS.Debian tofrodos (1.7.8.debian.1-2) unstable; urgency=low With this release the symlinks "unix2dos" and "dos2unix" are dropped from the package. This will allow the introduction of the original dos2unix package, which also supports conversion to MacOS style files. Should you have scripts depending on these symlinks, I recommend using shell-aliases, like in the following example for bash: alias unix2dos="/usr/bin/fromdos -u" (or todos) alias dos2unix="/usr/bin/fromdos -d" (or just fromdos) -- Alexander Reichle-Schmehl <tolimar@debian.org> Thu, 21 Jan 2010 20:59:11 +0100
Podeu comprovar que els fitxers són diferents amb la comanda file:
$ file /etc/samba/netlogon/logon.bat.unix logon.bat.unix: ASCII text, with no line terminators
$ file /etc/samba/netlogon/logon.bat logon.bat: ASCII text, with CRLF line terminators
La configuració de smb.conf és la següent:
[global] ... logon path = \\%N\profiles\%U logon script = logon.bat logon drive = H: time server = yes
...
[netlogon] path = /etc/samba/netlogon writable = no browsable = no [profiles] path = /etc/samba/profiles browsable = no writable = yes create mask = 0600 directory mask = 0700
[homes] read only = no browsable = no guest ok = no map archive = yes
Podeu trobar més informació en detall sobre LOGON a Configuració delLogon.
Configurar els perfils mòbils (roaming profiles) o indicar explícitament que volem utilitzar els perfils locals.
Per utilitzar perfils mòbils no cal fer cap modificació a la configuració per defecte de Samba. Per a fer canvis concrets respecte als perfils consulteu l'apartat perfils.
Configurar els clients MS Windows NT4/2000 Professional i Windows XP Professional per tal de ser membres del domini
Per poder afegir una màquina a un domini cal tenir l'usuari root/administrador del domini configurat. Consulteu l'apartat Configuració de la compte d'administrador del domini.
Veieu l'apartat Configuració dels clients Windows.
Gestionar les comptes d'usuaris del domini
La primera compte que cal crear és la de l'administrador del domini. Consulteu l'apartat Configuració de la compte d'administrador del domini.
Un cop configurat aquest compte, la gestió de comptes d'usuari es pot fer manualment utilitzant les comandes de gestió d'usuaris de Unix (adduser, deluser, etc.) i les comandes de gestió d'usuaris de Samba ( smbpasswd, pdbedit o fins i tot la comanda net).
Però també es pot fer des d'eines client de Windows NT com srvmng.exe o usrmgr.exe. Per tal que això sigui possible cal configurar adequadament Samba. Consulteu l'apartat Scripts de gestió d'usuari
Configurar les polítiques de la xarxa i del sistema (network/system policies)
[TODO]
Recursos:
Configuració del Logon
Tots els paràmetres són de la secció global.
Paràmetres:
- logon path: Indica on estan els perfils mòbils. Vegeu l'apartat Perfils i Samba.
- logon script: Aquest paràmetre especifica el fitxer batch (.bat) o el fitxer de comandes de NT (.cmd) que serà descarregat i executat pel client un cop s'ha autenticat correctament. El fitxer ha d'estar en format DOS (les línies acabades en CR/LF). El fitxer és relatiu al recurs compartit [netlogon]. Per exemple si el [netlogon] és /etc/samba/netlogon i el path és STARTUP.BAT aleshores el camí absolut del fitxer és /etc/samba/netlogon/STARTUP.BAT. És important destacar que no s'ha de permetre permís d'escriptura al recurs netlogon per tal que els usuaris no puguin modificar aquests scripts.
El valor per defecte és:
logon script =
Un exemple:
logon script = scripts\%U.bat
- logon drive: Aquest paràmetre especifica el drive o unitat (per exemple H:) on es muntara la home de l'usuari. Només s'utilitza en servidors Samba PDC.
El valor per defecte és:
logon drive =
Un exemple:
logon drive = h:
- logon home: Aquest paràmetre indica la localització de la home per clients Win95/98 o estacions de treball NT. Vegeu l'apartat Perfils i Samba.
El valor per defecte és:
logon home = \\%N\%U
Recursos: Vegeu els exemples:
- Chapter 2. Small Office Networking
- Chapter 3. Secure Office Networking
- Chapter 4. The 500-User Office
- Chapter 5. Making Happy Users
Recurs compartit netlogon:
NO és obligatori posar-lo (equival a no executar cap logon script a l'iniciar sessió). Es configura com un recurs compartit més:
[netlogon] path = /etc/samba/netlogon writable = no browsable = no
$ sudo mkdir /etc/samba/netlogon $ sudo chmod 775 /etc/samba/netlogon
El més important és que el recurs compartit sigui de només lectura.
Logon Scripts
Un exemple de fitxer de logon simple. Editeu el fitxer:
$ sudo joe /etc/samba/netlogon/logon.bat.unix
I afegiu el següent contingut:
net time \\SERVER_NETBIOS_NAME /set /yes net use p: \\SERVER_NETBIOS_NAME\recurscompartit
Un exemple:
net time \\ACACHA /set /yes net use p: \\ACACHA\aulalinux
Si volguéssim afegir una impresora seria quelcom similar a:
net use LPT1: \\SERVER_NETBIOS_NAME\MyPrinter
Per convertir a format DOS el fitxer:
$ sudo apt-get install tofrodos $ sudo -i #unix2dos < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat# fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat # exit $
NOTA: Amb sudo per tal que funcionin les redireccions:
$ sudo bash -c "fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat"
Per comprovar si el fitxer està en format Linux es pot utilitzar l'ordre file (--acacha 08:27, 19 jul 2010 (UTC) abans indicava que era un fitxer CRLF ara no ;-)). Podeu també utilitzar cat:
$ cat -v /etc/samba/netlogon/logon.bat @ECHO OFF^M @ECHO Intentant assignar les lletres X:, Y:, T: a la xarxa ...^M ^M
Si veieu el ^M, aleshores el fitxer és en format DOS (CR+LF)
Sinó és Unix.
Recursos:
- http://www.computerperformance.co.uk/Logon/logon_scripts.htm
- http://wiki.samba.org/index.php/Logon_scripting
- http://www.rlmueller.net/LogonScriptFAQ.htm
- http://www.kixtart.org/forums/ubbthreads.php?ubb=showflat&Number=65287&site_id=1#import
- http://www.experts-exchange.com/Networking/Misc/Q_21132801.html
- http://msdn2.microsoft.com/en-us/library/9bbdkx3k.aspx
- http://wilk4.com/asp4hs/list5.htm
- http://msdn2.microsoft.com/en-us/library/9y04zt1a(VS.85).aspx
Exemples
Executar un script segons el grup de l'usuari
$ cat /etc/samba/smb.conf ... logon script = %g.BAT ... [netlogon]
comment = Netlogon NT path = /var/lib/samba/netlogon browseable = No
I a la carpeta:
/var/lib/samba/netlogon
Tenir un script per cada grup.
Script especific per a un usuari
Es pot indicar a la info de l'usuari. O podeu fer amb gosa o amb pdbedit
Crear fitxer logon "on the fly" amb rootpreexec
Exemple de com crear "on the fly" un fitxer de logon per a cada usuari amb rootpreexec
Configuració de la compte d'administrador de domini
Per configurar la compte d'administrador del domini cal executar:
$ sudo smbpasswd -a root
Podeu comprovar si funciona amb la comanda:
$ smbclient -U root -L NETBIOS_NAME_PDC
Nota: Cal tenir en compte l'error típic de tenir activada l'opció: invalid users= root
Sovint també es fa un mapeig d'usuaris per tal que els clients Windows puguin utilitzar l'usuari Administrador en comptes de l'usuari root. Cal crear un fitxer:
$ sudo joe /etc/samba/smbusers
Amb un continguts similar a:
#### # User mapping file #### # File Format # ----------- # Unix_ID = Windows_ID # # Examples: # root = Administrator # janes = "Jane Smith" # jimbo = Jim Bones # # Note: If the name contains a space it must be double quoted. # In the example above the name 'jimbo' will be mapped to Windows # user names 'Jim' and 'Bones' because the space was not quoted. ####################################################################### root = Administrator #### # End of File ####
Configurem Samba:
[global] ... username map = /etc/samba/smbusers
A l'apartat [global] del fitxer de configuració de samba.
Per raons de seguretat val la pena que la contrasenya de l'administrador de Windows no coincideixi amb la paraula de pas de Unix.
Machine Trust Accounts (MTA)
És una compte que s'utilitza per autenticar una màquina client (i no pas un usuari). També anomenades comptes de màquina (computer account). L'objectiu d'aquestes comptes és autenticar màquines en un domini de Windows. La idea és evitar que una màquina és pugui fer passar per un altre utilitzant el mateix nom de NetBIOS.
La paraula de pas de la compte és el secret compartit entre una màquina membre del domini i el controlador del domini.
Cal recordar que:
- Windows NT/200x i XP Professional utilitzen MTA
- Windows 9x/Me/XP Home no utilitzen MTA
El PDC del domini emmagatzema les MTA. A Windows es guarden al registre de Windows (excepte en el cas de Active Directory que aleshores es guarda a Ldap). En una màquina Samba treballant com a PDC es guarden en dos parts (de la mateixa forma que succeïx amb els usuaris):
- En una compte de seguretat del domini que es guarden al passdb backend (smbpasswd, tdbsam, ldapsam)
- Una compte corresponent de UNIX
Hi ha 3 formes de crear una MTA a Samba:
- De forma manual des de la línia de comandes (comanda net)
- Utilitzant MS Windows NT4 Server Manager des d'una màquina que sigui membre del domini. També es pot utilitzar l'eina Nexus toolkit que es pot descarregar de la web de Microsoft
- Creació “On-the-fly”. La compte és creada automàticament per Samba en el moment que el client s'afegeix al domini. La corresponent paraula de pas de UNIX es pot crear automàticament o manualment
Els noms de màquina acaben en $.
Un cop una màquina s'ha afegit al domini podem consultar la seva compte amb la comanda:
$ sudo pdbedit -Lv WINVIRTUALBOX$ Unix username: WINVIRTUALBOX$ NT username: Account Flags: [W ] User SID: S-1-5-21-2766811845-3538508183-2884897709-1009 Primary Group SID: S-1-5-21-2766811845-3538508183-2884897709-513 Full Name: WINVIRTUALBOX$ Home Directory: \\acacha\winvirtualbox_ HomeDir Drive: Logon Script: Profile Path: \\acacha\winvirtualbox_\profile Domain: CASA Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 0 Password can change: 0 Password must change: 0 Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Creació manual de MTA
$ sudo addgroup machines $ sudo useradd -g machines -d /var/lib/nobody -c "nom maquina" -s /bin/false nom_maquina$ $ sudo passwd -l nom_maquina$ $ sudo smbpasswd -a -m nom_maquina
Utilitzar Server Manager for Domains (srvmgr.exe)
Podeu obenir la eina srvmgr.exe i instal·lar-la a XP des de la següent web:
Un cop instal·lada heu d'iniciar sessió com a usuari administrador al domini.
També existeix una eina anomenada Nexus sense oblidar idealx ni eines Open Source com Gosa o LAM.
Creació On The Fly
[global] add machine script = /usr/sbin/useradd -d /var/lib/nobody -g machines -s /bin/false -m %u
NOTA: Cal abans haver afegir al sistema el grup machines amb la comanda:
$ sudo addgroup machines Adding group `machines' (GID 1010) ... Fet.
IMPORTANT: Amb Ldap i libnss-ldap cal crear el compte en Ldap i no pas en local (l'ordre useradd crea només comptes locals). Consulteu smbldap-tools, concretament l'apartat Smbldap-tools#Add_machine_script_i_Ldap
Consulteu també l'apartat Machine Trust Accounts (MTA)
Creació d'un compte de màquina amb l'ordre net
Vegeu també net.
Creació d'un compte de màquina amb l'ordre pdbedit
Es fa amb l'opció -m:
$ sudo pdbedit -m -a maquinaprova1 Unix username: maquinaprova1$ NT username: maquinaprova1$ Account Flags: [W ] User SID: S-1-5-21-4045161930-1404234508-1517741366-1017 Primary Group SID: S-1-5-21-4045161930-1404234508-1517741366-515 Full Name: Computer Home Directory: HomeDir Drive: Logon Script: logon.bat Profile Path: Domain: INSEBRE Account desc: Computer Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: dc, 14 jul 2010 06:16:16 CEST Password can change: dc, 14 jul 2010 06:16:16 CEST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Si tenim el sistema amb libnss_ldap podem veure el compte equivalent de Unix amb:
$ sudo getent passwd maquinaprova1$ maquinaprova1$:*:3062:515:Computer:/dev/null:/bin/false
Cal tenir en compte però que al esborrar el compte de màquina amb:
$ sudo pdbedit -x maquinaprova1$
Només s'esborra la informació del compte Samba, la informació posixAccount continua existint a Ldap.
Scripts de gestió d'usuaris
Samba permet configurar una sèrie d'scripts que s'utilitzaran per crear els usuaris de Unix necessaris i així permetre una sincronització automàtica entre els usuaris de Unix i Samba. Aquests paràmetres NO s'han d'utilitzar amb l'opció:
security = share
Els scripts són executables de Linux als quals se'ls i passa el nom de l'usuari que correspongui utilitzant la variable %u.
Quan un usuari intenta connectar-se a un servidor Samba, en temps de login, el dimoni smbd contacta amb el servidor de contrasenyes (que pot ser una màquina remota o ell mateix) i intenta autenticar l'usuari. Si l'autenticació és correcte aleshores smbd intenta buscar un usuari UNIX equivalent. Si aquest usuari no existeix, aleshores s'executa l'script indicat per la variable:
add user script
Aquest script s'executa com a root i es l'encarregat de crear l'usuari.
Les variables que cal configurar són:
- add user script: Explicat més amunt.
- rename user script: Quan un usuari administrador o amb els permisos SeAddUserPrivilege intenta renombrar un usuari (per exemple des de l'aplicació de Gestió d'usuaris de Windows NT - usrmgr.exe) aquest script s'executara per tal de modificar l'usuari UNIX corresponent. Es poden utilitzar dos variables: %uold i %unew ens permeten accedir al nou nom d'usuari i al vell. L'script ha de tornar 0 si tot va correctament i qualsevol altre valor en cas d'error.
- delete user script: Aquest és l'script que s'executarà quan un client remot (p. ex. aplicacions client de Windows NT o comanda net) elimini un usuari.
- add group script: Similar als anteriors. La variable que es pot utilitzar és %g.
- delete group script: Idèntic a l'anterior però per eliminar un grup
- add user to group script: Similar als anteriors. La variable que es pot utilitzar és %g.
- delete user from group script: Idèntic a l'anterior però per eliminar un usuari d'un grup.
- set primary group script: Estableix el grup principal de l'usuari.
Configuració de màquines:
- add machine script: Consulteu l'apartat Machine Trust Accounts (MTA)
Altres scripts:
- shutdown script: Path complet a un script que permet iniciar un procés d'apagada del servidor. Si l'usuari connectat té els permisos SeRemoteShutdownPrivilege podrà executar aquesta comanda. Les variables són:
- %z El missatge ha enviar al servidor
- %t El nombre de segons abans de iniciar realment l'apagada del sistema.
- %r Indica que el servidor s'apaga i es torna a iniciar (reboot)
- %f Força l'apagada del sistema encara que hi hagi aplicacions que no responen.
Un exemple:
Script
#!/bin/bash $time=0 let "time/60" let "time++" /sbin/shutdown $3 $4 +$time $1 &
Configuració:
shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f
- 'abort shutdown script: Permet abortat l'apagada del sistema. L'usuari ha de tenir els permisos SeRemoteShutdownPrivilege.
Exemple:
abort shutdown script = /sbin/shutdown -c
- username map script: Aquest paràmetre és mútuament exclusiu amb el paràmetre username map parameter. Fa les mateixes funcions que auqest paràmetre però en comptes de ser un fitxer és un script que per la sortida estàndard ha d'especificar el mapeig. L'script rep com a paràmetre d'entrda l'usuari.
Exemple:
username map script = /etc/samba/scripts/mapusers.sh
Scripts per usuaris Unix
add user script = /usr/sbin/useradd -G sambausers -m -s /bin/false %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/adduser %u %g delete user from group script = /usr/sbin/deluser %u %g add machine script = /usr/sbin/useradd -d /var/lib/nobody -G machines -s /bin/false -m %u shutdown script = /etc/samba/shutdown %m %t %r %f abort shutdown script = /sbin/shutdown -c
Scripts per a Ldap
Configuració dels clients Windows
Recursos:
- http://us1.samba.org/samba/docs/man/Samba-Guide/appendix.html#domjoin
- http://us3.samba.org/samba/docs/using_samba/ch03.html
Instal·lar les eines de gestió de Windows 2003 Server a un Windows XP
Es poden descarregar de:
Recursos:
Instal·lar les eines de gestió d'Active Directory
Es poden instal·lar en un client Windows XP. Ho trobareu a l'enllaç:
- http://www.microsoft.com/downloads/details.aspx?FamilyID=008F58A6-DC67-4E59-95C6-D7C7C34A1447&displaylang=en
- http://support.microsoft.com/kb/324745/es
El paquet és diu adminpack.exe.
Aquestes eines no funcionen amb Samba 3 (s'està treballant per a tenir-hi suport a Samba 4).
Windows Vista
Recursos:
Crear la Home durant la primera entrada s Samba (rootprexec)
Es pot fer amb rootpreexec:
root preexec = /etc/samba/scripts/mk_sambadir "/home/%u" "%u" "%g"
On:
#!/bin/bash if [ ! -d "$1" ]; then /bin/cp -r /etc/skel "$1" /bin/chmod -R 755 "$1" /bin/chown -R "$2" "$1" /bin/chgrp -R "$3" "$1" fi
Perfils
Configuració dels perfils
Els perfils guarden la informació personal dels usuaris. En anglès s'anomenen profiles. Hi han dos tipus de perfils:
- Perfils locals (Local Profiles): Es manté una copia del perfil a la màquina local.
- Perfils mòbils (Roaming profiles): Quan un usuari entra en una xarxa (logon) un perfil de l'usuari que es guarda en un servidor centralitzat es copia a la màquina a la màquina local (workstation) per crear un perfil local. Aquest perfil es manté en local a no ser que s'especifiqui el contrari canviant una clau del registre. Si es fa aquesta modificació el perfil s'elimina de la màquina quan l'usuari finalitza sessió (logout).
De perfils mòbils en tenim 3 tipus:
- Perfils mobils personals (Personal roaming profiles): Són el normals. Les estacions de treball emmagatzemen una còpia del perfil en local. Aquesta copia es pot utilitzar si al pròxim logon no es pot obtenir el perfil.
- Perfils de grup (Group profiles): These are loaded from a central profile server.
- Perfils obligatoris (Mandatory profiles): Els perfils obligatoris es poden crear per a usuaris i per a grups. L'usuari pot fer modificacions durant la sessió però aquestes modificacions no es guardaran al perfil mòbil. Només els usuaris administradors poden modificar els perfils obligatoris.
El tema dels perfils es sempre un compromís entre servei/comoditat i eficiència. Els perfils poden arribar a ocupar Gigas d'espai, el que provoca que una estació de treball Windows pugui arribar a tardar una hora en carregar.
Perfils i Samba
La configuració per defecte de Samba pel que fa als perfils és la d'utilitzar perfils mòbils. Consulteu el següent apartat per saber les opcions que hi ha per tal de no utilitzar perfils mòbils.
De fet normalment no cal fer res per activar la qüestió dels perfils amb Samba. Els valors per defecte són:
logon path = \\%N\%U\profile
Aquest valor especifica on es guarden per defecte els perfils d'usuari. Del manual del fitxer smb.conf:
- %N: Si no utilitzem NIS aquest valor és idèntic a %L que és el nom NetBIOS del servidor
- %U: El nom d'usuari de sessió.
Per tant els perfils es guarden a una carpeta anomenada profile de la home de l'usuari. Aquesta carpeta es crea automàticament en cas de no existir durant el primer login de l'usuari.
NOTA: Que el perfil estigui a la HOME de l'usuari no és el més adequat (el pot modificar directament i després tenir problemes). Normalment la localització dels perfils es fa fora de les HOMES dels usuaris. Per exemple:
logon path = \\%L\profiles\%U
Perfils per a clients Windows 9x/Me:
Aquest clients funcionen lleugerament diferent. Utilitzen el paràmetre:
logon home = \\%N\%U
Amb aquest clients els perfils només es poden posar a la HOME. Però hi ha un truc que es fer que la HOME comenci per punt i sigui un fitxer ocult:
logon home = \\%L\%U\.profiles
Tots dos paràmetres es poden utilitzar alhora per suportat tots tipus de clients.
Importar perfils
Es fàcil importar un perfil de Windows a Samba. A XP es pot anar al menú Start/Mi PC, botó dret, Propiedades anar a la pestanya Opciones Avançadas i aqui escollir l'opció Configuración de l'apartat perfiles de usuario i aqui escollir fer una còpia. Podrem escollir el servidor i copiar el perfil (després de autenticar-nos com a usuari Administrador del domini)
Recursos:
Com desactivar els perfils mòbils
Hi ha 3 maneres de fer-ho:
1) Modificant el fitxer smb.conf. Cal deixar els paràmetres:
logon home =logon path =
NOTA: A la documentació de Samba posa desactivar també logon home! Si es fa així tampoc es pot accedir a la Home de l'usuari. Només cal logon path per desactivar només els perfils mòbils
En blanc.
ATENCIÓ: En blanc no és el mateix que no especificar-los. Segons el manual de smb.conf els valors per defecte són:
logon home = \\%N\%U logon path = \\%N\%U\profile
2) Modificant el registre de Windows:
Es pot utilitzar l'aplicació
gpedit.msc
Anomenada Microsoft Management Console (MMC) per indicar que la màquina client no vol utilitzar perfils mòbils. Acaba modificant el registre. El registre que es modifica és:
Local Computer Policy\
Computer Configuration\
Administrative Templates\
System\
User Profiles\
3) Canviar el tipus de perfil
Al menú Start, botó dret a My PC, seleccionem propietats i anem a la pestanya Opciones Avanzadas. Aquí seleccionem Configuració de l'apartat Perfiles de usuario i seleccionem Cambiar tipo.
Perfils obligatoris. Mandatory Profiles
Són aquells perfils amb els quals l'usuari pot fer modificacions del seu perfil però aquestes modificacions no es modificaran al finalitzar la sessió.
El procés es tan senzill com localitzar el fitxer NTUSER.DAT i renombrar-lo a NTUSER.MAN.
Recursos:
Recursos:
Fitxers de polítiques
El tema de les polítiques varia bastant depenent de la versió de Windows que utilitzem. Al Samba HOWTO podeu trobar les explicacions per a cada versió de Windows:
Les polítiques el que permeten es definir que pot fer cada usuari.
Windows 9x/ME Policies
Cal tenir instal·lat a windows poledit. Es pot obtenir del CD d'un Windows 95/98/Me (tools\reskit\netadmin\poledit.exe). També estaven/estan a la web de Microchoft però canvien contínuament de lloc o desapareixen....
Es poden descarregar d'una web:
Podeu utilitzar l'editor per crear un fitxer de polítiques (ntconfig.pol o config.pol) i aquest fitxer s'ha de posar al recurs compartit NELOGON. Quan l'usuari entri al sistema automàticament se li aplicaran aquestes polítiques. Es poden trobar més detalls a Windows 98 Resource Kit documentation.
També podeu utilitzar grouppol.inf. Més info a http://www.zisman.ca/poledit/.
Windows NT4-Style Policy Files:
Per crear el fitxer ntconfig.pol cal utilitzar NT Server Policy Editor (poledit.exe) que està inclòs a les versions de servidor de NT però no a les estacions de treball. També es pot tronar el Windows NT Policy Editor al Service Pack 3.
Cal tenir en compte que sovint molts valors que es modifiquen al registre local per les polítiques no es modifiquen al fer el logoff. Aquest efecte es conegut com Tatooing o Registry Spoiling i cal tenir-lo molt en compte per evitar problemes
MS Windows 200x/XP Professional Policies:
Les polítiques de Windows NT4 permeten establir paràmetres del registre per a usuaris especifics, grups o màquines que són membres d'un domini Windows NT. Aquests fitxers de polítiques també funcionen amb MS Windows 200x/XP.
A partir de MS Windows 2000 es va introduir el concepte de les Group Policy amb noves funcionalitats respecte a les polítiques de Windows NT4. Evidentment les eines per gestionar aquestes polítiques (poledit) també es van modificar.
El sistema antic de polítiques de Windows NT4 es coneix a MS Windows 2000/XP com Plantilles Administratives (Administrative Templates) dins dels Windows 2000/XP grup policies. Les noves polítiques permeten controlar els paràmetres d'Internet Explorer, canviar configuraciosn del perfil de l'usuari o indicar quines aplicacions poden utilitzar un usuari concret o un grup.
A diferència de les polítiques de NT els GPO (Group Policy Objects) no es guarden al recurs compartit [NETLOGON] sinó que es guarden al servidor Active Directory (objectes de Ldap) i en un recurs compartit anomenat SYSVOL. Aquest recurs compartit es troba als controladors de domini d'Active Directory (ja siguin PDC o BDC). La part que esta a l'Active Directory s'anomena Group Policy Container (GPC) i la que esta a SYSVOL s'anomena Group Policy Template (GPT).
Les polítiques de NT s'apliquen a l'inici de la sessió d'usuari. En canvi les GPO s'estableixen durant l'arrancada del client Windows (part de polítiques de la màquina) i quan l'usuari inicia sessió s'apliquen les polítiques específiques de l'usuari.
Amb XP l'eina poledit.exe no funciona. Podeu consultar la web http://www.zisman.ca/poledit/#NT per obtenir més informació. L'alternativa en aquests sistemes és:
gpedit.msc
Es pot executar en una línia de comandes de DOS.
Podeu obtenir més informació sobre les polítiques al 1 Samba HowTo.
Samba com a PDC NO implementa els Group Policies de MS Windows 200x/XP Professional Policies.
Recursos:
- http://platea.pntic.mec.es/~malvar2/poledit/poledit.html
- http://www.zisman.ca/poledit/
- http://support.microsoft.com/kb/910203/es
Sincronització de temps
Configuració del servidor:
[global] time server = Yes dos filetimes = yes fake directory create times = yes dos filetime resolution = yes delete readonly = yes
Fitxer de logon:
net time \\sambaserver /set /yes
La sincronització de temps a màquines Unix es pot fer amb NTP.
Recursos:
Solució de problemes. TroubleShooting
Problemes al canviar el nom de màquina Windows a Virtual Box
Virtual_Box#Pantallazo_blau_.28BSOD_Blue_Screen_Of_Death.29_al_canviar_el_nom_de_m.C3.A0quina_de_Windows
Problemes de permisos al afegir una màquina al domini d'un PDC Samba
Podent haver-hi diverses raons per les quals no tindrem permisos per afegir una màquina al domini d'un PDC Samba.
invalid users= root:
Si ens dona un error de permisos intentant afegir una màquina al domini i veiem el següent error al fitxer de log del client:
$ tail -f /var/log/samba/log.winvirtualbox ... [2008/03/17 11:58:10, 2] smbd/service.c:make_connection_snum(616) user 'root' (from session setup) not permitted to access this share (IPC$)
És molt possible que tinguem el següent paràmetre al fitxer /etc/samba/smb.conf:
invalid users = root
La màquina client no té una Machine Trust Account (MTA):
Consulteu l'apartat #Machine Trust Accounts (MTA).
Podeu depurar aquests tipus d'errors veient el fitxer de log del client. Imagineu un client amb nom de NetBIOS winvirtualbox. Per veure el fitxer de log podeu executar:
$ tail -f /var/log/samba/log.winvirtualbox
Si tot va bé el missatge hauria de ser:
... amr_create_user: Running the command `/usr/sbin/useradd -d /var/lib/nobody -G machines -s /bin/false -M winvirtualbox$' gave 2 useradd: avís: el directori personal ja existeix. No s'hi copiarà cap fitxer del directori skel.
Canviar el nom d'un domini. Els clients ja no poden tornar a afegir-se al domini
Abans de canviar el nom d'un domini és important obtenir una copia del SID:
$ sudo net getlocalsid ANTIC_DOMINI
o
$ sudo net getdomainsid
Per exemple:
$ sudo net getdomainsid SID for local machine PORTATIL is: S-1-5-21-1625948441-560733958-1016545522 SID for domain CURSICE is: S-1-5-21-4239967304-1649332975-1240260716
Un cop heu canviat el domini podeu tornar a restaurar el SID amb la comanda:
$ sudo net setlocalsid 'SID'
Error al carregar el perfil a un client Windows
Cal assegurar-se de que l'usuari pot escriure a la carpeta on es guarden als perfils. Si es guarda a la home cap problema però si per exemple es modifica Samba amb:
logon path = \\%L\profiles\%u
[profiles]
comment = Perfils de Windows
path = /etc/samba/profiles
read only = No
create mask = 0600
directory mask = 0700
browseable = No
Noteu l'opció read only = no. Els permisos de la carpeta Unix també són importants:
# ls -la /etc/samba/profiles/ total 16
El més adequat és 777 que es pot establir amb:
$ sudo chmod 777 /etc/samba/profiles/
Passos a seguir. Mini-HOWTO
Afegim a l'apartat [global] l'opció:
domain logons = Yes
Creeu el fitxer:
/etc/samba/smbusers
Amb el següent contingut:
#### # User mapping file #### # File Format # ----------- # Unix_ID = Windows_ID # # Examples: # root = Administrator # janes = "Jane Smith" # jimbo = Jim Bones # # Note: If the name contains a space it must be double quoted. # In the example above the name 'jimbo' will be mapped to Windows # user names 'Jim' and 'Bones' because the space was not quoted. ####################################################################### root = Administrator #### # End of File ####
Això permet que els usuaris de Windows utilitzin l'usuari Administrator com a root. Ho activem afegint la línia:
username map = /etc/samba/smbusers
A l'apartat [global] del fitxer de configuració de samba.
Ara cal crear la paraula de pas per a l'usuari root a Samba:
$ sudo smbpasswd root
Podeu comprovar si funciona amb la comanda:
$ smbclient -U root -L ACACHA
Nota: Cal tenir en compte l'error típic de tenir activada l'opció: invalid users= root:
Ara mapegem els grups. Podem crear un fitxer com:
$ sudo joe initGrps.sh
#!/bin/bash # # initGrps.sh # # Create UNIX groups groupadd alumnes groupadd profes # Mapa d'usuaris essencials de Windows net groupmap add ntgroup="Domain Admins" unixgroup=root rid=512 type=d net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d addgroup nobody net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d # Altres grups de domini net groupmap add ntgroup="Alumnes" unixgroup=alumnes type=d net groupmap add ntgroup="Profes" unixgroup=profes type=d
Fem el fitxer executable:
$ chmod 755 initGrps.sh
També cal configurar el servidor com a Domain Master Browser.
Recursos
- http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-pdc.html#id2561658
- http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/FastStart.html#id2554595
- https://help.ubuntu.com/community/LDAP-Samba_PDC_(for_Linux_and_Windows)
Superscript text

