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)

Alert.png Aquesta wiki forma part dels materials d'un curs
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
Sam2 0112.gif

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:

Contingut

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.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:

PDC i resol·lució de noms. WINS I DNS

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-bdc.html#id2567455

Comanda de Windows nltest:

U:\>nltest /dsgetdc:iesebre.com
DsGetDcName failed: Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN

Més info sobre nltest a:

http://support.microsoft.com/kb/158148/en-us

Forma part de Microsoft Windows NT 4.0 Resource Kit

Amb nslookup:

U:\>nslookup server=dc2
Servidor:  proxy.iesebre.com
Address:  192.168.0.4

*** proxy.iesebre.com no se puede encontrar server=dc2: Non-existent domain 

U:\>nslookup server=INSEBRE
Servidor:  ns2.iesebre.com
Address:  192.168.0.4

*** ns2.iesebre.com no se puede encontrar server=INSEBRE: Non-existent domain

TODO:

11/26 08:04:48 [MISC] NetpDcGetName: INSEBRE similar query failed recently 31986
11/26 08:04:09 [SESSION] INSEBRE: NlSessionSetup: Try Session setup
11/26 08:04:09 [SESSION] INSEBRE: NlDiscoverDc: Start Synchronous Discovery
11/26 08:04:09 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports.
11/26 08:04:16 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53
11/26 08:04:16 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done.
11/26 08:04:16 [CRITICAL] INSEBRE: NlDiscoverDc: Cannot find DC.
11/26 08:04:16 [CRITICAL] INSEBRE: NlSessionSetup: Session setup: cannot pick trusted DC

