RA5. Administració de servidors d'impressió

Cicle: Administració de sistemes informàtics en xarxa (ASIX)

Mòdul: 0374. Administració de sistemes operatius

1. Introducció

Un servidor d’impressió és l’element que centralitza la gestió de les impressores d’una organització: rep els treballs des dels clients, els posa en cua, els envia als dispositius físics i informa de l’estat de cada treball. En un entorn corporatiu heterogeni —com el que trobareu en qualsevol empresa real— és habitual conviure amb clients Windows, Linux i macOS que han de compartir el mateix parc d’impressores, sovint gestionat des d’un servidor Linux (CUPS) o des d’un servidor Windows (rol Print and Document Services).

En aquest document farem servir el domini THOS.LOCAL com a referència d’entorn: un controlador de domini (SRV-DC01), un servidor de fitxers/impressió Windows (SRV-FS01) i un servidor CUPS sobre Linux integrat al mateix domini. L’objectiu és que pugueu reproduir tot el procés al vostre laboratori, sigui quina sigui la combinació de sistemes operatius que feu servir.

2. Funcionalitat dels sistemes i servidors d’impressió

Un sistema d’impressió local (el que trobem a qualsevol PC d’usuari) s’encarrega de:

Un servidor d’impressió afegeix una capa addicional: centralitza aquesta funció perquè múltiples clients no hagin d’instal·lar el driver físic ni conèixer la impressora directament. Els avantatges principals són:

Avantatge Descripció
Centralització Un únic punt de gestió, monitoratge i manteniment de cues
Compatibilitat El servidor pot oferir el driver adequat a cada client (Windows, Linux, Mac)
Control d’accés Es poden restringir usuaris o grups que poden imprimir a cada dispositiu
Compartició Impressores físiques connectades per USB es fan accessibles per xarxa
Auditoria Registre de qui imprimeix, quant i quan (útil per a comptabilitat de costos)

En Linux, aquesta funció la fa CUPS (Common Unix Printing System); en Windows, el Servidor d’impressió (rol Print Server, amb l’Spooler com a servei principal).

3. Ports i protocols d’impressió

Per integrar impressores en una xarxa cal conèixer quins protocols intervenen i quins ports cal obrir als tallafocs.

Protocol Port Transport Ús
IPP (Internet Printing Protocol) 631 TCP Protocol estàndard actual, usat per CUPS (també com a interfície web) i per Windows des de la versió 7
IPPS (IPP sobre TLS) 631 TCP Igual que IPP però xifrat
LPD/LPR (Line Printer Daemon) 515 TCP Protocol clàssic Unix, encara suportat per compatibilitat
SMB/CIFS 445 (i 139 amb NetBIOS) TCP Compartició d’impressores Windows i Samba
RAW / JetDirect (AppSocket) 9100 TCP Enviament directe de dades a la impressora sense cap protocol d’impressió (típic en impressores de xarxa HP/JetDirect)
mDNS/DNS-SD (Bonjour) 5353 UDP Descobriment automàtic d’impressores IPP a la xarxa local (AirPrint)
SNMP 161/162 UDP Consulta de l’estat de la impressora (nivell de tòner, papers encallats, etc.)
💡
Nota

A la pràctica: avui dia la majoria d’impressores de xarxa i servidors moderns fan servir IPP (631) com a protocol principal. LPD i RAW es mantenen per compatibilitat amb maquinari antic.

Per comprovar quins ports escolta un servidor CUPS:

sudo ss -tulnp | grep -E '631|515|9100'

4. Sistemes d’impressió

4.1. CUPS (Linux/Unix/macOS)

CUPS és el sistema d’impressió estàndard a totes les distribucions Linux modernes i a macOS. Funciona com un dimoni (cupsd) que:

Paquets principals a Debian/Ubuntu:

sudo apt update
sudo apt install cups cups-client cups-bsd printer-driver-all

A Windows, el servei Print Spooler (spoolsv.exe) gestiona les cues locals. Quan un servidor Windows ha de fer de servidor d’impressió centralitzat, cal afegir-hi el rol de servidor Print and Document Services:

Install-WindowsFeature -Name Print-Server -IncludeManagementTools

Aquest rol inclou:

5. Eines de gestió integrades al sistema operatiu

