11.6. Particularités de SUSE Linux

Quelques fonctionnalités de CUPS ont été adaptées pour SUSE Linux. Certains des principaux changements sont décrits ci-dessous.

11.6.1. Serveur CUPS et pare-feu

Il existe différentes manières de configurer CUPS comme client d'un serveur réseau.

  1. Pour chaque file d'attente du serveur réseau, vous pouvez configurer une file d'attente locale, par l'intermédiaire de laquelle vous envoyez tous les travaux d'impression au serveur réseau correspondant (file de transmission). Cette approche est généralement déconseillée car toutes les machines client doivent être reconfigurées dès que la configuration du serveur réseau est modifiée.

  2. Les travaux d'impression peuvent également être transférés directement vers un seul serveur d'impression. Dans ce type de configuration, n'exécutez pas un démon CUPS local. La commande lp ou les appels de bibliothèque correspondants (ou tout autre programme) peuvent envoyer leurs travaux directement au serveur réseau. Cependant, cette configuration n'est pas adaptée à l'impression sur une imprimante locale.

  3. Le démon CUPS peut écouter les paquets de diffusion IPP envoyés par d'autres serveurs réseau pour annoncer les files d'attente disponibles.

    Il s'agit de la meilleure configuration de CUPS pour imprimer via des serveurs CUPS distants. Toutefois, il existe un risque d'attaque par un pirate, s'il envoie des paquets de diffusion IPP mentionnant des files d'attentes et si le démon local accède à cette file d'attente contrefaite. Si le système affiche ensuite une file d'attente portant le même nom que qu'une autre file d'attente sur le serveur local, le propriétaire du travail peut croire qu'il envoie son travail vers un serveur local, alors qu'il l'envoie sur le serveur du pirate.

YaST peut rechercher les serveurs CUPS soit en balayant tous les hôtes réseau pour vérifier s'ils offrent le service IPP, soit en écoutant les paquets de diffusion IPP. Pour cela, le pare-feu doit laisser passer les paquets entrants sur le port 631/UDP (client pour les services IPP). Ce paramétrage a été automatiquement activé lorsque vous avez configuré l'ordinateur pour qu'il soit dans la zone interne du pare-feu. L'ouverture d'un port pour configurer l'accès à des files d'attente distantes dans la zone externe comporte un risque en matière de sécurité, car un attaquant peut diffuser un serveur qui risque d'être accepté par les utilisateurs. Par défaut, les paquets de diffusion IPP sont refusés dans la zone externe. Pour plus d'informations sur la configuration du pare-feu, reportez-vous à Section 4.1.4.1, « Configuration avec YaST ».

L'utilisateur peut également détecter les serveurs CUPS en balayant les hôtes du réseau local ou en configurant manuellement toutes les files d'attente. Cependant, pour les raisons déjà mentionnées au début de cette section, cette méthode est déconseillée.

11.6.2. Modifications du service d'impression CUPS

Ces modifications sont apparues dans SUSE Linux 9.1.

11.6.2.1. cupsd fonctionne avec le nom d'utilisateur lp

Au démarrage, cupsd passe de l'utilisateur root à l'utilisateur lp. Cela assure un niveau de sécurité beaucoup plus élevé, car le service d'impression CUPS ne fonctionne plus avec des droits illimités, mais uniquement avec les permissions nécessaires au service d'impression

Cependant, l'authentification (vérification du mot de passe) ne peut pas être effectuée via /etc/shadow car lp n'a pas accès à /etc/shadow. Vous devez utiliser à la place l'authentification propre à CUPS, via /etc/cups/passwd.md5. Pour ce faire, entrez le nom d'un administrateur CUPS membre du groupe d'administration CUPS sys, ainsi qu'un mot de passe CUPS, dans /etc/cups/passwd.md5. Pour ce faire, loguez-vous comme utilisateur root et entrez la commande suivante :

lppasswd -g sys -a CUPS-admin-name