c:\Windows\debug(dcdiag.txt

Es posible que el nombre de dominio "INSEBRE" sea un nombre de dominio NetBIOS. Si este es el caso, compruebe que el nombre de dominio está registrado correctamente con WINS.

Si está seguro de que el nombre no es un nombre de dominio NetBIOS, la siguiente información le ayuda a solucionar los problemas con su configuración DNS:

Ocurrió un error cuando se consultó al DNS acerca del registro de recursos de ubicación de servicio (SRV) usado para ubicar un controlador de dominio para el dominio 
INSEBRE. 

El error fue: "No se ha encontrado ningún registro para la consulta DNS especificada."
(código de error 0x0000251D DNS_INFO_NO_RECORDS)

La solicitud era para el registro SRV para _ldap._tcp.dc._msdcs.INSEBRE
Para obtener más información, haga clic en Ayuda.

Hi,

This issue may occur if you use a 1-GB network adapter and the Netlogon service starts before the network is ready. Please try to refer to the suggestions in the following article or just ignore this error if there is no other errors.

Event ID 5719 is logged when you start a computer on a domain, and the computer is running Windows Server 2003, Windows XP, or Windows 2000 http://support.microsoft.com/kb/938449

This issue may also occur because link status fluctuates as the network adapter (also known as the network interface card, or NIC) driver initializes and as the network adapter hardware negotiates a link with the network infrastructure. The Group Policy application stack executes before the negotiation process is completed and can fail because of the absence of a valid link.

Cannot connect to domain controller and cannot apply Group Policy with Gigabit Ethernet devices http://support.microsoft.com/default.aspx?scid=kb;EN-US;326152

Try the following suggestions to disable Media Sensing to test.

How to disable the Media Sensing feature for TCP/IP in Windows http://support.microsoft.com/kb/239924/

If the issue persists, please help to collect MPS Report on problematic computers for troubleshooting.

A. Download MPS Reporting Tool (MPSRPT_PFE.EXE) from the following link: (http://www.microsoft.com/downloads/details.aspx?FamilyID=00ad0eac-720f-4441-9ef6-ea9f657b5c2f&DisplayLang=en)

Please note: The link may be truncated when you read the E-mail. Be sure to include all text between '(' and ')' when navigating to the download location.

B . Right click MPSRPT_PFE.EXE and select Run as Administrator to run this tool, and you will see a Command Window start up.

C . Please type Y with the message of <Include the MSINFO32 report? (defaults to Y in 15 seconds)[Y,N]?

D . When the tool is done you will see an Explorer Window opening up the %systemroot%\MPSReports\Setup\Reports\cab folder and containing a <Computername>MPSReports.cab file. After collecting, please use Windows Live SkyDrive (http://www.skydrive.live.com/) to upload the file and then give me the download address.

Thanks.

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:

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
# file /etc/samba/netlogon/*
...
logon.bat:      ASCII text, with CRLF line terminators
logon.bat.unix: ASCII text
...
# exit
$

NOTA: Amb sudo per tal que funcionin les redireccions: bash -c "ordres amb 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:

Exemples

Afegir entrades al registre

@echo off
title Policy My Enterprise
rem Home Page Internet Explorer
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" 
/t REG_SZ /d "http://www.fiac.es" /f
rem Start Classic
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 
/v NoSimpleStartMenu /t REG_DWORD /d 1 /f
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 
/v NoSimpleStartMenu /t REG_DWORD /d 1 /f
rem Sincronize time with the server
net time \\192.168.30.11 /set /yes

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

Depurar netlogon a clients Windows

Consulteu també Depurar netlogon als clients Windows.

TODO

11/26 07:27:59 [DOMAIN] Setting our computer name to P-E9404F66AD824 (null)
11/26 07:27:59 [DOMAIN] Setting Netbios domain name to INSEBRE
11/26 07:27:59 [CRITICAL] C:\WINDOWS\system32\config\netlogon.ftj: Unable to open. 2
11/26 07:27:59 [INIT] Getting cached trusted domain list from binary file.
11/26 07:27:59 [LOGON] NlSetForestTrustList: New trusted domain list:
11/26 07:27:59 [LOGON]     0: INSEBRE (NT 4) (Primary Domain)
11/26 07:27:59 [LOGON]        Dom Sid: S-1-5-21-448539723-1202660629-1060284298
11/26 07:27:59 [INIT] Starting RPC server.
11/26 07:27:59 [SESSION] INSEBRE: NlSessionSetup: Try Session setup
11/26 07:27:59 [SESSION] INSEBRE: NlDiscoverDc: Start Synchronous Discovery
11/26 07:27:59 [MISC] NlpInitializeTrace succeeded 0
11/26 07:27:59 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports.
11/26 07:28:06 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53
11/26 07:28:06 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done.
11/26 07:28:06 [CRITICAL] INSEBRE: NlDiscoverDc: Cannot find DC.
11/26 07:28:06 [CRITICAL] INSEBRE: NlSessionSetup: Session setup: cannot pick trusted DC
11/26 07:28:06 [MISC] Eventlog: 5719 (1) "INSEBRE" 0xc000005e c000005e   ^...
11/26 07:28:06 [SESSION] INSEBRE: NlSetStatusClientSession: Set connection status to c000005e
11/26 07:28:06 [SESSION] INSEBRE: NlSessionSetup: Session setup Failed
11/26 07:28:06 [INIT] Started successfully
11/26 07:28:06 [INIT] Group Policy is not defined for Netlogon
11/26 07:28:06 [INIT] Following are the effective values after parsing
11/26 07:28:06 [MISC] NlWksScavenger: Can be called again in 24 days (0x7e105b0f)
11/26 07:28:13 [MISC] DsGetDcName function called: Dom:(null) Acct:(null) Flags: BACKGROUND 
11/26 07:28:13 [MISC] NetpDcGetName: INSEBRE similar query failed recently 6650
 11/26 07:28:13 [MISC] DsGetDcName function returns 1355: Dom:(null) Acct:(null) Flags: BACKGROUND 
11/26 07:28:20 [MISC] DsrEnumerateDomainTrusts: Called, Flags = 0x3
11/26 07:28:20 [CRITICAL] NlReadFileForestTrustList: \system32\config\netlogon.ftl: No primary domain record in Log file
11/26 07:28:20 [MISC] DsrEnumerateDomainTrusts: returns: 0
11/26 07:28:26 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Entered
11/26 07:28:26 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Returns 0xC000005E
11/26 07:28:30 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Entered
11/26 07:28:30 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Returns 0xC000005E
11/26 07:28:39 [LOGON] SamLogon: Interactive logon of INSEBRE\homersimpson from P-E9404F66AD824 Entered
11/26 07:28:39 [LOGON] SamLogon: Interactive logon of INSEBRE\homersimpson from P-E9404F66AD824 Returns 0xC000005E
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DS 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33108
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DS 
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33118
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: 
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33138
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33138
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33178
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33208
11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:40 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:40 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:40 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33439
11/26 07:28:40 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:40 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33449
11/26 07:28:40 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:56 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:56 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports.
11/26 07:28:58 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53
11/26 07:28:58 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done.
11/26 07:28:58 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:58 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 
11/26 07:28:58 [MISC] NetpDcGetName: INSEBRE similar query failed recently 321
11/26 07:28:58 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP

turn on USERENV debugging on a client where the script isn't running and see what comes up there. Create a registry key "HKLM\Software\Microsoft\Windows NT\CurrentVersion
\Diagnostics" and under that key, add a REG_DWORD value "RunDiagnosticLoggingGlobal" set to 1. That'll throw massive USERENV logging information into the event log. Set 
that, then bounce the machine with a "gpupdate /sync /boot" and have a look. (My psychic powers say DHCP media sense issues... we'll see. I'm assuming you've set "Always 
wait for the network at computer startup and logon" to "Enabled" already.)

From the DC where you took this netlogon log can you run and post the output from:

dcdiag /test:DNS /v

[CRITICAL] C:\WINDOWS\system32\config\netlogon.ftj: Unable to open. 2

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:

  1. De forma manual des de la línia de comandes (comanda net)
  2. 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
  3. 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

IMPORTANT: 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 obtenir 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

IMPORTANT: És l'opció recomanada

[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)

add machine script millorat amb log

Poseu a /etc/samba/smb.conf

$ cat /etc/samba/smb.conf | grep add
#   add machine script = /usr/sbin/useradd  -c Machine -d /nonexistent -s /bin/false %u
#   add machine script = /usr/sbin/smbldap-useradd -w "%u"
   add machine script = /etc/samba/scripts/machine_add -d -a "%a" -I "%I" -m "%m" -M "%M" -w "%u"     

On /etc/samba/scripts/machine_add

$ cat /etc/samba/scripts/machine_add
#!/bin/bash

set -e

#LOGFILE
#Create it with
# $ sudo touch /var/log/samba/add_machine_log
# $ sudo chmod 644 /var/log/samba/add_machine_log
LOG_FILE="/var/log/samba/add_machine_log"


HOSTNAME=$(hostname)
echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Samba machine add script initiated..." >> $LOG_FILE

while getopts ":w:Uda:I:m:M:" opt; do
  case $opt in
  
    w)
      #echo "-w was triggered, Parameter: $OPTARG" >&2
      WISSET=TRUE
      W=$OPTARG
      ;;
    U)
      #echo "-b was triggered" >&2
      UISSET=TRUE
      U=$OPTARG
      ;;
    d)
      #echo "-d was triggered" >&2
      DISSET=TRUE
      D=$OPTARG
      ;;

    a)
      #echo "-a was triggered" >&2
      AISSET=TRUE
      A=$OPTARG
      ;;

    I)
      #echo "-I was triggered" >&2
      IISSET=TRUE
      I=$OPTARG
      ;;
    m)
      #echo "-m was triggered" >&2
      MISSET=TRUE
      M=$OPTARG
      ;;

    M)
      #echo "-M was triggered" >&2
      MMISSET=TRUE
      MM=$OPTARG
      ;;
    \?)
      echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: invalid option: -$OPTARG..." >> $LOG_FILE
      exit 1
      ;;
    :)
      echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Option -$OPTARG requires an argument." >> $LOG_FILE                     
      exit 2
      ;;
  esac
