En este momento estás viendo Como instalar un servidor de impresión CUPS en Debian y derivados

Como instalar un servidor de impresión CUPS en Debian y derivados

Como instalar un servidor de impresión CUPS en Debian y derivados

Imprimir en un sistema Linux es una tarea fácil. Podemos instalar el software necesario desde los repositorios de cualquier distribución con controladores para la mayoría de las impresoras del mercado.

«Common Unix Printing System» Sistema de impresión común de Unix, abreviado CUPS, es un sistema de impresión para sistemas operativos Unix que consigue que un equipo funcione como servidor de impresión y que puede aceptar tareas de impresión desde otros equipos clientes, los procesa y los envía a la impresora indicada.

CUPS está compuesto por una cola de impresión con su planificador, un sistema de filtros que convierte datos para imprimir en formatos que la impresora reconoce, y un sistema de soporte que envía los datos al dispositivo de impresión.

CUPS utiliza el protocolo IPP «Internet Printing Protocol» para las tareas de impresión y de colas de impresión. También nos ofrece los comandos tradicionales de impresión de los sistemas Unix.

Los controladores de dispositivos de impresión que CUPS incluye nos aportan la posibilidad de configurar el servidor con ficheros de texto con formato «PostScript Printer Description» (PPD) de Adobe Systems. CUPS es software libre y se distribuye bajo licencia GNU «General Public License» y «GNU Lesser General Public License», versión 2.

Podemos encontrar toda la información en la página oficial del proyecto.

Y descargar la versión que nos interese desde este enlace.

Sumario

  • Consideraciones previas
    • Impresoras HP
  • Instalar CUPS
  • Añadir impresora con la interfaz web
  • Instalar una impresora virtual PDF
  • Configuración de CUPS con linea de comandos «CLI»
    • Los ficheros de configuración de CUPS
      • /etc/cups/cupsd.conf
      • /etc/cups/cups-files.conf

Consideraciones previas

CUPS es compatible con impresoras Postscript y permite la detección automática de impresoras de red.

CUPS es un software para gestionar sistemas de impresión en sistemas UNIX. Fue desarrollado por Apple y liberado como software libre. Nos permite gestionar, con una interfaz web, un servidor de impresión.

Podremos instalar en un sistema UNIX, dispositivos de impresión y compartirlos en red. Una vez instalado nos permitirá consultar y gestionar colas de impresión, activar, pausar o eliminar trabajos de impresión, así como gestionar usuarios, permisos y grupos de usuarios.

Entre los paquetes recomendados que se instalan al realizar una nueva instalación, se encuentran «cups», «cups-client» y «cups-pdf».

Normalmente, si durante la instalación del S.O., seleccionamos la instalación completa del GNOME Desktop Environment, se instala por defecto la aplicación para gestionar las impresoras mediante una interfaz gráfica, escrita en Python, utilizando GTK+, «system-config-printer» para el escritorio GNOME y «system-config-printer-kde» para el escritorio KDE.

Instalando uno de estos paquetes, según el escritorio que utilicemos, podremos configurar una impresora, pero CUPS nos ofrece una interfaz web, accesible desde cualquier navegador, que nos facilitará el trabajo con impresoras en red.

Para conceder acceso a la administración de las impresoras a cualquier usuario en la interfaz web de CUPS, tendremos que añadirlo al grupo lpadmin

La interfaz web de CUPS está accesible por defecto en el puerto 631. Para acceder localmente, con el navegador apuntaremos a la URL http://localhost:631 y para acceder desde otras máquinas de la red local, con http://IP_servidor:631.

La gran mayoría de impresoras y escáneres funcionan en sistemas Linux sin la necesidad de instalar controladores adicionales. No obstante, si no encontramos uno compatible en CUPS, podemos instalar el controlador descargándolo del sitio web del fabricante o también podemos utilizar la base de datos de drivers de impresoras en Open Printing.

Impresoras HP