Ce paramètre est également essentiel si vous souhaitez utiliser CUPS, l'interface client Web d'administration, ou KDE, l'outil d'administration d'imprimante.

Lorsque cupsd fonctionne avec le nom d'utilisateur lp, /etc/printcap ne peut pas être généré car lp n'est pas autorisé à créer des fichiers dans /etc/. Par conséquent, cupsd génère /etc/cups/printcap. Pour garantir que les applications qui ne peuvent lire les noms de file d'attente que depuis /etc/printcap continuent à fonctionner correctement, /etc/printcap est un lien symbolique qui pointe vers /etc/cups/printcap.

Lorsque cupsd s'exécute avec le nom d'utilisateur lp, le port 631 ne peut pas être ouvert. Par conséquent, cupsd ne peut pas être rechargé avec la commande rccups reload. Utilisez rccups restart à la place.

11.6.2.2. Fonctionnalité étendue pour BrowseAllow et BrowseDeny

Les autorisations d'accès définies pour BrowseAllow et BrowseDeny s'appliquent à tous les types de paquetages envoyés à cupsd. Les paramètres par défaut figurant dans le fichier /etc/cups/cupsd.conf sont les suivants :

BrowseAllow @LOCAL
BrowseDeny All

et

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

Ainsi, seuls les hôtes locaux (LOCAL) ont accès à la commande cupsd sur un serveur CUPS. Les hôtes LOCAL sont ceux dont les adresses IP appartiennent à une interface non-PPP (interfaces dont les indicateurs IFF_POINTOPOINT ne sont pas définis) et au même réseau que le serveur CUPS. Les paquets provenant de tous les autres hôtes sont immédiatement rejetés.

11.6.2.3. cupsd activé par défaut

Dans une installation standard, la commande cupsd est activée automatiquement, ce qui permet un accès confortable aux files d'attente des serveurs réseau CUPS sans autre opération manuelle. Les éléments indiqués à Section 11.6.2.1, « cupsd fonctionne avec le nom d'utilisateur lp » et à Section 11.6.2.2, « Fonctionnalité étendue pour BrowseAllow et BrowseDeny » sont des conditions préalables essentielles pour cette fonctionnalité ; en effet, si ces éléments ne sont pas appliqué, la sécurité est insuffisante pour une activation automatique de la commande cupsd.

11.6.3. Fichiers PPD dans différents paquetages

La configuration d'imprimante YaST configure les files d'attente de CUPS en utilisant uniquement les fichiers PPD installés dans /usr/share/cups/model/ sur le système. Pour trouver les fichiers PPD adaptés au modèle de l'imprimante, YaST compare le fabricant et le modèle déterminé au cours de la détection du matériel avec les fabricants et modèles indiqués dans les fichiers PPD disponibles dans /usr/share/cups/model/ sur le système. Pour cela, la configuration d'imprimante YaST génère une base de données à partir des informations relatives au fabricant et au modèle, extraites des fichiers PPD. Lorsque vous sélectionnez une imprimante dans la liste des fabricants et modèles, vous recevez les fichiers PPD correspondants.

Comme la configuration utilise uniquement des fichiers PPD et aucune autre source d'informations, vous avez l'avantage de pouvoir modifier librement les fichiers PPD dans /usr/share/cups/model/. La configuration d'imprimante YaST reconnaît ces modifications et régénère la base de données des fabricants et modèles. Par exemple, si vous ne possédez que des imprimantes PostScript, vous n'avez normalement besoin ni des fichiers PPD Foomatic du paquetage cups-drivers, ni des PPD Gimp-Print du paquetage cups-drivers-stp. Vous pouvez copier les fichiers PPD pour vos imprimantes PostScript directement vers /usr/share/cups/model/ (s'ils n'existent pas déjà dans le paquetage manufacturer-PPDs) afin d'obtenir une configuration optimale de vos imprimantes.