done

WHOAMI=$(/usr/bin/whoami)
if [ "$DISSET" = "TRUE" ]; then
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: whoami: $WHOAMI" >> $LOG_FILE

        echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]:  =$A" >> $LOG_FILE
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's architecture =$A" >> $LOG_FILE
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's IP address I =$I" >> $LOG_FILE
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's NetBIOS name =$M" >> $LOG_FILE
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's DNS name     =$MM" >> $LOG_FILE
	echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Requested client username =$U" >> $LOG_FILE
fi

[ -f /var/log/samba/add_machine_log ] || (echo "Fatal Error! Log file: $LOG_FILE doesn't exists"; exit 3)

[ -f /usr/sbin/smbldap-useradd ] || (echo "Fatal error! smbldap-useradd doesn't exists .Install smbldap-tools." >> $LOG_FILE; exit 4)

echo "a"

echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]:  Executing /usr/sbin/smbldap-useradd -w \"$W\" where:" >> $LOG_FILE
echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]:   %u: $W" >> $LOG_FILE

echo -n "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: " >> $LOG_FILE

/usr/sbin/smbldap-useradd -w "$W" >> $LOG_FILE

if [ "$?" = "0" ];then
	echo " User added without errors" >> $LOG_FILE
fi

#Client variables
#----------------
#%a	Client's architecture (Samba, WinNT, WfWg, Win95, or UNKNOWN)
#%I	Client's IP address
#%m	Client's NetBIOS name
#%M	Client's DNS name
#User variables
#--------------
#%g	Primary group of %u
#%G	Primary group of %U
#%H	Home directory of %u
#%u	Current Unix username
#%U	Requested client username (not always used by Samba)
#
#Share variables
#---------------
#%p	Automouter's path to the share's root directory, if different from %P
#%P	Current share's root directory
#%S	Current share's name
#
#Server variables
#----------------
#%d	Current server process ID
#%h	Samba server's DNS hostname
#%L	Samba server's NetBIOS name
#%N	Home directory server, from automount map
#%v	Samba version
#
#Miscellaneous variables
#-----------------------
#%R	The SMB protocol level that was negotiated
#%T	The current date and time


# Original script was:
#  add machine script = /usr/sbin/smbldap-useradd -w "%u"


$ sudo tail -f --lines=50 /var/log/samba/add_machine_log

Mar 31 20:16:28 caro [2218]: Samba machine add script initiated...
Mar 31 20:16:28 caro [2218]: whoami: root
Mar 31 20:16:28 caro [2218]:  =WinXP
Mar 31 20:16:28 caro [2218]: Client's architecture =WinXP
Mar 31 20:16:28 caro [2218]: Client's IP address I =192.168.0.249
Mar 31 20:16:28 caro [2218]: Client's NetBIOS name =pc2maninfopro1
Mar 31 20:16:28 caro [2218]: Client's DNS name     =192.168.0.249
Mar 31 20:16:28 caro [2218]: Requested client username =
Mar 31 20:16:28 caro [2218]:  Executing /usr/sbin/smbldap-useradd -w "pc2maninfopro1$" where:
Mar 31 20:16:28 caro [2218]:   %u: pc2maninfopro1$
Mar 31 20:16:28 caro [2218]:  User added without errors

