Samba 4 com a controlador de domini (DC)
Introducció
Un dels rols més importants que pot fer un servidor Samba és actuar com a controlador primari de domini de forma similar al Active Directory de Windows.
En aquesta tema, veurem la configuració d’un servidor Samba com a controlador primari de domini en un domini heterogeni.
És a dir, un domini on s’autenticaran i compartiran recursos màquines Windows i GNU/Linux.
Samba 4
Active Directory és la característica més important alhora de decantar-se per Windows Server com a Sistema Operatiu en Xarxa.
El conjunt de serveis i utilitats que ofereix per la gestió dels usuaris i equips permet ser molt productiva especialment en clients Windows.
Entre les principals millores de la versió 4 de Samba cal destacar el suport a Microsoft Active Directory que permet la implementació d’un Controlador de Domini basat en Active Directory.
Aquest fet suposa un millora molt atractiva ja que permet a moltes organitzacions estalviar diners en la compra de llicències Microsoft Windows Server i utilitzar Samba com a controlador de domini.
Conceptes previs
Abans de començar cal saber que el servei d'Active Directory (AD) necessita d'altres serveis per funcionar correctament.
Quan instal·lem un controlador de domini en un Windows Server, aquests serveis ja estan instal·lats o s'instal·len de forma automàtica, però en Linux s'ha de fer manualment.
Primer de tot, el programa que ens proporcionarà el servei d'AD per Linux és el Samba, però ha de ser com a mínim la versió 4.
I els serveis que necessita Samba per fer de servidor d'AD són els següents:
Servei DNS: permet obtenir informació sobre els objectes del domini a partir del seu nom dins del domini (per exemple, l'adreça IP d'una màquina a partir del seu nom). En un cas senzill com el nostre, el mateix Samba farà de servidor DNS.
Servei Kerberos: és un protocol d'autenticació entre ordinadors d'una xarxa perquè tant el client com el servidor puguin comprovar de forma fiable la identitat de l'altre.
Servei NTP: serveix per sincronitzar els rellotges de les màquines del domini amb precisió. Kerberos, per defecte, no accepta errors de més de 5 minuts entre el servidor i el client que està validant.
Resum de passos a seguir
Configurar el nom DNS del servidor en l'arxiu
/etc/hosts
.Instal·lar el servei Samba.
Crear el domini Samba.
Instal·lar Kerberos.
Instal·lar el servei NTP.
Configuració inicial
Canviar el nom de l'equip
El nom de l'equip Ubuntu Server ha de ser usxxx (xxx són les teves inicials):
Per canviar el nom d'una màquina Linux, cal fer-ho en els arxius /etc/hostname
i /etc/hosts
i reiniciar el sistema.
Configurar el nom DNS del servidor
En l'arxiu /etc/hosts
, afegir el nom DNS del servidor davant del nom de la màquina:
Instal·lació de Samba 4
Samba 4 s'instal·la amb la comanda:
sudo apt-get install samba smbclient winbind
Un cop instal·lat, podem comprovar que tenim instal·lada la versió 4 executant la comanda:
A continuació, fem un còpia de l'arxiu de configuració de Samba /etc/samba/smb.conf
per conservar-lo ja que el procés de creació del domini crearà un arxiu nou.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Creació d'un domini amb Samba
Un cop tenim instal·lat Samba, podem promoure l'equip com a controlador de domini Samba que actua com un substitut complet d'un servidor de domini de Active Directory.
Crearem el domini utilitzant la comanda.
sudo samba-tool domain provision --use-rfc2307 --interactive
Les dades que cal introduir són les següents (es pot confirmar l'opció per defecte amb la tecla Intro):
Realm (Nom del domini): SAMBAXXX.LOCAL (tot en majúscules) (XXX són les teves inicials)
Domain (Nom NetBIOS del domini): SAMBAXXX
Server Role (Funció de Samba): dc (controlador de domini)
DNS backend (Servidor DNS): SAMBA_INTERNAL (els sevidor DNS serà el propi Samba).
DNS forwarder IP address (Reenviador de DNS): 8.8.8.8 (servidor DNS al que es preguntarà quan no es pugui resoldre un nom, posem el de Google, el del centre o un altre servidor extern).
Administrator password (Contrasenya per l'usuari Administrator): ****** (ha de complir els criteris de complexitat de Windows)
Si el procés s'ha realitzat correctament, ens apareixerà un missatge domant informació del domini creat.
Si es produeix un algun error en la creació del domini, cal esborrar l'arxiu de configuració de Samba.
sudo rm /etc/samba/smb.conf
I tornar a crear el domini amb la comanda anterior.
sudo samba-tool domain provision --use-rfc2307 --interactive --use-ntvfs
Canviar l'arxiu de configuració de Kerberos
Samba també generarà un arxiu de configuració per Kerberos adequat a la configuració del domini.
L'únic que cal fer és copiar l'arxiu de configuració a la carpeta correcta:
Canviar la configuració de xarxa relacionada amb el servei DNS
Finalment, i molt important, cal fer que el servidor s'apunti a sí mateix com a servidor DNS (recordeu que un controlador de domini de Active Directory utilitza el servei DNS).
Així doncs, canviem la configuració de la xarxa editant l'arxiu /etc/network/interfaces
per indicar com a primer servidor DNS el propi equip.
La segona línia dns-search sambaxxx.local
serveix per facilitar les cerques dins del domini.
Per exemple, en lloc d'haver d'escriure la comanda
nslookup usxxx.sambaxxx.local
per obtenir l'adreça del servidor, n'hi haurà prou posantnslookup usxxx
.
Per actualitzar tots els serveis que s'han configurat, el més fàcil és reiniciar el servidor:
sudo reboot
Comprovació del servei Samba com a controlador de domini
Comprovació que el servei Samba està funcionant
Si Samba no està funcionant, es pot mirar l'arxiu de registre de Samba /var/log/samba/log.samba
per saber el motiu.
Comprovació que Samba resol correctament els DNS necessaris
Perquè Samba funcioni correctament és necessari que els servidor DNS associat també funcioni.
Per tant, comprovem que el servei DNS funciona correctament comprovant si el servei ldap i el servidor es resolen a través del servei de noms DNS.
Recordeu que usxxx
ha de ser el nom del vostre servidor i sambaxxx
el nom del vostre domini.
Comprovació del servidor de fitxers
Per llistar tots els recursos compartits del controlador de domini (DC) executa:
Us hauria de sortir dos recursos de Windows (netlogon, sysvol) que s'han compartit.
Alerta: Si al fer smbclient -L localhost -U%
et surt un error que diu:
session setup failed: NT_STATUS_OBJECT_NAME_NOT_FOUND
És necessari que instal·lis el paquet winbind
sudo apt-get install winbind
Instal·lació del client de Kerberos
Kerberos és un dels protocols d'autenticació entre ordinadors d'una xarxa perquè tant el client com el servidor puguin comprovar de forma fiable la identitat de l'altre. És un dels protocols utilitzat pel Active Directory de Windows.
Instal·larem els client kerberos al sevidor per poder comprovar si funciona correctament aquest servei crític pel Active Directory.
sudo apt-get install krb5-user
En el procés d'instal·lació ens demana el nom del Real, on cal introduir el que hem utilitzat per el nostre domini SAMBAXXX.LOCAL . Molt important en MAJÚSCULES!!
Finalment, fem la comprovació del servei kerberos.
kinit administrator@SAMBAXXX.LOCAL
Recorda que l'usuari administrador de Samba es diu administrator i vam assignar-li una contrasenya durant la creació del domini.
Si tot va bé, Kinit
ens respon amb la data i hora que caducarà la contrasenya que acaben d'introduir.
També podem utilitzar la comanda klist
per consultar les autenticacions que hi ha guardades actualment a la caché de Kerberos.
Si et cal reconfigurar els kerberos, utilitza la comanda.
dpkg-reconfigure krb5-config
Instal·lació del servei NTP (Network Time Protocol)
El servei NTP serveix per sincronitzar el rellotge intern del sistema amb algun servidor horari disponible a Internet.
En el nostre cas, l'utilitzarem per sincronitzar els rellotges de les màquines del domini amb precisió ja que el funcionament de Kerberos, per defecte, no accepta errors de més de 5 minuts entre el servidor i el client que està validant.
Així doncs, cal instal·lar el paquet ntp.
ATENCIÓ: un cop units els clients al domini, si alguna vegada dóna error de validació d'usuaris (fins i tot amb l'administrador), és possible que sigui degut a què la data i/o l'hora siguin diferents en el client i en el servidor. Un dels motius de què passi això és que s'hagi configurat incorrectament la zona horària d'alguna de les màquines. Si el problema es troba en el servidor Linux, es pot corregir amb la comanda
sudo dpkg-reconfigure tzdata
.
Unir client Windows al domini Samba
Es fa de la mateixa forma que per unir-lo a un domini Windows:
Si el client està unit a un domini, primer cal desconnectar-lo del domini i reiniciar.
A la configuració de xarxa, canviar els servidors DNS posant com a DNS principal la IP del servidor de domini.
Connectar-lo al nou domini: Panel de control > Sistema > Cambiar configuración > Dominio
Caldrà posar el nom del domini (SAMBAXXX o sambaxxx.local) i quan demani un usuari, s'ha de posar Administrator, que és l'usuari administrador del domini fet amb Samba.
Possibles errors
Al fer:
kinit administrator@SAMBAXXX.LOCAL
em surt l'error:
Edit file /etc/krb5.conf
and update it to actively specify older cryptos:
Documentació i recursos
Última actualización