Para las impresoras de la marca HP podemos instalar el paquete hplip, disponible en los repositorios oficiales de las distribuciones que usemos, y que contiene la mayoría de controladores para impresoras y escáneres HP.

Para ver si lo tenemos instalado ejecutamos

dpkg -l hplip

y obtenemos una salida parecida a

Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendienTe-disparo
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre         Versión        Arquitectura Descripción
+++-==============-==============-============-============================================
ii  hplip          3.20.3+dfsg0-2 amd64        HP Linux Printing and Imaging System (HPLIP)

Si vemos «ii» en la primera columna antes de «hplip», quiere decir que HPLIP ya está instalado, en este caso la versión 3.20.3. Si deseas utilizar la versión instalada actualmente de HPLIP, intenta ejecutar «hp-setup» en una terminal. Podemos consultar si una versión más reciente, en español, es compatible con nuestra impresora en este enlace

Si no lo tenemos instalado, con el siguiente comando lo instalaremos

sudo apt-get update

sudo apt-get install hplip

Si queremos utilizar un entorno gráfico para hacer la configuración, en vez de hacerlo con la linea de comandos, instalaremos el paquete «hplip-gui». Igual que con el paquete «hplip» podemos comprobar si esta instalado con «dpkg -l hlip-gui».

sudo apt-get install hplip-gui

Y lanzaremos el programa de configuración de perifericos HP desde la línea de comandos, con

hp-setup

Instalar CUPS

Para instalar el servidor de impresión CUPS y el cliente, ejecutamos el siguiente comando

sudo apt-get update
sudo apt-get install cups cups-client

Para activar el servicio ejecutamos

sudo systemctl start cups
o
sudo systemctl restart cups.service

Pero seguramente será más recomendable que el servicio CUPS se inicie en cada inicio de la máquina, para ello ejecutamos

sudo systemctl enable cups
o
sudo systemctl enable cups.service

Añadir impresora con la interfaz web

Administrando CUPS con la interfaz web, podemos comenzar a instalar y administrar impresoras. Accedemos con la URL http://localhost:631

Vamos a la pestaña administración, y vemos que tenemos las opciones

  • Añadir una impresora
  • Buscar impresoras
  • Administrar impresoras

Una vez nos diga las impresoras disponibles, o seleccionemos Añadir impresora, nos pedirá que seleccionemos el «driver» adecuado. Aquí además tenemos acceso a la configuración del servidor para compartir impresora, permitir imprimir desde internet, administración remota, usar autentificación, permisos y gestión de los log. Seleccionamos la marca de impresora en el desplegable y continuar.

Si tenemos un fichero PPD lo podemos seleccionar para instalar el controlador.

Si no encontramos el modelo exacto de la impresora, lo tendremos que buscar en la página oficial del fabricante y descargarlo, aunque también podemos utilizar la base de datos de drivers de impresoras en Open Printing.

Una vez descargado e instalado, veremos que CUPS detecta el controlador adecuado para el modelo de impresora concreto.

Ya podremos editar las opciones de impresión

y realizar una prueba de impresión en el desplegable Mantenimiento.

Instalar una impresora virtual PDF

Una impresora virtual PDF no es más que una impresora a la que mandamos trabajos de impresión, y en vez de imprimirse en soporte físico como el papel, plástico, etc, se genera un archivo PDF. Para hacerlo, en la aplicación desde la que queremos imprimir, seleccionamos la impresora virtual PDF en lugar de nuestra impresora habitual, y se generará un archivo PDF.

Los archivos PDF generados, se almacenan en nuestra carpeta personal, en un directorio llamado PDF, «/home/usuario/PDF».

Para su instalación, como siempre actualizamos la lista de paquetes con el siguiente comando

sudo apt-get update

instalamos el paquete «cups-pdf»

sudo apt-get install cups-pdf

Tras esta instalación, accederemos a la interfaz web de CUPS, apuntando en nuestro navegador a la URL http://localhost:631. Seleccionamos la pestaña Impresoras y ya tendremos instalada nuestra impresora virtual PDF que se agrega por defecto con el nombre de la cola: PDF.