Idees

  • Enviar un correu electrònic (en background per no aturar l'script) a maninfo
  • Tinc la IP del client --> Puc intentar obtenir la MAC:
  • ping + arp
  • Consultar al OCS-Inventory
  • Si tenim la MAC podem fer que a part de crear el compte Ldap posixAccount crei:
  • Objecte IPHost
  • Adreça IP
  • MAC Address
  • Activar DHCP
  • Cal detectar la xarxa que li pertoca (segons la IP)
  • Activar DNS
  • Cal detectar la xarxa que li pertoca (segons la IP)

Que necessito a més per col·locar la màquina a l'espai que li pertoca:

  • Consulta del TAG de OCS?

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:

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:

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ç:

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:

Unir-se al domini per línia d'ordres

Windows

Linux

Per comprovar si estem units al domini:

$ sudo net rpc testjoin
Join to 'CURSICE' is OK

En una màquina no unida a cap domini/grup de treball:

$ sudo net rpc testjoin
Unable to find a suitable server for domain WORKGROUP
Join to domain 'WORKGROUP' is not valid: NT_STATUS_UNSUCCESSFUL

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:

Afegir un client Windows XP al domini

Depurar els errors al afegir una màquina al domini

Es poden utilitzar les Windows Support Tools per tal de afegir-se al domini per línia d'ordre de DOS i poder obtenir més informació (utilitzant /VERBOSE) en cas d'error:

El procés encarregat de trobar un servidor de domini és el Domain Locator Process.

Comprovar els dispositius de xarxa:

C:\ netdiag /v >test.txt

Comprovar que es pot trobar el domini:

C:\Documents and Settings\Administrador>nltest /dsgetdc:INSEBRE
DsGetDcName failed: Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN
$ nslookup servername.childofrootdomain.rootdomain.com
$ nslookup guid._msdcs.rootdomain.com

Podeu provar:

$ ipconfig /registerdns.

Una màquina que ja esta logada tindrà el nom del PDC a:

$ echo %LOGONSERVER%


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:

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:

Scripts Samba

IMPORTANT: Les últimes versions d'aquests fitxers amb actualitzacions i solucions d'errors els podeu trobar al subversion: http://www.iesebre.com/subversion/projectes/samba-scripts_0.1/

Consulteu els següents apartats per a veure uns scripts fets a mida que us permeten millorar certs aspectes de Samba:


Samba_com_a_PDC#Protocol_per_unir-se_al_domini._Depuraci.C3.B3_d.27errors

Protocol per unir-se al domini. Depuració d'errors

Llista de qüestions a comprovar:

  • Firewall: Comproveu que tingueu els ports necessaris oberts del protocols de xarxa de Windows/Samba (137 i 138 UDP i 445 TCP)
  • Script add machine script: Es pot modificar per intentar depurar-lo.
  • Ens cas d'utilitzar Ldap cal comprovar que la configuració de
  • En cas de problemes es pot activar el log, el log és per màquina a vegades no és útil, es pot indicar un fitxer de log general. NO sembla que sigui gaire útil activar el log més allà del nivell3
  • Cal tenir un usuari amb privilegies i Domain admin, per defecte es genera el root però es poden crear més. Consulteu privilegis Samba.

Un exemple d'error al log:

failed to perform search; No such object at /usr/share/perl5/smbldap_tools.pm line 426.
Error looking for next uid in sambaDomainName=INFOCENTRE,ou=All,dc=santabarbara,dc=com:No such object at /usr/share/perl5/smbldap_tools.pm line 1174.
[2011/04/04 18:35:04.965362,  0] passdb/pdb_interface.c:348(pdb_default_create_user)
  _samr_create_user: Running the command `/etc/samba/scripts/machine_add -d -a "WinXP" -I "192.168.1.202" -m "provaaborrar2" -M "192.168.1.202" -w   
"provaaborrar2$"' gave 127

Amb nivell 2:

[2011/04/04 18:49:29.734231,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:49:29.735892,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:49:29.736228,  2] lib/smbldap.c:950(smbldap_open_connection)
 smbldap_open_connection: connection opened
[2011/04/04 18:49:29.737152,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
 init_sam_from_ldap: Entry found for user: root
[2011/04/04 18:49:29.738397,  2] auth/auth.c:304(check_ntlm_password)
 check_ntlm_password:  authentication for user [root] -> [root] -> [root] succeeded
[2011/04/04 18:49:29.739412,  2] auth/token_util.c:477(create_local_nt_token)
 WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
[2011/04/04 18:49:29.797409,  0] rpc_server/srv_netlog_nt.c:669(_netr_ServerAuthenticate3)
 _netr_ServerAuthenticate: no challenge sent to client PROVAABORRAR2
[2011/04/04 18:49:30.057786,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:49:30.060053,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:49:30.060429,  2] lib/smbldap.c:950(smbldap_open_connection)
  smbldap_open_connection: connection opened
[2011/04/04 18:49:30.061448,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
 init_sam_from_ldap: Entry found for user: root
[2011/04/04 18:49:30.062465,  2] auth/auth.c:304(check_ntlm_password)
 check_ntlm_password:  authentication for user [root] -> [root] -> [root] succeeded
[2011/04/04 18:49:30.063563,  2] auth/token_util.c:477(create_local_nt_token)
  WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
[2011/04/04 18:49:30.125259,  2] rpc_server/srv_samr_nt.c:4124(_samr_LookupDomain)
  Returning domain sid for domain INFOCENTRE -> S-1-5-21-4026095555-2225798725-3806780828
Error: modifications require authentication at /usr/share/perl5/smbldap_tools.pm line 1187.
[2011/04/04 18:49:30.303103,  0] passdb/pdb_interface.c:348(pdb_default_create_user)
  _samr_create_user: Running the command `/etc/samba/scripts/machine_add -d -a "WinXP" -I "192.168.1.202" -m "provaaborrar2" -M "192.168.1.202" -w   
"provaaborrar2$"' gave 127

I ara un log correcte amb nivell 2:

[2011/04/04 18:52:29.372216,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:29.373886,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:29.374108,  2] lib/smbldap.c:950(smbldap_open_connection)
 smbldap_open_connection: connection opened
[2011/04/04 18:52:29.375111,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
 init_sam_from_ldap: Entry found for user: root
[2011/04/04 18:52:29.376460,  2] auth/auth.c:304(check_ntlm_password)
 check_ntlm_password:  authentication for user [root] -> [root] -> [root] succeeded
[2011/04/04 18:52:29.378163,  2] auth/token_util.c:477(create_local_nt_token)
 WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
[2011/04/04 18:52:29.440896,  0] rpc_server/srv_netlog_nt.c:669(_netr_ServerAuthenticate3)
 _netr_ServerAuthenticate: no challenge sent to client PROVAABORRAR2
[2011/04/04 18:52:29.777142,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:29.779518,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
 setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:29.779767,  2] lib/smbldap.c:950(smbldap_open_connection)
 smbldap_open_connection: connection opened
[2011/04/04 18:52:29.780628,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
 init_sam_from_ldap: Entry found for user: root
[2011/04/04 18:52:29.781542,  2] auth/auth.c:304(check_ntlm_password)
 check_ntlm_password:  authentication for user [root] -> [root] -> [root] succeeded
[2011/04/04 18:52:29.782564,  2] auth/token_util.c:477(create_local_nt_token)
  WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
[2011/04/04 18:52:29.856367,  2] rpc_server/srv_samr_nt.c:4124(_samr_LookupDomain)
  Returning domain sid for domain INFOCENTRE -> S-1-5-21-4026095555-2225798725-3806780828
[2011/04/04 18:52:30.087140,  2] lib/smbldap_util.c:277(smbldap_search_domain_info)
  smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=INFOCENTRE))]