11.6.3.1. Fichiers PPD CUPS dans le paquetage cups

Les fichiers PPD génériques dans le paquetage cups ont été complétés par des fichiers PPD Foomatic adaptés aux imprimantes PostScript Niveau 1 et Niveau 2 :

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

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

11.6.3.2. Fichiers PPD dans le paquetage cups-drivers

Normalement, le filtre d'impression Foomatic foomatic-rip est utilisé avec Ghostscript sur les imprimantes non-PostScript. Les fichiers PPD Foomatic ont les entrées *NickName: ... Foomatic/Ghostscript driver et *cupsFilter: ... foomatic-rip. Ces fichiers PPD se trouvent dans le paquetage cups-drivers.

YaST préfère un fichier PPD Foomatic, si un fichier PPD Foomatic avec l'entrée *NickName: ... Foomatic ... (recommended) correspond au modèle d'imprimante et si le paquetage manufacturer-PPDs ne contient aucun fichier PPD mieux adapté.

11.6.3.3. Fichiers PPD Gimp-Print dans le paquetage cups-drivers-stp

Au lieu d'utiliser foomatic-rip, vous pouvez employer le filtre CUPS rastertoprinter de Gimp-Print pour de nombreuses imprimantes non-PostScript. Ce filtre et les fichiers PPD Gimp-Print appropriés sont disponibles dans le paquetage cups-drivers-stp. Les fichiers PPD Gimp-Print PPD se trouvent dans /usr/share/cups/model/stp/ et ont les entrées *NickName: ... CUPS+Gimp-Print et *cupsFilter: ... rastertoprinter.

11.6.3.4. Fichiers PPD de fabricants d'imprimantes dans le paquetage manufacturer-PPDs

Le paquetage manufacturer-PPDs contient des fichiers PPD de fabricants d'imprimantes, commercialisés sous une licence suffisamment ouverte. Les imprimantes PostScript devraient être configurées avec le fichier PPD approprié du fabricant d'imprimantes, car ce fichier permet d'utiliser toutes les fonctions de l'imprimante PostScript. YaST préfère un fichier PPD émanant du paquetage manufacturer-PPDs si les conditions suivantes sont remplies :

  • Le fabricant et le modèle déterminés au cours de la détection du matériel correspondent au fabricant et au modèle figurant dans un fichier PPD du paquetage manufacturer-PPDs.

  • Le fichier PPD du paquetage manufacturer-PPDs est le seul qui convient au modèle d'imprimante ou il existe un fichier PPD Foomatic comportant une entrée *NickName: ... Foomatic/Postscript (recommended) qui correspond également au modèle de l'imprimante.

YaST n'utilise aucun fichier PPD du paquetage manufacturer-PPDs dans les cas suivants :

  • Le fichier PPD du paquetage manufacturer-PPDs ne correspond pas au fabricant et au modèle. Cela peut se produire si le paquetage manufacturer-PPDs contient un seul fichier PPD pour des modèles similaires, par exemple, s'il n'existe pas de fichier PPD distinct pour chacun des modèles d'une série mais que le nom du modèle est spécifié sous la forme Funprinter 1000 series dans le fichier PPD.

  • Le fichier PPD Foomatic PostScript n'est pas recommandé. Cela peut être dû au fait que le modèle d'imprimante ne fonctionne pas assez efficacement en mode PostScript, par exemple, il est possible que l'imprimante ne soit pas fiable dans ce mode car elle n'a pas suffisamment de mémoire, ou qu'elle soit trop lente, si le processeur n'est pas assez puissant. De plus, l'imprimante peut ne pas prendre en charge le format PostScript par défaut, par exemple quand cette prise en charge n'est disponible que sous forme de module facultatif.

Si un fichier PPD du paquetage manufacturer-PPDs convient à une imprimante PostScript, mais que YaST ne peut pas la configurer pour les raisons ci-dessus, sélectionnez manuellement le modèle d'imprimante concerné dans YaST.