12.7. Particularidades en SUSE LINUX

CUPS se ha modificado en algunos aspectos para un mejor funcionamiento con SUSE LINUX. A continuación se explican las modificaciones más importantes:

12.7.1. El servidor CUPS y el cortafuegos

Existen numerosos métodos para configurar CUPS como cliente de un servidor de red.

  • Se pueden crear colas locales para cada cola del servidor de red y utilizarlas para enviar los trabajos de impresión a la cola respectiva del servidor de red. Este método no es recomendable ya que si se modifica la configuración del servidor de red, será necesario volver a configurar todos los clientes.

  • También es posible reenviar los trabajos de impresión a un solo servidor de red. Para esta configuración no es necesario que se ejecute el daemon CUPS; lpr (o librerías equivalentes activadas por otros programas) puede enviar trabajos de impresión directamente al servidor de red. No obstante, este tipo de configuración no funciona si se quiere imprimir en una impresora conectada localmente.

  • Otro método consiste en estar a la escucha de paquetes broadcast IPP. El daemon CUPS puede escuchar este tipo de paquetes enviados por otros servidores de red para anunciar las colas de impresión disponibles. Esta es la configuración de CUPS más adecuada para imprimir a través de un servidor CUPS remoto. No obstante, con esta configuración también se corre el riesgo de que un agresor envíe al daemon paquetes broadcast IPP con sus colas y de que estas colas estén disponibles a través del daemon local. Si el daemon anuncia una de estas colas con el mismo nombre que otra cola del servidor local y el paquete IPP se ha recibido antes, los trabajos de impresión serán enviados al servidor del agresor en lugar de al servidor local sin que el usuario se aperciba de ello. Esta configuración requiere que el puerto UDP 631 esté abierto para paquetes entrantes.

Para detectar un servidor CUPS, YaST puede sondear (“scan”) todos los equipos de una red red para ver si ofrecen este servicio, o bien estar a la escucha de paquetes broadcast IPP (siguiendo el principio descrito en las líneas superiores). Este método también se utiliza durante la instalación para detectar un servidor CUPS para la propuesta de instalación. El segundo método requiere que el puerto UDP 631 esté abierto para paquetes entrantes.

En cuanto al cortafuegos, está preconfigurado (conforme a la propuesta) de tal forma que no acepta los broadcasts IPP en ninguna interfaz. Esto significa que tanto el segundo método para detectar un servidor CUPS como el tercer método para acceder a colas de impresión remotas no pueden funcionar. Para que funcionen es necesario modificar la configuración del cortafuegos, bien marcando una interfaz como interna para que el puerto esté abierto por defecto, bien abriendo explícitamente el puerto de las interfaces externas. Ninguna de estas opciones puede estar activada por defecto por razones de seguridad. La apertura del puerto exclusivamente a efectos de detección (para configurar el acceso remoto a las colas conforme al segundo método) constituye también un problema de seguridad: los usuarios podrían no leer la propuesta y aceptar el servidor de un agresor externo.

Resumiendo, el usuario debe modificar la propuesta de configuración del cortafuegos para permitir a CUPS detectar colas remotas durante la instalación y posteriormente acceder a las colas remotas de múltiples servidores en la red local. Como alternativa, el usuario puede sondear los ordenadores de la red para detectar un servidor CUPS o bien configurar todas las colas manualmente (lo cual no se recomienda por las razones mencionadas arriba).

12.7.2. Administración con el frontal web de CUPS

Para poder utilizar la administración con el frontal web de CUPS o la herramienta de administración de impresoras de KDE, es necesario configurar al usuario root como administrador de CUPS con el grupo de administración sys y una contraseña para CUPS. Esto se lleva a cabo ejecutando el siguiente comando como root:

lppasswd -g sys -a root

En caso contrario no es posible llevar a cabo la administración a través de la web porque la autentificación falla si no se ha configurado ningún administrador de CUPS. En lugar de root, otro usuario puede figurar como administrador de CUPS; vea a este respecto la Sección 12.7.3, “Cambios en el sistema de impresión CUPS (cupsd)” .