[2011/04/04 18:52:30.091225,  2] passdb/pdb_ldap.c:1200(init_ldap_from_sam)
  init_ldap_from_sam: Setting entry for user: PROVAABORRAR2$
[2011/04/04 18:52:30.098502,  2] passdb/pdb_ldap.c:2384(ldapsam_add_sam_account)
  ldapsam_add_sam_account: added: uid == PROVAABORRAR2$ in the LDAP database
[2011/04/04 18:52:30.100457,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: provaaborrar2$
[2011/04/04 18:52:30.102217,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: provaaborrar2$
[2011/04/04 18:52:30.104866,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: provaaborrar2$
[2011/04/04 18:52:30.105084,  2] passdb/pdb_ldap.c:1200(init_ldap_from_sam)
  init_ldap_from_sam: Setting entry for user: provaaborrar2$
[2011/04/04 18:52:30.115184,  2] passdb/pdb_ldap.c:2061(ldapsam_update_sam_account)
  ldapsam_update_sam_account: successfully modified uid = provaaborrar2$ in the LDAP database
[2011/04/04 18:52:30.524160,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:30.526248,  2] smbd/sesssetup.c:1390(setup_new_vc_session)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2011/04/04 18:52:30.526445,  2] lib/smbldap.c:950(smbldap_open_connection)
 smbldap_open_connection: connection opened
[2011/04/04 18:52:30.528338,  2] auth/token_util.c:477(create_local_nt_token)
  WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
[2011/04/04 18:52:30.538920,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: provaaborrar2$
[2011/04/04 18:52:30.540872,  2] passdb/pdb_ldap.c:2446(init_group_from_ldap)
  init_group_from_ldap: Entry found for group: 515
[2011/04/04 18:52:30.545894,  2] auth/token_util.c:477(create_local_nt_token)
  WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?  

En aquest apartat anem a veure en detall els passos que segueixen una estació de treball Windows XP i un servidor Samba com a PDC per tal d'unir la màquina al domini. Treballem amb WINS (la estació de treball té com a servidor WINS el servidor SAmba PDC)

Servidor PDC i servidor Wins a la IP 192.168.1.7, la targeta de xarxa d'aquesta IP és la anomenada infocentre. La estació de treball té la IP 192.168.1.202. El servidor té nom de NETBIOS INFOCENTRESBRB i el domini és INFOCENTRE.

El propi servidor PDC s'ha de registrar com a servidor a WINS, en aquest cas el servidor WINS i el servidor PDC són la mateixa màquina.

Si executeu:

$ sudo tail -f /var/log/samba/log.nmbd

Podreu veure el log en el moment que s'inicia el servidor WINS, forçeu el reinici amb:

$ sudo service smbd restart

El resultat serà quelcom similar a:

nmbd/nmbd.c:71(terminate)
  Got SIGTERM: going down...
[2011/04/04 16:06:09,  0] nmbd/nmbd.c:857(main)
  nmbd version 3.5.4 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2010
[2011/04/04 16:06:09.999727,  0] nmbd/nmbd_logonnames.c:160(add_logon_names)
  add_domain_logon_names:
  Attempting to become logon server for workgroup INFOCENTRE on subnet 192.168.1.7
[2011/04/04 16:06:09.999786,  0] nmbd/nmbd_logonnames.c:160(add_logon_names)
  add_domain_logon_names:
  Attempting to become logon server for workgroup INFOCENTRE on subnet 10.139.29.227
[2011/04/04 16:06:09.999948,  0] nmbd/nmbd_logonnames.c:160(add_logon_names)
  add_domain_logon_names:
 Attempting to become logon server for workgroup INFOCENTRE on subnet UNICAST_SUBNET
[2011/04/04 16:06:09.999994,  0] nmbd/nmbd_become_dmb.c:337(become_domain_master_browser_wins)
  become_domain_master_browser_wins: 
 Attempting to become domain master browser on workgroup INFOCENTRE, subnet UNICAST_SUBNET.
[2011/04/04 16:06:10.000027,  0] nmbd/ nmbd_become_dmb.c:351(become_domain_master_browser_wins)
 become_domain_master_browser_wins: querying WINS server from IP 10.139.29.227 for domain master browser name INFOCENTRE<1b> on workgroup INFOCENTRE
[2011/04/04 16:06:14.007585,  0] nmbd/nmbd_logonnames.c:121(become_logon_server_success)
  become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet 192.168.1.7
[2011/04/04 16:06:14.007653,  0] nmbd/nmbd_logonnames.c:121(become_logon_server_success)
 become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet 10.139.29.227
[2011/04/04 16:06:15.009029,  0] nmbd/nmbd_logonnames.c:121(become_logon_server_success)
  become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet UNICAST_SUBNET
[2011/04/04 16:06:15.009296,  0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2)
 *****
 
 Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet UNICAST_SUBNET
 
 *****
[2011/04/04 16:06:15.009341,  0] nmbd/nmbd_become_dmb.c:292(become_domain_master_browser_bcast)
  become_domain_master_browser_bcast:
 Attempting to become domain master browser on workgroup INFOCENTRE on subnet 192.168.1.7
[2011/04/04 16:06:15.009363,  0] nmbd/nmbd_become_dmb.c:305(become_domain_master_browser_bcast)
  become_domain_master_browser_bcast: querying subnet 192.168.1.7 for domain master browser on workgroup INFOCENTRE
[2011/04/04 16:06:15.009404,  0] nmbd/nmbd_become_dmb.c:292(become_domain_master_browser_bcast)
  become_domain_master_browser_bcast:
  Attempting to become domain master browser on workgroup INFOCENTRE on subnet 10.139.29.227
[2011/04/04 16:06:15.009428,  0] nmbd/nmbd_become_dmb.c:305(become_domain_master_browser_bcast)
  become_domain_master_browser_bcast: querying subnet 10.139.29.227 for domain master browser on workgroup INFOCENTRE
[2011/04/04 16:06:23.018876,  0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2)
 *****
 
 Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet 192.168.1.7
 
 *****
[2011/04/04 16:06:23.018935,  0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2)
 *****
 
 Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet 10.139.29.227
 
 *****
[2011/04/04 16:06:31.028454,  0] nmbd/nmbd_become_lmb.c:395(become_local_master_stage2)
 *****
 
 Samba name server INFOCENTRESBRB is now a local master browser for workgroup INFOCENTRE on subnet 192.168.1.7
 
 *****
[2011/04/04 16:06:31.028637,  0] nmbd/nmbd_become_lmb.c:395(become_local_master_stage2)
 *****
 
 Samba name server INFOCENTRESBRB is now a local master browser for workgroup INFOCENTRE on subnet 10.139.29.227
 
 *****

Si tot és correcte el resultat ha de ser que a la base de dades WINS ha d'haver-hi les següents entrades:

$ cat /var/lib/samba/wins.dat | grep INFOCENTRE
"INFOCENTRE#1e" 1302185170 0.0.0.0 e4R
"INFOCENTRESBRB#00" 1302185175 192.168.1.7 10.139.29.227 66R
"INFOCENTRESBRB#03" 1302185175 192.168.1.7 10.139.29.227 66R
"INFOCENTRE#1b" 1302185175 192.168.1.7 10.139.29.227 64R
"INFOCENTRE#00" 1302185170 0.0.0.0 e4R
"INFOCENTRESBRB#20" 1302185175 192.168.1.7 10.139.29.227 66R
"INFOCENTRE#1c" 1302185170 192.168.1.7 10.139.29.227 e4R

Fixeu-vos sobretot en l'última entrada que registra que el servidor PDC està a la màquina 192.168.1.7.

Vegem un exemple en que no es troba servidor PDC del domini

$ sudo tcpdump -ni infocentre
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on infocentre, link-type EN10MB (Ethernet), capture size 65535 bytes
...
15:33:20.687038 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST
15:33:20.687177 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): REGISTRATION; POSITIVE; RESPONSE; UNICAST
15:33:20.688829 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): RELEASE; REQUEST; UNICAST
15:33:20.688874 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): RELEASE; POSITIVE; RESPONSE; UNICAST
15:33:20.697451 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
15:33:20.697482 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): QUERY; NEGATIVE; RESPONSE; UNICAST
15:33:20.713128 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
15:33:21.466136 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
15:33:22.215248 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST

