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

NOTA: Primer de tot cal aclarir que de moment (1/04/2008) Samba pot fer de BDC d'un altre servidor PDC Samba però no d'un servidor PDC Windows

La raó per la qual Samba no suporta ser un BDC d'un PDC de Windows és que les especificacions del protocol de comunicacions entre un PDC i un BDC Windows no estan alliberades. Potser a partir de La recepció de la documentació del protocols de Windows a l'equip de Samba en futures versions de Samba es pugui implementar aquesta funcionalitat. La recepció d'aquesta documentació és gràcies al requeriment (i multa) de la Comissió Europea per tal que Windows aporti informació tècnica als seus competidors.

Avantatges

El fet de tenir un o més BDC en un domini permet millorar la disponibilitat del sistema i la seva escal.labilitat. En una xarxa amb molts clients de domini un sol servidor PDC on s'autentiquin tots els clients pot ser el coll de botella de la xarxa.

La següent raó per tenir un BDC pot ser per disseny de la xarxa. El BDC es pot trobar més a prop dels clients que pertanyen al domini i així es pot evitar tràfic de xarxa.

Implementacions

El següent quadre mostra les possibles combinacions de PDC-BDC amb Samba:

SambaComABDC.png

NOTA: Com podeu observar l'únic backend recomanable és Ldap.

Amb Ldap podem fer les següent configuracions:

  • PDC+BDC -> Un sol servidor Ldap
  • PDC -> LDAP master server i BDC -> LDAP slave server
  • PDC -> LDAP master i un servidor Ldap esclau i BDC -> LDAP master i un servidor LDAP esclau
  • PDC -> LDAP master i un servidor Ldap esclau i BDC -> LDAP esclau i un servidor LDAP principal.

Podeu consultar l'apartat Samba amb Ldap per tenir més detall sobre com funciona Samba amb Ldap.

Un servidor Samba pot utilitzar més d'un servidor Ldap amb la següent configuració del paràmetre passdb backend al fitxer smb.conf:

passdb backend = ldapsam:"ldap://master.quenya.org ldap://slave.quenya.org"

Com funciona?

El PDC conté la còpia master de la base de dades SAM. En el cas que l'administrador vulgui modificar la informació de la base de dades SAM ens podem trobar en dos opcions:

  • La modificació és fa en una zona del domini associada al PDC. Aleshores es modifica directament el fitxers de SAM i són replicats als BDC
  • La modificació és fa en una zona del domini associada al o als BDC: No es modificar directament el fitxer SAM. Al BDC es genera un fitxer anomenat fitxer delta que conté les diferències entre el SAM original i el modificat. Aleshores el BDC avisa el PDC per començar un procés de sincronització. Un cop sincronitzat el PDC inicia un procés de sincornització amb la resta de BDC (en el cas que ni hagin més)

Un servidor Samba de la versió 3 no pot ser un BDC d'un PDC Windows per què no és capaç de generar els fitxers delta que generen els BDC de Windows. Samba-3 cannot participate in true SAM replication and is therefore not able to employ precisely the same protocols used by MS Windows NT4. A Samba-3 BDC will not create SAM update delta files. It will not interoperate with a PDC (NT4 or Samba) to synchronize the SAM from delta files that are held by BDCs.

El BDC realment conté una còpia de només lectura de la base de dades SAM. El BDC pot utilitzar aquesta còpia per gestionar les peticions de logon del domini. El BDC pot continuar funcionant tot i que el PDC hagi caigut i per tant té dos funcions: augmentar la escal·labilitat del sistema i augmentar la disponibilitat i la integritat de la xarxa.

En el cas que un servidor PDC deixi de funcionar es pot promoure un servidor BDC de la xarxa per passar a ser el PDC. En Windows s'utilitza una eina anomenada Server Manager for Domains. Amb Samba aquesta promoció es fa modificant la configuració de Samba (fitxer smb.conf).

Com s'implementa amb Samba?