Tasca Linux (CUPS) Windows
Interfície gràfica local system-config-printer / GNOME Settings → Impressores Configuració → Dispositius → Impressores i escàners
Consola d’administració Interfície web CUPS (https://servidor:631) Print Management (printmanagement.msc)
Gestió per línia d’ordres lpadmin, lpoptions, lpstat Add-Printer, Get-Printer (PowerShell)
Gestió de cues lpq, lprm, cancel Get-PrintJob, Remove-PrintJob

La consola Print Management de Windows permet, a més, filtrar impressores per criteris (drivers instal·lats, estat, ubicació) i desplegar-les automàticament als usuaris o equips mitjançant directives de grup (GPO), molt útil en un domini com THOS.LOCAL amb diversos edificis o aules.

6. Instal·lació i configuració d’un servidor d’impressió en entorn web (CUPS)

6.1. Instal·lació

sudo apt install cups
sudo systemctl enable --now cups

6.2. Habilitar l’accés remot a la interfície web

Per defecte, CUPS només escolta a localhost. Cal editar /etc/cups/cupsd.conf:

# Escoltar a totes les interfícies, no només localhost
Port 631
Listen /run/cups/cups.sock

# Permetre l'accés des de la xarxa local
<Location />
  Order allow,deny
  Allow from 192.168.1.0/24
</Location>

<Location /admin>
  Order allow,deny
  Allow from 192.168.1.0/24
</Location>

# Permetre compartir impressores
Browsing On
BrowseLocalProtocols dnssd

Activeu l’administració remota amb l’eina inclosa (equivalent a marcar la casella des de la interfície web):

sudo cupsctl --remote-admin --remote-any --share-printers
sudo systemctl restart cups

6.3. Accedir a la interfície web

Obriu https://IP-DEL-SERVIDOR:631 des d’un navegador. Des d’aquí podreu:

💡
Nota

Per fer canvis d’administració (afegir/eliminar impressores) us demanarà l’usuari i contrasenya d’un compte del grup lpadmin:

sudo usermod -aG lpadmin ramon

7. Impressores lògiques: creació i classificació

Una impressora lògica és l’objecte que el sistema d’impressió gestiona; no cal que es correspongui 1:1 amb un dispositiu físic. Es poden classificar segons:

Tipus Descripció Exemple
Local Connectada directament al servidor (USB, paral·lel) HP-LaserJet-USB
Remota IPP/LPD Impressora de xarxa accessible per IP hp-planta1 a ipp://192.168.1.50/ipp/print
Compartida SMB Cua que apunta a una impressora compartida per un altre servidor (Windows o Samba) //SRV-FS01/HP-Direccio
Raw No aplica cap filtre; envia les dades tal qual (útil amb PostScript natiu) Cua raw cap a JetDirect port 9100
Amb driver (PPD) Aplica un filtre/driver específic per convertir el treball al llenguatge de la impressora PPD de Gutenprint o del fabricant

7.1. Crear una impressora local o de xarxa amb lpadmin

# Impressora de xarxa via IPP amb driver
sudo lpadmin -p HP-Planta1 \
  -E \
  -v ipp://192.168.1.50/ipp/print \
  -m everywhere

# Impressora remota via JetDirect (raw, port 9100)
sudo lpadmin -p Epson-Raw \
  -E \
  -v socket://192.168.1.60:9100 \
  -m raw

Paràmetres clau:

7.2. Classificar-la com a impressora per defecte

sudo lpadmin -d HP-Planta1

A Windows, l’equivalent és:

Add-Printer -Name "HP-Planta1" -DriverName "HP Universal Printing PCL 6" -PortName "IP_192.168.1.50"
Set-Printer -Name "HP-Planta1" -Comment "Impressora planta 1"

8. Grups d’impressió (classes)

Un grup d’impressió (a CUPS s’anomena classe) agrupa diverses impressores físiques sota una única cua lògica: el primer treball va a la primera impressora lliure, la qual cosa proporciona balanceig de càrrega i tolerància a fallades.

8.1. Crear una classe amb CUPS

sudo lpadmin -p HP-Planta1 -c Aules
sudo lpadmin -p HP-Planta2 -c Aules

Això crea (o amplia) la classe Aules, formada per les impressores HP-Planta1 i HP-Planta2. Els usuaris només han de conèixer el nom Aules; CUPS distribueix els treballs entre les impressores membres.

Consultar les classes existents:

lpstat -c

Eliminar una impressora d’una classe:

sudo lpadmin -p HP-Planta2 -r Aules

8.2. Equivalent a Windows: agrupació de ports (printer pooling)

Windows no té “classes” com a tal, però ofereix Printer Pooling: una única impressora lògica que envia els treballs a diversos ports (diverses impressores físiques idèntiques).

Add-PrinterPort -Name "Port1" -PrinterHostAddress 192.168.1.50
Add-PrinterPort -Name "Port2" -PrinterHostAddress 192.168.1.51
Set-Printer -Name "HP-Pool" -PortName "Port1,Port2"
💡
Nota

Diferència important: el printer pooling de Windows exigeix que totes les impressores del grup siguin del mateix model (mateix driver), mentre que una classe CUPS pot combinar models diferents.

9. Gestió d’impressores i cues mitjançant ordres

9.1. Ordres CUPS (línia d’ordres)

Ordre Funció
lpstat -p Estat de totes les impressores
lpstat -o Treballs pendents a totes les cues
lpq -P NOM Consultar la cua d’una impressora concreta
lp -d NOM fitxer.pdf Enviar un treball a una cua
lprm -P NOM ID Eliminar un treball de la cua
cancel NOM-ID Cancel·lar un treball (alternativa a lprm)
cupsenable NOM / cupsdisable NOM Habilitar/deshabilitar una cua
cupsaccept NOM / cupsreject NOM Permetre/rebutjar que la cua accepti nous treballs
lpoptions -p NOM -l Llistar les opcions disponibles d’una impressora (mida de paper, duplex…)
lpadmin -x NOM Eliminar una cua

Exemple de flux complet:

# Enviar un treball
lp -d HP-Planta1 informe.pdf

# Veure l'estat de la cua
lpstat -o HP-Planta1

# Cancel·lar el treball número 42
cancel HP-Planta1-42

# Aturar temporalment la impressora per manteniment
sudo cupsdisable HP-Planta1
sudo cupsreject HP-Planta1

# Reactivar-la
sudo cupsenable HP-Planta1
sudo cupsaccept HP-Planta1

9.2. Ordres PowerShell (Windows)

Ordre Funció
Get-Printer Llistar impressores instal·lades
Get-PrintJob -PrinterName NOM Consultar treballs d’una cua
Remove-PrintJob -PrinterName NOM -ID N Eliminar un treball
Restart-Service Spooler Reiniciar el servei d’impressió (neteja cues encallades)
Set-Printer -Name NOM -Shared $true -ShareName NOM Compartir una impressora
Remove-Printer -Name NOM Eliminar una impressora
Get-Printer | Select Name, PrinterStatus
Get-PrintJob -PrinterName "HP-Planta1"
Remove-PrintJob -PrinterName "HP-Planta1" -ID 12
Restart-Service Spooler -Force

10. Compartició d’impressores entre sistemes operatius diferents

Aquest és el punt crític en qualsevol xarxa real: fer que impressores gestionades des de Linux siguin visibles des de clients Windows i viceversa, dins del mateix domini THOS.LOCAL.

10.1. Compartir una impressora CUPS cap a clients Windows (via Samba)

  1. Assegureu-vos que Samba està instal·lat i unit (o almenys integrat) al domini THOS.LOCAL.

  2. Afegiu a /etc/samba/smb.conf:

    [printers]
       comment = Totes les impressores
       path = /var/spool/samba
       browseable = no
       guest ok = no
       writable = no
       printable = yes
       printer admin = @lpadmin
    
    [print$]
       comment = Drivers d'impressora
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
  3. Creeu el directori d’estat i reinicieu els serveis:

    sudo mkdir -p /var/spool/samba
    sudo chmod 1777 /var/spool/samba
    sudo systemctl restart smbd nmbd cups
  4. Des d’un client Windows del domini, la impressora apareixerà a \\SRV-CUPS\HP-Planta1 i es podrà afegir amb:

    Add-Printer -ConnectionName "\\SRV-CUPS\HP-Planta1"

10.2. Compartir una impressora de Windows cap a clients Linux

Al servidor Windows (SRV-FS01), comparteix la impressora amb el rol Print Server (o des de Propietats de la impressora → Compartició). Des del client Linux, la cua es crea apuntant a l’URI SMB:

sudo lpadmin -p Windows-Direccio \
  -E \
  -v "smb://usuari:contrasenya@SRV-FS01/HP-Direccio" \
  -m everywhere

Si el domini requereix autenticació Kerberos (habitual en un AD com THOS.LOCAL amb SMB signing forçat), cal tenir el paquet smbclient i, si escau, un tiquet vàlid (kinit usuari@THOS.LOCAL) abans de crear la cua.

10.3. Descobriment automàtic entre sistemes

Per facilitar que qualsevol client (Linux, Windows 10/11, macOS, mòbils) trobi automàticament les impressores sense configuració manual:

11. Documentació del servidor d’impressió

Documentar la configuració és un requisit professional: facilita el manteniment, la incorporació de nou personal tècnic i la resolució d’incidències. Com a mínim, la documentació hauria d’incloure:

  1. Inventari d’impressores: nom lògic, marca/model, adreça IP/MAC, ubicació física, protocol utilitzat (IPP, RAW, SMB).
  2. Estructura de cues i classes: quines cues existeixen, quines impressores formen cada classe i el criteri de balanceig.
  3. Permisos d’accés: quins usuaris/grups poden imprimir o administrar cada cua.
  4. Configuració de compartició: paràmetres de smb.conf o del rol Print Server, drivers desplegats per GPO.
  5. Procediments de manteniment: com afegir una impressora nova, com actualitzar un driver, com purgar una cua encallada.
  6. Historial de canvis: data, autor i motiu de cada modificació rellevant.

11.1. Plantilla mínima de fitxa d’impressora

## Impressora: HP-Planta1
- Model: HP LaserJet Pro M404dn
- IP: 192.168.1.50
- MAC: AA:BB:CC:DD:EE:FF
- Ubicació: Aula 204, planta 1
- Protocol: IPP (driverless / Everywhere)
- Servidor: SRV-CUPS (thos.local)
- Cua CUPS: HP-Planta1 (membre de la classe "Aules")
- Compartida via Samba a: \\SRV-CUPS\HP-Planta1
- Grup amb permís d'impressió: G-Alumnes-Aula204
- Grup amb permís d'administració: lpadmin
- Data alta: 2026-09-01
- Responsable: Ramon López

Podeu generar aquesta documentació automàticament a partir de la configuració real amb:

lpstat -p -d                 # estat i impressora per defecte
lpstat -c                    # classes
lpoptions -p HP-Planta1 -l   # opcions del PPD

Versions d’aquest document

Domini Públic (CC0)