El primer que fa la màquina és registrar-se, és a dir posar a la base de dades centralitzada WINS el seu nom de màquina:

Consulteu el fitxer /var/lib/samba/wins.dat:

$ cat /var/lib/samba/wins.dat

Abans d'intentar unir la màquina al domini.

NOTA: Pot ser que la màquina ja estigues registrada, el millor que podeu fer és canviar-li el nom just abans de intentar unir-la al domini

Les línies on es veu el registre són:

15:33:20.687038 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST
15:33:20.687177 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): REGISTRATION; POSITIVE; RESPONSE; UNICAST
15:33:20.688829 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): RELEASE; REQUEST; UNICAST
15:33:20.688874 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): RELEASE; POSITIVE; RESPONSE; UNICAST

Observeu que tot és correcte (respostes POSITIVE).

Després es consulta pel servidor PDC:

15:33:20.697451 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
15:33:20.697482 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): QUERY; NEGATIVE; RESPONSE; UNICAST

Com la resposta és negativa es fa la pregunta per broadcast a tot el segment de xarxa:

15:33:20.713128 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
15:33:21.466136 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
15:33:22.215248 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST

Si el servidor PDC està al mateix segment de xarxa ell mateix podria respondre a la consulta. El mateix, però amb una mica més d'informació podeu obtenir si feu la captura amb wireshark:

WiresharkCapturaAfegirseADomini.png

Al detall podeu veure que l'error és dona per què s'està preguntant pel domini incorrecte!: INSEBRE!

WiresharkCapturaAfegirseADomini1.png

Solució de problemes. TroubleShooting

Domini no disponible. Domain unavailable

Cal tenir en compte que els usuaris que prèviament havien iniciat sessió a l'ordinador local estan "cachejats" i entraran igualment:

http://support.microsoft.com/default.aspx?scid=KB;EN-US;q172931