12.7.3. Cambios en el sistema de impresión CUPS (cupsd)

Los siguientes cambios fueron introducidos a partir de SUSE LINUX 9.1.

12.7.3.1. cupsd se ejecuta como usuario lp

Después de iniciarse, cupsd cambia del usuario root a lp. Esto incrementa la seguridad ya que el servicio de impresión de CUPS ya no se ejecuta con derechos ilimitados sino sólo con los derechos necesarios para el servicio de impresión.

La desventaja de este cambio radica en que ya no es posible realizar la autentificación (para ser más exacto, la comprobación de la contraseña) mediante /etc/shadow porque lp no tiene acceso a este archivo. En su lugar debe utilizarse la autentificación específica de CUPS vía /etc/cups/passwd.md5. Para ello es preciso dar de alta un administrador de CUPS con el grupo de administración sys y una contraseña de CUPS dentro de /etc/cups/passwd.md5. Ejecute el siguiente comando como root:

lppasswd -g sys -a CUPS-admin-name

Cuando cupsd se ejecuta como lp, no es posible crear /etc/printcap ya que lp no puede crear archivos dentro del directorio /etc/. Por eso cupsd crea /etc/cups/printcap. Además se genera un enlace simbólico /etc/printcap que apunta a /etc/cups/printcap.

Después de ejecutar cupsd como lp ya no se puede abrir el puerto 631. Esto hace que resulte imposible volver a cargar cupsd mediante el comando rccups reload. En lugar de ello se puede utilizar rccups restart.

12.7.3.2. Funcionalidad general de BrowseAllow y BrowseDeny

Las condiciones de acceso definidas en BrowseAllow y BrowseDeny se refieren a todos los paquetes enviados a cupsd. La configuración por defecto en /etc/cups/cupsd.conf es la siguiente:

BrowseAllow @LOCAL
BrowseDeny All

y además

<Location />
  Order Deny,Allow
  Deny From All
  Allow From 127.0.0.1
  Allow From 127.0.0.2
  Allow From @LOCAL
</Location>

De este modo, sólo los equipos de tipo LOCAL pueden acceder al cupsd en el servidor CUPS. Los ordenadores LOCAL son aquellos cuya dirección IP no pertenece a una interfaz punto a punto (una interfaz que carece de la bandera IFF_POINTOPOINT) y cuya dirección IP pertenece a la misma red del servidor CUPS. Los paquetes procedentes de cualquier otro ordenador se rechazan inmediatamente.

12.7.3.3. Activación automática de cupsd

Después de una instalación estándar, cupsd se activa automáticamente permitiendo así acceder de forma directa a las colas de impresión de servidores CUPS en la red sin necesidad de ninguna intervención adicional. Las dos restricciones de seguridad mencionadas (ver Sección 12.7.3.1, “cupsd se ejecuta como usuario lp” y Sección 12.7.3.2, “Funcionalidad general de BrowseAllow y BrowseDeny) son condiciones necesarias para la activación automática de cupsd sin comprometer la seguridad.

12.7.4. Archivos PPD en diversos paquetes

12.7.4.1. Configuración de impresora sólo con archivos PPD

La configuración de impresora de YaST crea las colas de CUPS sólo a partir de los archivos PPD almacenados en el sistema en /usr/share/cups/model/. YaST compara el nombre de la impresora detectada con los nombres de fabricantes y modelos que se encuentran en los archivos PPD de /usr/share/cups/model/. A partir de esta información, YaST crea una base de datos con los nombres de fabricantes y modelos. De esta forma es posible seleccionar el modelo de impresora y utilizar el archivo PPD correcto.

