Cicle formatiu: Sistemes Microinformàtics i Xarxes (SMX)
Mòdul: 0224 — Sistemes operatius en xarxa
Sistema operatiu: Ubuntu Server 26.04 LTS
Samba és una implementació de codi obert del protocol SMB/CIFS que permet la interoperabilitat entre sistemes Linux/Unix i Windows. Des de la versió 4.0, Samba incorpora la funcionalitat de Active Directory Domain Controller (AD-DC), que permet desplegar un controlador de domini plenament compatible amb l’ecosistema Microsoft Active Directory.
Active Directory (AD) és un servei de directori desenvolupat per Microsoft que proporciona:
| Característica | Samba AD-DC | Windows Server AD |
|---|---|---|
| Llicència | Lliure (GPLv3) | Propietari |
| Cost | Gratuït | Llicència de pagament |
| Compatibilitat | Alta (AD-compatible) | Nativa |
| Rendiment | Excel·lent | Excel·lent |
| Gestió | Línia d’ordres / RSAT | GUI / PowerShell |
| Suport GPO complet | Parcial | Complet |
Samba AD-DC és àmpliament utilitzat en entorns educatius i empresarials que volen aprofitar la infraestructura Active Directory sense el cost de les llicències Microsoft.
| Protocol | Port | Funció |
|---|---|---|
| DNS | 53 TCP/UDP | Resolució de noms del domini |
| Kerberos | 88 TCP/UDP | Autenticació segura |
| LDAP | 389 TCP/UDP | Accés al directori |
| LDAPS | 636 TCP | LDAP sobre TLS |
| SMB | 445 TCP | Comparticions de fitxers |
| RPC | 135 TCP | Crida a procediments remots |
| NetBIOS | 137-139 TCP/UDP | Compatibilitat llegada |
| Global Catalog | 3268-3269 TCP | Catàleg global AD |
| Terme | Definició |
|---|---|
| Domini | Conjunt d’equips i usuaris administrats centralment |
| DC (Domain Controller) | Servidor que gestiona el domini |
| AD-DC | Domain Controller compatible amb Active Directory |
| FQDN | Nom de domini completament qualificat (ex: dc1.thos.local) |
| NetBIOS | Nom curt del domini (ex: THOS, màx. 15 caràcters) |
| SID | Identificador de seguretat únic per a cada objecte del domini |
| GPO | Objecte de directiva de grup per gestionar configuracions |
| OU | Unitat Organitzativa, contenidor d’objectes AD |
| SYSVOL | Carpeta compartida on es guarden les GPO i scripts de logon |
| NETLOGON | Carpeta compartida per als scripts d’inici de sessió |
| Recurs | Mínim | Recomanat |
|---|---|---|
| CPU | 1 nucli | 2 nuclis |
| RAM | 1 GB | 2 GB o més |
| Disc | 20 GB | 40 GB o més |
| Xarxa | 1 interfície | 1 interfície amb IP estàtica |
| Paràmetre | Valor d’exemple |
|---|---|
| Nom del domini (REALM) | thos.local |
| Nom NetBIOS | THOS |
| FQDN del servidor | dc1.thos.local |
| IP del servidor | 10.0.2.10 |
| Màscara de xarxa | 255.255.255.0 |
| Passward administrador | P@ssw0rd123 (canviar!) |
Substituïu els valors d’exemple pels del vostre entorn real. El
domini .local pot causar conflictes amb mDNS
(Multicast DNS); en producció es recomana usar un subdomini real com ad.empresa.com.
Samba AD-DC requereix una adreça IP estàtica. Editeu la configuració de Netplan:
sudo nano /etc/netplan/00-installer-config.yamlnetwork:
ethernets:
enp0s3:
addresses:
- 10.0.2.10/24
match:
macaddress: 08:00:27:40:ef:70
nameservers:
addresses:
- 127.0.0.1 # El mateix servidor (DNS intern)
- 8.8.8.8 # DNS extern com a reserva
search:
- thos.local
routes:
- to: default
via: 10.0.2.1
set-name: enp0s3
version: 2
Aplica la nova configuració:
sudo netplan applyEstableix el nom curt:
sudo hostnamectl set-hostname dc1Verifica:
hostnameEdita /etc/hosts per afegir l’FQDN:
sudo nano /etc/hosts127.0.0.1 localhost
10.0.2.10 dc1.thos.local dc1
Elimineu o comenteu qualsevol línia 127.0.1.1 que apunti
al nom d’amfitrió, ja que pot causar problemes amb Kerberos.
Verifica la resolució:
hostname -f
# Ha de retornar: dc1.thos.local
ping -c 2 dc1.thos.localKerberos requereix que l’hora del servidor i els clients estigui sincronitzada (tolerància màxima de 5 minuts):
Verifica que el servei de temps està actiu.
sudo systemctl status chronySortida esperada:
● chrony.service - chrony, an NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chrony.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-06-25 07:19:13 UTC; 7min ago
Invocation: b597f541b0ce4c128f09e004d99ba093
Docs: man:chronyd(8)
man:chronyc(1)
man:chrony.conf(5)
Main PID: 1264 (chronyd-starter)
Tasks: 3 (limit: 1718)
Memory: 6.7M (peak: 7.2M)
CPU: 99ms
CGroup: /system.slice/chrony.service
├─1264 /bin/sh /usr/lib/systemd/scripts/chronyd-starter.sh -n -F 1
├─1352 /usr/sbin/chronyd -n -F 1
└─1367 /usr/sbin/chronyd -n -F 1Estableix el fus horari:
sudo timedatectl set-timezone Europe/MadridVerifica:
timedatectlSortida esperada:
Local time: dj. 2026-06-23 09:31:07 CEST
Universal time: dj. 2026-06-23 07:31:07 UTC
RTC time: dj. 2026-06-23 07:31:07
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: noEdita chrony per permetre la sincronització amb les màquines de la xarxa local:
sudo nano /etc/chrony/chrony.confAfegeix aquestes línies al final
allow 10.0.2.0/24
local stratum 10
Reinicia el dimoni
sudo systemctl restart chronyActualitza la llista de paquets
sudo apt updateActualita els paquets
sudo apt upgradesudo apt install samba-ad-dc samba-ad-provision krb5-config \
krb5-user winbind libpam-winbind libnss-winbind \
bind9-dnsutils libpam-krb5 smbclient ldb-tools \
net-tools dnsutils attrDurant la instal·lació, el sistema demanarà el realm de Kerberos. Respostes:
THOS.LOCAL
dc1.thos.local
dc1.thos.local
Abans d’aprovisionar el domini, cal aturar els serveis de Samba per defecte:
sudo systemctl stop smbd nmbd winbindI deshabilitar-los:
sudo systemctl disable smbd nmbd winbindPrepara el servidor per funcionar com a Active Directory Domain Controller amb Samba, desactivant els serveis que no cal en aquest mode. Emmascara (bloqueja) els tres serveis del mode Samba clàssic (servidor de fitxers/impressió):
smbd — servidor SMB (compartició de fitxers)nmbd — resolució de noms NetBIOSwinbind — integració amb dominis Windowsmask és més fort que disable: crea un
symlink a /dev/null de manera que no es poden
iniciar ni manualment ni com a dependència d’un altre servei.
Evita conflictes amb samba-ad-dc.
sudo systemctl mask smbd nmbd winbindsamba-ad-dcElimina l’emmascarament de samba-ad-dc. Aquest servei ve
emmascarant per defecte perquè no s’iniciï accidentalment abans de fer
la provisió del domini.
sudo systemctl unmask samba-ad-dcActiva samba-ad-dc perquè s’iniciï automàticament en
cada arrencada del sistema.
sudo systemctl enable samba-ad-dcL’aprovisionament crea tota l’estructura del domini AD (base de dades
LDAP, zona DNS, configuració de Kerberos, SYSVOL…). Podeu consultar tots
els paràmetres disponibles a la documentació
de samba-tool domain provision.
Desa la configuració de Samba per defecte:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bakDesa la configuració de Kerberos per defecte:
sudo mv /etc/krb5.conf /etc/krb5.conf.bakSi el servidor té més d’una interfície de xarxa: sudo samba-tool domain provision --use-rfc2307 --host-ip=<IP_CORRECTA> --interactive
sudo samba-tool domain provision --use-rfc2307 --interactive Respostes:
THOS.LOCAL
THOS
dc
SAMBA_INTERNAL
8.8.8.8
P@ssw0rd123
P@ssw0rd123
Significat de les opcions:
| Opció | Descripció |
|---|---|
--use-rfc2307 |
Afegeix atributs POSIX l’esquema (RFC 2307: UID, GID, shell…) per a clients Linux |
| Realm | Nom complet del domini Kerberos (en majúscules) |
| Domain | Nom NetBIOS del domini (màx. 15 caràcters, majúscules) |
| Server Role | Configura el servidor com a controlador de domini |
| DNS backend | Usa el DNS intern de Samba (opció recomanada) |
| DNS forwarder IP address | Aquesta configuració només està disponible quan s’utilitza el
backend DNS SAMBA_INTERNAL. El servidor DNS intern només pot resoldre
les zones DNS de l’Active Directory (AD). Per habilitar consultes
recursives d’altres zones, definiu el paràmetre dns forwarder del fitxer smb.conf a una o més
adreces IP de servidors DNS que admetin la resolució recursiva. |
| Administrator password | Contrasenya de l’administrador del domini |
La sortida esperada és similar a:
Realm [THOS.LOCAL]:
Domain [THOS]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.53]: 8.8.8.8
Administrator password:
Retype password:
...
Setting up sam.ldb partitions and settings: done
Setting up sam.ldb rootDSE: done
Pre-loading the Samba 4 and AD schema: done
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf
Setting up share.ldb: done
Setting up secrets.ldb: done
Setting up the registry: done
Setting up the privileges database: done
Setting up idmap db: done
Setting up SAM Database: done
Setting up sam.ldb partitions and settings: done
...
Once the above files are installed, your Samba4 installation will be ready to use.
Server Role: active directory domain controller
Hostname: dc1
NetBIOS Domain: THOS
DNS Domain: thos.local
DOMAIN SID: S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXXSamba necessita el port 53. Cal desactivar systemd-resolved:
Atura i desactiva systemd-resolved:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolvedElimina l’enllaç simbòlic:
sudo rm /etc/resolv.confCrea un resolv.conf nou que apunti al servidor local:
sudo bash -c 'cat > /etc/resolv.conf << EOF
nameserver 127.0.0.1
search thos.local
EOF'sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.confL’aprovisionament ha creat /etc/samba/smb.conf.
Reviseu-lo:
cat /etc/samba/smb.confEl contingut típic és:
# Global parameters
[global]
dns forwarder = 8.8.8.8
netbios name = DC1
realm = THOS.LOCAL
server role = active directory domain controller
workgroup = THOS
idmap_ldb:use rfc2307 = yes
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/thos.local/scripts
read only = NoSi tens més d’una interfície de xarxa edita el fitxer /etc/samba/smb.conf
sudo nano /etc/samba/smb.confAfegeix a l’apartat [global] aquestes
línies:
interfaces = lo enp0s3 # enp0s3 és el nom de la interfície de xarxa
bind interfaces only = yes
Inicia el servei
sudo systemctl start samba-ad-dcVerifica l’estat
sudo systemctl status samba-ad-dcLa sortida ha de mostrar active (running).
● samba-ad-dc.service - Samba AD Daemon
Loaded: loaded (/usr/lib/systemd/system/samba-ad-dc.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-06-24 08:24:42 UTC; 1min 2s ago
Invocation: 6f425f30164442ca989aafcc64780137
Docs: man:samba(8)
man:samba(7)
man:smb.conf(5)
Process: 4489 ExecCondition=/usr/share/samba/is-configured samba (code=exited, status=0/SUCCESS)
Main PID: 4492 (samba)
Status: "samba: ready to serve connections..."
Tasks: 61 (limit: 1718)
Memory: 189.6M (peak: 243.8M)
CPU: 2.729s
CGroup: /system.slice/samba-ad-dc.service
├─4492 "samba: root process"
├─4493 "samba: tfork waiter process(4494)"
├─4494 "samba: task[s3fs] pre-fork master"
├─4495 "samba: tfork waiter process(4497)"
├─4496 "samba: tfork waiter process(4498)"
├─4497 "samba: task[rpc] pre-fork master"
├─4498 /usr/sbin/smbd -D "--option=server role check:inhibit=yes" --foreground
├─4499 "samba: tfork waiter process(4500)"sudo netstat -tulnp | grep sambaS’hauria de veure els ports 53, 88, 135, 389, 445, 464, 636, 3268, 3269 en escolta.
tcp 0 0 0.0.0.0:3268 0.0.0.0:* LISTEN 4506/samba: task[ld
tcp 0 0 0.0.0.0:3269 0.0.0.0:* LISTEN 4506/samba: task[ld
tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 4504/samba: task[rp
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 4541/samba: task[dn
tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 4497/samba: task[rp
tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 4504/samba: task[rp
tcp 0 0 0.0.0.0:49154 0.0.0.0:* LISTEN 4504/samba: task[rp
tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 4514/samba: task[kd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 4506/samba: task[ld
tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 4514/samba: task[kd
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 4506/samba: task[ld
tcp6 0 0 :::3268 :::* LISTEN 4506/samba: task[ld
tcp6 0 0 :::3269 :::* LISTEN 4506/samba: task[ld
...sudo samba-tool domain level showSortida esperada:
Domain and forest function level for domain 'DC=thos,DC=local'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2Pregunta al servidor DNS de 127.0.0.1 quina IP té dc1.thos.local:
host -t A dc1.thos.local 127.0.0.1Sortida esperada:
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
dc1.thos.local has address 10.0.2.10Pregunta si el servei Kerberos del domini thos.local
està al servidor dc1.thos.local:
host -t SRV _kerberos._tcp.thos.local 127.0.0.1Sortida esperada:
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
_kerberos._tcp.thos.local has SRV record 0 100 88 dc1.thos.local.Pregunta si el servei LDAP del domini thos.local està al
servidor dc1.thos.local:
host -t SRV _ldap._tcp.thos.local 127.0.0.1Sortida esperada:
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
_ldap._tcp.thos.local has SRV record 0 100 389 dc1.thos.local.Obté un tiquet Kerberos per a l’administrador
kinit administratorSortida esperada:
Password for administrator@THOS.LOCAL:
Warning: Your password will expire in 41 days on dimecres, 5 d’agost de 2026, 08:04:06Verifica el tiquet:
klistSortida esperada:
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@THOS.LOCAL
Valid starting Expires Service principal
24/6/26 08:32:45 24/6/26 18:32:45 krbtgt/THOS.LOCAL@THOS.LOCAL
renew until 25/6/26 08:32:38Llista el contingut del directori LDAP
sudo ldbsearch -H /var/lib/samba/private/sam.ldb \
-b "DC=thos,DC=local" "(objectClass=domain)" dnSortida esperada:
# record 1
dn: DC=thos,DC=local
# Referral
ref: ldap://thos.local/CN=Configuration,DC=thos,DC=local
# Referral
ref: ldap://thos.local/DC=DomainDnsZones,DC=thos,DC=local
# Referral
ref: ldap://thos.local/DC=ForestDnsZones,DC=thos,DC=local
# returned 4 records
# 1 entries
# 3 referralsLlista les comparticions disponibles
smbclient -L localhost -U%Sortida esperada:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.23.6-Ubuntu-4.23.6+dfsg-1ubuntu2.1)
SMB1 disabled -- no workgroup availableConnecta a SYSVOL
smbclient //localhost/sysvol -U administrator%'P@ssw0rd123'Sortida esperada:
Try "help" to get a list of possible commands.
smb: \> l
. D 0 Wed Jun 24 08:04:06 2026
.. D 0 Wed Jun 24 08:04:06 2026
thos.local D 0 Wed Jun 24 08:04:05 2026
11758760 blocks of size 1024. 5895228 blocks available
smb: \> qsamba-tool# Crear un usuari
sudo samba-tool user create nom.cognom \
--given-name="Nom" \
--surname="Cognom" \
--mail-address="nom.cognom@thos.local" \
'P@ssw0rdUsuari'
# Llistar usuaris
sudo samba-tool user list
# Mostrar informació d'un usuari
sudo samba-tool user show nom.cognom
# Canviar la contrasenya d'un usuari
sudo samba-tool user setpassword nom.cognom
# Desactivar un usuari
sudo samba-tool user disable nom.cognom
# Activar un usuari
sudo samba-tool user enable nom.cognom
# Eliminar un usuari
sudo samba-tool user delete nom.cognom# Crear un grup
sudo samba-tool group add "Professors"
sudo samba-tool group add "Alumnes"
sudo samba-tool group add "Administradors TI"
# Afegir un membre a un grup
sudo samba-tool group addmembers "Professors" nom.cognom
# Llistar membres d'un grup
sudo samba-tool group listmembers "Professors"
# Llistar tots els grups
sudo samba-tool group list
# Eliminar un membre d'un grup
sudo samba-tool group removemembers "Professors" nom.cognom# Crear OU
sudo samba-tool ou create "OU=Departaments,DC=thos,DC=local"
sudo samba-tool ou create "OU=ASIX,OU=Departaments,DC=thos,DC=local"
sudo samba-tool ou create "OU=SMX,OU=Departaments,DC=thos,DC=local"
# Llistar OU
sudo samba-tool ou list# Crear estructura d'OU
sudo samba-tool ou create "OU=Centres,DC=thos,DC=local"
sudo samba-tool ou create "OU=Professors,OU=Centres,DC=thos,DC=local"
sudo samba-tool ou create "OU=Alumnes,OU=Centres,DC=thos,DC=local"
sudo samba-tool ou create "OU=Equips,OU=Centres,DC=thos,DC=local"
# Crear grups
sudo samba-tool group add "GRP_Professors" \
--groupou="OU=Professors,OU=Centres,DC=thos,DC=local"
sudo samba-tool group add "GRP_ASIX" \
--groupou="OU=Alumnes,OU=Centres,DC=thos,DC=local"
sudo samba-tool group add "GRP_SMX" \
--groupou="OU=Alumnes,OU=Centres,DC=thos,DC=local"
# Crear usuaris d'exemple
sudo samba-tool user create prof.lopez 'P@ssw0rd' \
--given-name="Ramon" \
--surname="López" \
--userou="OU=Professors,OU=Centres,DC=thos,DC=local"
sudo samba-tool user create alu.garcia 'P@ssw0rd' \
--given-name="Joan" \
--surname="Garcia" \
--userou="OU=Alumnes,OU=Centres,DC=thos,DC=local"
# Assignar usuaris als grups
sudo samba-tool group addmembers "GRP_Professors" prof.lopez
sudo samba-tool group addmembers "GRP_ASIX" alu.garciaDes d’un client Windows unit al domini, podeu instal·lar les Remote Server Administration Tools (RSAT) per gestionar el domini amb interfície gràfica:
# PowerShell (Windows 10/11) - com a Administrador
Add-WindowsCapability -Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0" -Online
Add-WindowsCapability -Name "Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0" -Online
Add-WindowsCapability -Name "Rsat.DNS.Tools~~~~0.0.1.0" -OnlineUn cop instal·lades, accediu a:
dsa.msc)dssite.msc)dnsmgmt.msc)gpmc.msc)Abans d’unir un client Windows al domini:
10.0.2.10 com a servidor DNS primari.ping dc1.thos.local).
thos.local.
Executa PowerShell com a Administrador:
Add-Computer -DomainName "THOS.LOCAL" -Credential (Get-Credential -UserName "THOS\Administrator") -RestartDes del DC, verifica que l’equip apareix al domini:
sudo samba-tool computer listResposta esperada:
DC1$
CLIENT2$Modifica el hostname:
sudo hostnamectl set-hostname client1Edita el fitxer hosts:
sudo nano /etc/hosts127.0.1.1 client1.thos.local client1
Abans d’unir un client GNU/Linux al domini cal:
10.0.2.10 com a
servidor DNS primari.ping dc1.thos.local).Consulta el nom de la connexió:
nmcli con showSortida:
NAME UUID TYPE DEVICE
netplan-enp0s3 1eef7e45-3b9d-3043-bee3-fc5925c90273 ethernet enp0s3
lo 0d4c85b9-8910-4174-9ef3-667578f0c40d loopback lo Configura el domini thos.local explícitament a la connexió netplan-enp0s3 (canvia aquest nom pel que t’hagi aparegut a
tu):
sudo nmcli con modify "netplan-enp0s3" ipv4.dns "10.0.2.10"
sudo nmcli con modify "netplan-enp0s3" ipv4.dns-search "thos.local"
sudo nmcli con up "netplan-enp0s3"Verifica la configuració DNS:
resolvectl status enp0s3Sortida esperada:
Link 2 (enp0s3)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.0.2.10
DNS Servers: 10.0.2.10
DNS Domain: thos.local
Default Route: yesVerifica que el client pot fer ping:
ping dc1.thos.localEsborra la configuració dels servidors d’hora:
sudo rm /etc/chrony/sources.d/ubuntu-ntp-pools.sources Crea una nova configuració de servidors d’hora:
sudo nano /etc/chrony/sources.d/thos.local.sources server dc1.thos.local iburst prefer
Reinicia el servei:
sudo systemctl restart chronySincronitza
sudo chronyc makestepComprova l’estat de la sincronització
sudo chronyc sourcessudo apt install realmd sssd samba-common-bin sambaComprova que l’equip està preparat per unir-se al domini:
sudo realm discover thos.localResposta esperada:
thos.local
type: kerberos
realm-name: THOS.LOCAL
domain-name: thos.local
configured: no
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-binsudo realm join thos.local -U AdministratorVerifica que la màquina està unida al domini:
sudo realm listResposta esperada
thos.local
type: kerberos
realm-name: THOS.LOCAL
domain-name: thos.local
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin
login-formats: %U@thos.local
login-policy: allow-realm-loginsInicia sessió amb l’usuari administrador del domini:
su THOS\\AdministratorResposta esperada:
Contrasenya:
administrator@thos.local@client1:/home/ramon$ Configura PAM per crear el directori home de l’usuari automàticament:
sudo pam-auth-update --enable mkhomedirEdita /etc/samba/smb.conf per afegir comparticions:
sudo nano /etc/samba/smb.conf[Global]
# Configuració existent del domini...
[dades]
comment = Carpeta de dades compartides
path = /srv/samba/dades
browseable = yes
writable = yes
valid users = @"THOS\GRP_Professors", @"THOS\GRP_ASIX"
create mask = 0660
directory mask = 0770
[professors]
comment = Recursos per a professors
path = /srv/samba/professors
browseable = no
writable = yes
valid users = @"THOS\GRP_Professors"
create mask = 0660
directory mask = 0770
Crea directoris:
sudo mkdir -p /srv/samba/dades
sudo mkdir -p /srv/samba/professorsAssigna propietari i permisos
sudo chown root:"THOS\GRP_Professors" /srv/samba/professors
sudo chmod 2770 /srv/samba/professors
sudo chown root:root /srv/samba/dades
sudo chmod 1777 /srv/samba/dadesReinicia el servei:
sudo systemctl restart samba-ad-dcDes de Windows:
\\dc1\dades
\\dc1\professorsDes de Linux:
# Muntar una compartició
sudo mount -t cifs //dc1/dades /mnt/dades \
-o username=nom.cognom,domain=THOS,vers=3.0
# Muntatge permanent a /etc/fstab
//dc1/dades /mnt/dades cifs username=nom.cognom,password=P@ss,domain=THOS,vers=3.0 0 0Samba admet la gestió de GPO (Group Policy Objects), tot i que amb suport parcial respecte a Windows Server. La forma més còmoda de gestionar GPO és des d’un client Windows amb RSAT.
# Llistar totes les GPO
sudo samba-tool gpo listall
# Crear una nova GPO
sudo samba-tool gpo create "Política de Contrasenyes" \
-U administrator%'P@ssw0rd123'
# Vincular una GPO a una OU
sudo samba-tool gpo setlink \
"OU=Alumnes,OU=Centres,DC=thos,DC=local" \
{GUID_GPO} \
-U administrator%'P@ssw0rd123'
# Eliminar un vincle
sudo samba-tool gpo dellink \
"OU=Alumnes,OU=Centres,DC=thos,DC=local" \
{GUID_GPO} \
-U administrator%'P@ssw0rd123'# Veure la política de contrasenyes actual
sudo samba-tool domain passwordsettings show
# Modificar la política de contrasenyes
sudo samba-tool domain passwordsettings set \
--min-pwd-length=8 \
--min-pwd-age=1 \
--max-pwd-age=90 \
--history-length=10 \
--complexity=on# Verificar l'estat general del domini
sudo samba-tool domain level show
# Verificar replicació (si hi ha múltiples DC)
sudo samba-tool drs showrepl
# Comprovar els registres DNS del domini
sudo samba-tool dns query dc1 thos.local @ ALL \
-U administrator%'P@ssw0rd123'
# Veure registres del servei
sudo journalctl -u samba-ad-dc -f
sudo journalctl -u samba-ad-dc --since "1 hour ago"
# Verificar Kerberos
sudo samba-tool user getpassword administrator \
--attributes=unicodePwd| Problema | Causa probable | Solució |
|---|---|---|
| El servei no arrenca | Port 53 ocupat per systemd-resolved |
Desactivar systemd-resolved |
Error de Kerberos Clock skew too great |
Diferència horària > 5 min | Sincronitzar l’hora amb NTP |
Error DNS NXDOMAIN |
DNS apunta al servidor incorrecte | Apuntar DNS a 127.0.0.1 |
| No es pot unir Windows al domini | Tallafoc bloquejant ports | Obrir ports 53, 88, 135, 389, 445 |
kinit falla amb KDC unreachable |
El servei Samba no corre | systemctl start samba-ad-dc |
Error NT_STATUS_NO_LOGON_SERVERS |
smb.conf incorrecte o DC inassolible | Revisar configuració de xarxa |
| Winbind no resol usuaris | NSS mal configurat | Revisar /etc/nsswitch.conf |
Si cal refer l’aprovisionament des de zero:
# Atura el servei
sudo systemctl stop samba-ad-dc
# Elimina les dades del domini
sudo rm -rf /var/lib/samba/private/*
sudo rm -rf /var/lib/samba/sysvol/*
sudo rm /etc/samba/smb.conf
# Torna a aprovisionar
sudo samba-tool domain provision ...Això eliminarà tots els usuaris, grups i GPO existents. Feu-ho només en entorns de proves.
| Ordre | Descripció |
|---|---|
samba-tool domain provision |
Provisionar un nou domini |
samba-tool domain level show |
Mostrar el nivell funcional del domini |
samba-tool domain passwordsettings show |
Veure la política de contrasenyes |
samba-tool domain passwordsettings set |
Modificar la política de contrasenyes |
samba-tool drs showrepl |
Mostrar l’estat de replicació |
| Ordre | Descripció |
|---|---|
samba-tool user create <nom> <pass> |
Crear un usuari |
samba-tool user list |
Llistar tots els usuaris |
samba-tool user show <nom> |
Mostrar informació d’un usuari |
samba-tool user setpassword <nom> |
Canviar la contrasenya |
samba-tool user disable <nom> |
Desactivar un usuari |
samba-tool user enable <nom> |
Activar un usuari |
samba-tool user delete <nom> |
Eliminar un usuari |
| Ordre | Descripció |
|---|---|
samba-tool group add <nom> |
Crear un grup |
samba-tool group list |
Llistar tots els grups |
samba-tool group listmembers <nom> |
Llistar membres d’un grup |
samba-tool group addmembers <grup> <usuari> |
Afegir membre al grup |
samba-tool group removemembers <grup> <usuari> |
Eliminar membre del grup |
samba-tool group delete <nom> |
Eliminar un grup |
| Ordre | Descripció |
|---|---|
samba-tool dns query <dc> <zona> @ ALL |
Consultar els registres d’una zona |
samba-tool dns query <dc> <zona> <host> <tipus> |
Registres d’un host concret |
samba-tool dns add <dc> <zona> <host> A <IP> |
Afegir registre A |
samba-tool dns delete <dc> <zona> <host> A <IP> |
Eliminar registre A |
samba-tool dns zonelist <dc> |
Llistar zones DNS |
samba-tool dns query <dc> _tcp SRV |
Registres SRV (Kerberos, LDAP…) |
| Ordre | Descripció |
|---|---|
kinit <usuari>@DOMINI |
Obtenir un tiquet Kerberos |
klist |
Llistar tiquets actius |
kdestroy |
Eliminar tots els tiquets |
| Ordre | Descripció |
|---|---|
wbinfo -u |
Llistar usuaris del domini |
wbinfo -g |
Llistar grups del domini |
wbinfo -a <usuari>%<pass> |
Autenticar un usuari |
wbinfo --ping-dc |
Verificar connexió amb el DC |
net ads info |
Informació sobre el domini AD |
net ads join -k |
Unir un client al domini |
#!/bin/bash
# create_users.sh - Creació massiva d'usuaris al domini Samba AD-DC
# Ús: ./create_users.sh usuaris.csv
# Format CSV: nom,cognom,username,ou,grup
DOMAIN="thos.local"
DEFAULT_PASS="Canvia@2026"
DC_BASE="DC=thos,DC=local"
while IFS=',' read -r nom cognom username ou grup; do
echo "Creant usuari: $username ($nom $cognom)"
sudo samba-tool user create "$username" "$DEFAULT_PASS" \
--given-name="$nom" \
--surname="$cognom" \
--mail-address="${username}@${DOMAIN}" \
--userou="OU=${ou},${DC_BASE}" \
--must-change-at-next-login
sudo samba-tool group addmembers "$grup" "$username"
done < "$1"
echo "Creació d'usuaris completada."Fitxer CSV d’exemple (usuaris.csv):
Joan,Garcia,joan.garcia,Alumnes,GRP_ASIX
Anna,Pérez,anna.perez,Alumnes,GRP_SMX
Pere,Martí,pere.marti,Professors,GRP_ProfessorsSi teniu UFW activat al servidor DC, obriu els ports necessaris:
sudo ufw allow 53/tcp comment "DNS"
sudo ufw allow 53/udp comment "DNS"
sudo ufw allow 88/tcp comment "Kerberos"
sudo ufw allow 88/udp comment "Kerberos"
sudo ufw allow 135/tcp comment "RPC"
sudo ufw allow 137/udp comment "NetBIOS"
sudo ufw allow 138/udp comment "NetBIOS"
sudo ufw allow 139/tcp comment "NetBIOS"
sudo ufw allow 389/tcp comment "LDAP"
sudo ufw allow 389/udp comment "LDAP"
sudo ufw allow 445/tcp comment "SMB"
sudo ufw allow 464/tcp comment "Kerberos Password"
sudo ufw allow 464/udp comment "Kerberos Password"
sudo ufw allow 636/tcp comment "LDAPS"
sudo ufw allow 3268/tcp comment "Global Catalog"
sudo ufw allow 3269/tcp comment "Global Catalog SSL"
sudo ufw allow 49152:65535/tcp comment "RPC Dynamic Ports"
sudo ufw reload
sudo ufw status numbered/var/lib/samba/private/ i /var/lib/samba/sysvol/./var/log/samba/.administrator per a tasques diàries. Creeu comptes
d’administrador específics.# Còpia de seguretat del domini
sudo tar czf /backup/samba-$(date +%Y%m%d).tar.gz \
/var/lib/samba/private/ \
/var/lib/samba/sysvol/ \
/etc/samba/smb.conf \
/etc/krb5.conf| Recurs | Descripció |
|---|---|
| Wiki de Samba | Documentació oficial i completa de Samba |
| Samba AD-DC: Setup Guide | Guia oficial de configuració de Samba com AD-DC |
| Samba: Joining clients to AD | Unió de clients Linux al domini |
| Samba: DNS Administration | Administració del DNS integrat de Samba |
| Samba: Group Policy | Gestió de directives de grup |
| Samba: Winbind | Integració de clients Linux amb AD |
| Samba: Troubleshooting AD DC | Resolució de problemes del DC |
| Ubuntu Server Guide | Documentació oficial d’Ubuntu Server |
| Netplan Reference | Referència de la sintaxi YAML de Netplan |
| MIT Kerberos Documentation | Documentació completa de Kerberos |
man)man samba-tool # Referència completa de samba-tool
man smb.conf # Opcions de configuració de Samba
man wbinfo # Eines de consulta Winbind
man kinit # Obtenció de tickets Kerberos
man net # Eina de xarxa de Samba
man smbclient # Client SMB/CIFS
man ldbsearch # Consultes LDAP a les bases de dades de Samba
man realm # Gestió de dominis amb realmd| Recurs | Descripció |
|---|---|
| Samba Release Notes | Notes de versions de Samba |
| RFC 2307 | Esquema LDAP per a atributs POSIX Unix |
| RFC 4120 | Protocol Kerberos V5 |
| MS-ADTS (Microsoft) | Especificació tècnica de Active Directory |
| realmd Documentation | Documentació de realmd |
| SSSD Documentation | Documentació de SSSD |
| UFW (Ubuntu Firewall) | Configuració del tallafocs UFW |
| Eina | Plataforma | Descripció |
|---|---|---|
| RSAT | Windows | Gestió gràfica d’AD (usuaris, GPO, DNS) |
| LAM (LDAP Account Manager) | Web | Interfície web per gestionar comptes LDAP/AD |
| Apache Directory Studio | Multiplataforma | Client LDAP amb interfície gràfica |