Els passos per convetir un servidor Samba en un BDC són:

  • El SID del domini ha de ser el mateix que el del servidor principal (PDC). En versions de Samba 2.2.5 o prèvies el SID del domini es guarda al fitxer private/MACHINE.SID. En versions posteriors aquesta informació es guarda al fitxer private/secrets.tdb. Aquest fitxer és únic per a cada servidor i no es pot copiar des del PDC al BDC. Per tenir el mateix SID cal seguir les següents passes:
  • Obtenir el SID del PDC executant al PDC o una màquina del domini:
$ sudo net rpc getsid
Password:
Storing SID S-1-5-21-1708324648-3902790046-514691925 for Domain AULALINUX in secrets.tdb

O alternativament:

$ sudo net getlocalsid AULALINUX
  • Cal especificar en el BDC el Nom distingit (distinguished name o dn) de l'administrador de Ldap. També es necessari especificar la contrasenya de l'administrador de Ldap amb:
$ sudo smbpasswd -w parauladepas

La paraula de pas de l'administrador de Ldap també es guarda al fitxer secrets.tdb

  • Cal especificar els sufix de ldap i el idmap de ldap al fitxer smb.conf
  • La base de dades d'usuaris de Unix s'ha de sincronitzar des del PDC fins al BDC. Això implica que tant el fitxer /etc/passwd com el /etc/group s'han de replicar del PDC al BDC. Aquesta replicació es pot fer amb una còpia manual. De forma alternativa també es podria utilitzar NIS i que els PDC fos un servidor master de NIS i el BDC un esclau de NIS. L'alternativa però més recomanada és una base de dades Ldap comuna per al PDC i el BDC
  • La base de dades de contrasenyes de Samba s'ha de sincronitzar del PDC al BDC. L'única manera factible de fer això és utilitzar un servidor Ldap esclau per cada BDC i un servidor master de Ldap per al PDC.
  • Si tant els usuaris de Unix com els de Samba utilitzant Ldap, aleshores podem estar segurs que tota la informació de comptes, tant de Unix com de Samba es troben sincronitzades
  • El recurs compartit netlogon ha de ser replicat del PDC al BDC. Això es pot fer manualment cada cop que els scripts de login es modifiquin o es pot fer automàticament utilitzant cron que faci la replicació automàticament amb alguna eina com rsync amb ssh. Altres alternatives més avançades poden ser utilitzar un sistema de fitxers en cluster o utilitzar un recurs remot compartit (p. ex. NFS)

Exemple bàsic de configuració

Un petit extracte de les variables que són importants:

workgroup = MIDEARTH
passdb backend = ldapsam:ldap://slave-ldap.quenya.org
domain master = no
domain logons = yes
ldap suffix = dc=abmas,dc=biz
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=sambadmin,dc=quenya,dc=org
idmap backend = ldap:ldap://master-ldap.quenya.org
idmap uid = 10000-20000
idmap gid = 10000-20000

En resum el PDC i el BDC han d'estar configurats de la mateixa manera excepte en les següents variables:

netbios name Normalment les màquines tindran diferent nom
server string Normalment les màquines tindran diferent nom
domain master Aquesta és l'opció que marca la diferència entre un PDC i un BDC
wins support i wins server. Només un dels servidors pot ser un servidor WINS. Normalment el PDC és el servidor WINS i els altres BDC utilitzant el PDC com a WINS

També pot haver diferències en els recursos (carpetes) compartides. Vegeu també:

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

Configurar els PDC i BDC per compartir els fitxers de logong via NFS

Consulteu NFS#Exemple_de_com_compartir_els_fitxers_de_netlogon_entre_el_PDC_i_els_BDC

Qüestions a tenir en compte

Sembla ser que a priori no es pot determinar quin servidor PDC escolliran les estacions de treball per tal de fer l'operació de logon, i per tant cal tenir el fitxer de logon de la mateixa manera a cada servidor.

$ cat /var/lib/samba/wins.dat | grep IESDELTEBRE
"IESDELTEBRE#1c" 1346182810 192.168.50.41 192.168.50.42 192.168.110.2 e4R

Al servidor WINS es registren tots els servidors i les múltiples adreces Ip que tinguin (sí és el cas).

Vegeu també

Enllaços externs