Recursos:

Problemes amb NAT

Els protocols de Windows i el NAT no són gaire amics:

TODO

PDC o BDC amb múltiples interfícies. Comprovar que es pot fer ping des de totes les xarxes a totes les interfícies. rp_filter

Els clients Windows al fer una petició de WINS poden tenir com a resposta múltiples adreces IP per a aquells servidors samba que tenen múltiples adreces IP. Quina adreça escollirà el client és un misteri o no és previsible a priori. Per tant, cal que els clients tinguin accés a totes les adreces IP sense problemes. Això implica tenir bé les rutes i també vigilar amb el paràmetre rp_filter, tant al servidor Samba com a qualsevol router que estigui entre el client i el DC.

Vegeu rp_filter per tal de desconfigurar aquesta opció.

Els usuaris no són administradors locals tot i pertànyer al grup Administrators

Lo important no és pertanyer al "nom" del grup sinó el SID del grup. En el meu cas era un problema provocat pel Gosa, que al moure de lloc els grups de domini es hi perd el SID!. A:

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

El camp SID estava amb:

-514

Cal posar:

S-1-5-32-544 

Hi ha una sèrie de SIDS ben coneguts i que són per defecte (al igual que en Unix el root sempre té el UID 0). Consulteu:

http://support.microsoft.com/kb/243330

DNS name not exists

Si esteu treballant amb Samba realment el que voleu es treballar amb WINS i no pas amb DNS. Comproveu el següent:

  • Comproveu el servidor de WINS amb l'ordre ipconfig /All: el podeu establir per DHCP o manualment a les propietats avançades de TCP/IP. Per defecte també se us hauria d'activar netbios over TCP/IP però podeu provar d'activar-lo a mà.
  • WINS i NAT no es porten gens be. Comproveu que l'accés al servidor WINS no es faci a través de NAT, per exemple si treballeu amb màquina virtual vigileu que per defecte la connexió es fa en NAT (ti teniu un IP de tipus 10.x.x.x segurament esteu en NAT)

Desplegable de "Connecta't a" es queda buscant el domini

"Un cop unit al domini, en reiniciar l'equip i provar de fer el login, el desplegable del domini es queda buscant i al final no troba cap doimi"

Cal assegurar-nos, amb l'ús de l'Apache Directoty Studio, que els valors del gid Number i uidNumber, de la configuració del domini, no estiguin entrant en conflicte amb els uid's dels usuaris locals. Per tal d'evitar-ho, a la carpeta sambaDomainName canviar el valor d'aquests paràmetres per de 2000 (es pot posar un altre, depén del centre. El canvi es fa amb l'APDS, i loa carpeta hauria d'estar dins de ou=All)

Network is not installed or properly configured

"La xarxa no esta instal·lada o no esta configurada correctament"

I was able to fix the problem by removing and re-installing the machine's Client for Microsoft Networks, as follows:

  • From the Control Panel, open Network Connections.
  • Right-click on my active Local Area Network connection and choose Properties.
  • In the Local Area Connection Properties dialog, select Client for Microsoft Networks, then click Uninstall. Close the dialog and reboot when prompted.
  • After rebooting, bring up the Local Area Connection Properties again.
  • Re-install the Client for Microsoft Networks by clicking the Install button, selecting Client from the Select Network Component Type dialog, then selecting Client for Microsoft Networks from the Select Network Client dialog. Click OK all the way back out, then reboot the machine once more when prompted.

Assignar el mateix SSID a servidor PDC i al domini

$ sudo net getdomainsid

Apunteu el SSID que us doni per al domini i assigneu-lo localment al PDC:

$ sudo net setlocalsid S-1-5-21-1539791675-2192341285-2760677840

Canviar la paraula de pas de root

Si no teniu Ldap utilitzeu:

$ smbpasswd

Si teniu Ldap podeu utilitzar:

$ smbldap-passwd

Els usuaris de domini entren sense paraula de pas tot i haver-ne posat una. Gosa i Ldap

En el meu cas passava per estar utilitzant la creació automàtica de Homes a Samba:

Samba#Crear_Home_i_profiles_a_la_primera_connexi.C3.B3

però sense la creació automàtica de homes a Linux:

PAM#Crear_la_home_de_l.27usuari_durant_el_primer_login

NOTA: L'efecte era curiós per què l'usuari i la paraula de pas eren correctes per a Unix però no funcionava a Windows/Samba (només entrava senes paraula de pas). Al entrar un primer cop com a usuaris Linux ja passava a funcionar...

WARNING: Short packet. Try increasing the snap length

When troubleshooting your Samba server with tcpdump, available at http://www.tcpdump.org, the best use is something like:

tcpdump −ln −vv host 192.168.1.1 | tee tcpdump.samba

While analyzing your data, you may come across an error message similar to: WARNING: Short packet. Try increasing the snap length

This actually has nothing to do with Samba, however it comes up a lot. It's tcpdump itself complaining about snaplen (−s <number>) being shorter than at least one packet during its capture. Again, it has nothing to do with Samba; it's harmless and can be ignored.

Extret de:

Error: El dominio no està disponible. Pantalla de login

S'ha produit l'error següent a l'intentar unir-se al domini XXXX El dominio no existe o no se puede establecer comunicacion con el

Consulteu els fitxers de log de Windows:

C:\WINDOWS\Debug\NetSetup.log

Al fitxer:

C:\WINDOWS\Debug\NetSetup.log.

Busqueu la línia:

NetpDoDomainJoin: status: CODI_RETORN