La ventaja de la configuración exclusivamente a base de archivos PPD radica en la posibilidad de modificar los archivos PPD de /usr/share/cups/model/. YaST reconoce los cambios y vuelve a crear la base de datos de modelos y fabricantes. En caso de uso exclusivo de impresoras PostScript, no se requieren los archivos PPD del paquete cups-drivers ni los archivos PPD Gimp-Print del paquete cups-drivers-stp. Puede copiar los archivos PPD correspondientes a las impresoras PostScript utilizadas en /usr/share/cups/model/ y configurar las impresoras de forma óptima. Esto no es necesario si los archivos PPD ya se encuentran en el paquete manufacturer-PPDs.

12.7.4.2. Archivos PPD CUPS en el paquete cups

Los siguientes archivos PPD Foomatic han sido adaptados para dar soporte especial a las impresoras PostScript de nivel 1 y 2 y se han añadido a los archivos PPD genéricos del paquete cups.

  • /usr/share/cups/model/Postscript-level1.ppd.gz

  • /usr/share/cups/model/Postscript-level2.ppd.gz

12.7.4.3. Archivos PPD en el paquete cups-drivers

Para dar soporte a las impresoras que no son PostScript se utiliza normalmente el filtro de impresión foomatic-rip junto con GhostScript. Los archivos PPD Foomatic adecuados se identifican con las líneas *NickName: ... Foomatic/Ghostscript driver y *cupsFilter: ... foomatic-rip. Estos archivos se encuentran en el paquete cups-drivers.

YaST da preferencia a un archivo PPD Foomatic cuando existe un archivo PPD Foomatic recomendado para el modelo de impresora que se reconoce por *NickName: ... Foomatic ... (recommended) y el paquete manufacturer-PPDs no contiene ningún archivo PPD más adecuado (ver abajo).

12.7.4.4. Archivos PPD Gimp-Print en el paquete cups-drivers-stp

Muchas impresoras que no son PostScript pueden utilizar el filtro rastertoprinter de Gimp-Print en lugar de foomatic-rip. Este filtro y los archivos PPD correspondientes se encuentran en el paquete cups-drivers-stp. Los archivos PPD Gimp-Print se encuentran en /usr/share/cups/model/stp/ y se identifican con la líneas *NickName: ... CUPS+Gimp-Print y *cupsFilter: ... rastertoprinter.

12.7.4.5. Archivos PPD de fabricantes de impresoras en el paquete manufacturer-PPDs

El paquete manufacturer-PPDs contiene archivos PPD publicados con una licencia de carácter abierto. El archivo PPD del fabricante permite el uso de todas las características de la impresora PostScript y es recomendable usarlo. YaST da preferencia a un archivo PPD del paquete manufacturer-PPDs si se cumplen las siguientes condiciones:

  • El fabricante y modelo detectado coincide con el fabricante y modelo de un archivo PPD del paquete manufacturer-PPDs.

  • El archivo PPD de manufacturer-PPDs es el único adecuado para el modelo de impresora o hay otro archivo PPD de tipo Foomatic con la siguiente entrada: *NickName: ... Foomatic/Postscript (recommended) también para ese modelo de impresora.

De manera correspondiente, YaST no utiliza un archivo PPD de manufacturer-PPDs en los siguientes casos:

  • El archivo PPD de manufacturer-PPDs no se corresponde con el nombre de fabricante y modelo. Esto pasa, por ejemplo, cuando el paquete manufacturer-PPDs sólo contiene un archivo PPD para modelos parecidos. Por ejemplo, un nombre como Funprinter 1000 series en el archivo PPD identifica toda una serie de impresoras en lugar de almacenar un archivo PPD para cada modelo.

  • El archivo PPD de PostScript Foomatic no aparece como “recommended”: la impresora no funciona de forma suficientemente fiable en modo PostScript (ej. por falta de memoria o de potencia de procesador) o bien no soporta PostScript de forma nativa (ej. porque el soporte nativo PostScript se realiza con un módulo opcional).

Si manufacturer-PPDs contiene un archivo PPD adecuado para una impresora PostScript pero YaST no lo puede configurar por las razones mencionadas, el modelo de impresora debe seleccionarse manualmente.


SUSE LINUX Manual de administración 9.3