En la pestaña Administración, podemos Modificar la impresora, Borrarla, Establecer opciones predeterminadas, Poner como predeterminada y Autorizar a usuarios.

Configuración de CUPS con linea de comandos «CLI»

Si la instalación es para utilizarla en red y con más usuarios, con la linea de comandos podremos hilar más fino y configurar todo a nuestro gusto.

Los ficheros de configuración de CUPS son:

/etc/cups/cupsd.conf
/etc/cups/cups-files.conf

Vamos a ver que encontramos en cada uno de ellos y cómo modificar sus directivas para que el servidor de impresión CUPS funcione a nuestro gusto y tenga un cierto nivel de seguridad, y declarar en emplazamiento de los registros tanto de acceso, configuración y errores.

En /etc/cups/cupsd.conf

Este es el fichero principal de configuración. Veamos las directivas más importantes. Editamos el fichero con

sudo nano /etc/cups/cupsd.conf 

En esta primera directiva vemos que el servidor solo escucha en localhost por el puerto 631 (la máquina donde lo hemos instalado).

# Only listen for connections from the local machine.
Listen localhost:631
Listen /run/cups/cups.sock 

Si quisiéramos que además escuchara las conexiones de otro/s equipo/s, tendríamos que añadir

Listen IP_máquina:631

En la siguiente directiva configuramos las restricciones de acceso al servidor, a las páginas de administración, a los ficheros de configuración y a los registros.

# Restrict access to the server...
<Location />
  Order allow,deny
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

Para permitir el acceso a otros usuarios tenemos varias opciones. Tras la linea «Order allow,deny», añadiremos:

Allow from allEsto permitirá el acceso a todos, incluso a traves de inernet. No es recomendable.
Allow @LOCALpermite el acceso a todos pero solo desde localhost
Allow from IPpermite el acceso desde la IP indicada
Allow from IP/24permite el acceso desde toda la red local

Para configurar el acceso a la administración, configuración y registros lo haríamos igual

Require user @SYSTEMUsuario del sistema
Require user @SYSTEM @lpadmin Usuario del sistema perteneciente al grupo lpadmin

Si utilizamos esta directiva tendremos que añadir el usuario autorizado al grupo lpadmin con el comando

sudo usermod -a -G lpadmin usuario

Al usar la directiva «Require user», el servidor CUPS nos mostrará un portal de autenticación de usuario y contraseña al intentar acceder a la página de administración o de impresión.

En este fichero encontrarás muchas más posibilidades de configuraciones, que con las indicaciones anteriores podrás modificar. Si necesitas más información, en la página oficial del proyecto encontrarás toda la que busques, que es mucha y en inglés.

En /etc/cups/cups-files.conf

En este fichero encontramos el grupo de usuarios que pueden administrar CUPS, al que podremos añadir usuarios.

# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup lpadmin

Y las rutas de los ficheros de log (registro) de CUPS.

Para poder registrar la información de las impresiones que realice el servidor de impresión CUPS tenemos que añadir las directivas «PageLogFormat», «LogLevel» y «AccesLogLevel» en el fichero «cupsd.conf», que estará vacío por defecto. Nos quedará como sigue:

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel debug

AccesLogLevel all
	LogLevel debug2
	MaxLogSize 32m	
PageLogFormat "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}"

Ahora nos queda revisar la configuración de «rsyslog» para que registre estos logs y realizar otras modificaciones en los archivos de CUPS para activar los registros

En «cups-files.conf», añadimos la extensión .log

Y finalmente editamos «rsyslog.conf». Aquí se definen los módulos a cargar, las directivas globales y las reglas para el proceso de mensajes de registro. Lo encontramos en la ruta /etc/rsyslog.conf

Reiniciamos los servicios rsyslog y cups

sudo service rsyslog restart
systemctl restart cups.service

Ahora ya podremos enviar documentos a imprimir y comprobar como el fichero page_log.log comienza a llenarse con la información de todas las impresiones.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la página de contacto , tienes otro formulario.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.