On si tot ha anat bé el codi de retorn a de ser 0x00, sinó us dona el codi d'error. Per exemple:

... NetpDsGetDcName: trying to find DC in domain 'INSEBRE', flags: 0x1020
01/08 09:33:33 NetpDsGetDcName: failed to find a DC in the specified domain: 0x54b
01/08 09:33:33 NetpDoDomainJoin: status: 0x54

Consulteu també:

#Comprovacions i TroubleShooting al afegir una màquina al domini

Recursos:

Comprovacions i TroubleShooting al afegir una màquina al domini

Tallafocs

Per identificar si el problema que tenim al intentar afegir una màquina al domini és culpa del firewall l'interessant és desconnectar-los temporalment. Si al desconnectar funciona ja sabeu que el firewall és la causa de l'error.

Al servidor Samba si teniu un firewall heu d'obrir els ports de Netbios:

$ cat /etc/services | grep NETBIOS
netbios-ns	137/tcp				# NETBIOS Name Service
netbios-dgm	138/tcp				# NETBIOS Datagram Service
netbios-ssn	139/tcp				# NETBIOS session service

I CIFS:

$ cat /etc/services | grep CIFS
microsoft-ds	445/tcp				# Microsoft Naked CIFS

Als clients Windows el firewall activat també podria ser un problema per afegir la màquina al domini.

Eines de diagnostic de Windows:

Podeu utilitzar dcdiag i netdiag. Els podeu trobar al CD de Windows XP Professional (jo he provat amb SP3), formen part de Windows Support Tools els trobareu a la carpeta del CD:

D:\SUPPORT\TOOLS

Executeu el fitxer setup.exe per instal·lar les Support Tools amb un assistent (wizard).

Altres enllaços (a mi no m'ha funciona bé dcdiag amb aquest enllaç)

http://download.microsoft.com/download/win2000platform/update/5.0.2195.2103/nt5/en-us/dcdiag_setup.exe
http://download.microsoft.com/download/win2000platform/update/5.0.2195.2101/nt5/en-us/netdiag_setup.exe

No troba el domini:

Consulteu:

Comprovar WINS i resol·lució de noms:

Comproveu el sufix de netbios 1B (Indica quin és el Domain Master Browser) per al nom del domini:

$ nmblookup -R -U 192.168.0.8 INSEBRE#1B
querying INSEBRE on 192.168.0.8
192.168.0.8 INSEBRE<1b>
172.16.0.3 INSEBRE<1b>

On

-U SERVIDOR_WINS

Ara comproveu el sufix de netbios 1C que us ha de mostrar tots els DC (registre de grup):

$ nmblookup -R -U 192.168.0.8 INSEBRE#1C
querying INSEBRE on 192.168.0.8
192.168.0.8 INSEBRE<1c>
192.168.0.6 INSEBRE<1c>
192.168.0.3 INSEBRE<1c>
192.168.30.3 INSEBRE<1c>
192.168.20.3 INSEBRE<1c>
172.16.0.3 INSEBRE<1c>

A l'exemple anterior hi ha 3 servidors possibles (amb dos IP cadascun).

Si no teniu WINS l'intent de resoldre el nom de domini es farà per broadcast:

$ nmblookup -M INSEBRE
querying INSEBRE on 192.168.111.255
querying INSEBRE on 10.36.253.31
name_query failed to find name INSEBRE#1d

A l'exemple anterior el DC no està al mateix segment de xarxa.

Comprovar que tot és correcte:

Suposem un domini amb les comptes d'usuari a Ldap. Al afegir una màquina al domini, s'ha de crear un compte de Linux equivalent al servidor PDC:

$ sudo getent passwd | grep "\\$" | more
pc0depciencies$:*:3064:515:Computer:/dev/null:/bin/false
pc1depciencies$:*:3065:515:Computer:/dev/null:/bin/false
pc2depciencies$:*:3066:515:Computer:/dev/null:/bin/false
pc3depciencies$:*:3067:515:Computer:/dev/null:/bin/false
pc0depedifobra$:*:3070:515:Computer:/dev/null:/bin/false

Haurien de ser comptes de Ldap, no locals!

$ sudo cat /etc/passwd | grep "\\$"

Ha de tornar res.

Si utilitzeu Gosa les màquines les trobareu a algun lloc similar a:

ou=Computers,dc=iesebre,dc=com

Els objectes LDAP Computer són similars a:

version: 1

dn: uid=a10cano$,ou=Computers,dc=iesebre,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: a10cano$
gidNumber: 515
homeDirectory: /dev/null
sambaSID: S-1-5-21-4045161930-1404234508-1517741366-1194
uid: a10cano$
uidNumber: 3443
description: Computer
displayName: A10CANO$
gecos: Computer
loginShell: /bin/false
sambaAcctFlags: [W          ]
sambaNTPassword: 09B737AD270EA0539A66CD0D7B4FB4B4
sambaPwdLastSet: 1285228280

Client Windows:

  • Comprovar el registre d'esdeveniments de Windows (EventLog): Inici -> Mi PC -> Botó dret -> Administrar -> Visor de succesos

NetpDsGetDcName: failed to find a DC in the specified domain: 0x54b (Fitxer C:\WINDOWS\Debug\Netsetup)

Per tenir més informació, des de DOS executeu:

C:\Archivos de programa\Support Tools>nltest /dsgetdc:INSEBRE
           DC: \\LINUX
      Address: \\LINUX
     Dom Name: INSEBRE
The command completed successfully

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

ErrorPerfils.png

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.

Vegeu també

Enllaços externs

Superscript text