LINUX:Gestion d'imprimantes

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de Linux


But

Pour pouvoir envoyer un document à l'impression, il faut installer un service d'impression: CUPS.

Ce service sert à:

  • Ajouter une nouvelle imprimante à gérer (ou la supprimer)
  • Envoyer un document à imprimer vers l'imprimante désirée
  • Gérer les files d'impression

Ce service doit être présent aussi bien sur un serveur que sur une station de travail dès lors que l'impression est concernée.


Installation

Le paquet suivant doit être installé s'il ne l'est pas:

dnf install cups

D'autres paquets sont conseillés:

  • pour obtenir les pilotes (ou drivers) des imprimantes HP
dnf install hplip
  • pour générer des fichiers de type PDF à partir d'un document quelconque
dnf install cups-pdf


Configuration

Les fichiers de configuration se trouvent dans le dossier "/etc/cups".

Il convient de passer en revue le fichier "/etc/cups/cupsd.conf".


Ce service CUPS vient avec un interface Web d'administration.

Ce service, à la base, n'est utilisable que sur la machine locale, ce qui est suffisant sur une station de travail autonome. Mais en tant qu'administrateur, on souhaite l'utiliser à distance, ce pour quoi est conçu un interface Web.

En premier lieu, nous allons l'ouvrir à notre réseau pour le protocole IPV4. La ligne:


...
Listen localhost:631
...

est à adapté comme suit:


...
Listen 0.0.0.0:631
...

Dès que l'on lancera ce service on verra apparaître le port 631 à l'écoute:

netstat -nltp | grep 631

qui donnera:


tcp        0      0 0.0.0.0:631             0.0.0.0:*               LISTEN      1334/cupsd


Ensuite il faut permettre à une ou plusieurs adresses IP de notre réseau local d'y accéder. On ajoute des lignes en gras suivantes:


...
<Location />
  Order allow,deny
  Allow From 192.168.1.2
</Location>
 
<Location /admin>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From 192.168.1.2
</Location>
 
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From 192.168.1.2
</Location>
 
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From 192.168.1.2
</Location>
...

Pour que la machine "192.168.1.2" puisse accéder à l'interface Web.


Enfin on impose l'utilisation du cryptage Web (HTTPS):


...
DefaultEncryption Required
...

Il va utiliser le certificat auto-signé généré automatiquement. Mais il est possible de configurer un certificat comme décrit dans l'article sur la Sécurité via les certificats.


Activer et lancer le service

Le service à lancer est CUPS. La première commande active le service, son socket et son chemin pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.

systemctl enable cups
systemctl start cups
systemctl restart cups


Il est conseillé d'activer le service Avahi si on désire rechercher des imprimantes sur le réseau:

systemctl enable avahi-daemon
systemctl start avahi-daemon
systemctl restart avahi-daemon


Configurer le mur de feu ou FireWall

Vous avez sûrement activé le FireWall du serveur. Comme c'est un service proposé, il faut ouvrir diverses portes.

En premier, ce service propose un interface Web d'administration sur le port TCP/631. Comme spécifié ci-dessus, on ne l'a ouvert que pour une seule machine de notre réseau local. Et d'autre part, il va aussi écouter le réseau à la recherche d'autres services d'impression disponibles (mDNS, port UDP/5353). Signalons que les imprimantes réseaux, spécialement de la marque HP, sont accessibles via les ports de TCP/9100 à TCP/9102 et envoient des informations en utilisant le protocole SNMP (port UDP/161).

Nous utilisons IPTABLES; voici les lignes à ajouter:


-A INPUT  -p tcp -m tcp --dport  631  -s 192.168.1.2    -m conntrack --ctstate NEW -j ACCEPT
-A INPUT  -p udp -m udp --dport  5353 -s 192.168.1.0/24 -m conntrack --state   NEW -j ACCEPT
-A INPUT  -p tcp -m tcp --sport  161  -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT


Projet

Pour illustrer diverses utilisations, nous avons regroupé différents cas dans un projet selon le schéma ci-dessous.



Nous avons:

  • une machine Linux B secondaire
    • avec son service CUPS
      • qui utilise une imprimante parallèle reliée à cette machine Linux
  • une machine Linux A qui sera au centre de notre infrastructure d'impression.
    • avec le service CUPS
      • qui comprend une imprimante virtuelle PDF
      • qui utilise une imprimante USB reliée à cette machine Linux
      • qui envoie ses impressions à une imprimante réseau
      • qui envoie ses impressions à l'imprimante parallèle via la machine Linux B
    • avec le service SAMBA (protocole SMB)
  • une machine MS Windows
    • client SMB du service SAMBA de la machine Linux A
      • qui envoie ses impressions au service CUPS de la machine Linux A


Avec cette infrastructure:

  • la machine Linux B peut imprimer localement sous Linux
  • la machine Linux A peut imprimer sous Linux sur toutes les imprimantes locales et réseaux
  • la machine MS Windows peut imprimer sous Windows sur toutes les imprimantes


Ajout d'imprimantes

Nous allons utiliser l'interface Web. Nous y accédons en utilisant un explorateur Internet tel Firefox. Notre serveur s'appelant "serverdb.home.dom" nous utilisons l'URL suivante: https://serverdb.home.dom:631/admin

Nous obtenons l'écran suivant à partir duquel nous allons ajouter diverses imprimantes de divers types.

Un nom d'utilisateur et son mot de passe sera demandé en guise d'authentification. Vous donnez le nom d'un utilisateur de la machine Linux hébergeant ce service CUPS qui a les droits administrateurs.



Remarquez que l'option "Partager les imprimantes connectées à ce système" est cochée (sur la machine Linux B), ce qui nous permettra dans le cas, de connecter la machine Linux A à l'imprimante de la machine Linux B.


Ajout d'une imprimante virtuelle PDF

La première sera une imprimante virtuelle qui va générer des fichiers PDF. Nous le faisons sur la machine Linux A mais on peut le faire aussi sur la machine Linux B.


Ajout d'une imprimante sur le port parallèle

Sur notre vieille machine Linux B, nous avons encore un port parallèle et aussi une vieille imprimante laser Brother. Nous allons l'ajouter.


Ajout d'une imprimante sur le port USB

Actuellement la majorité des imprimantes se connectent via le port USB. Nous allons ajouter une imprimante HP sur la machine Linux A.


Ajout d'une imprimante réseau

Beaucoup d'imprimantes se connectent directement sur le réseau câble ou plus souvent Wifi. Notre imprimante HP a aussi un port Wifi. Nous allons l'ajouter sur la machine Linux A.


Ajout d'une imprimante distante d'une autre machine

Sur la machine Linux B, nous avions ajouté une imprimante locale (sous-point deux ci-dessus). A partie de la machine Linux B, nous allons l'ajouter. Les impressions de la machine Linux A seront donc renvoyés vers cette machine Linux B qui se chargera de l'imprimer.


Fichiers de configuration des imprimantes

Toute la configuration des diverses imprimantes ajoutées ci-dessus est ajoutée dans le fichier "/etc/cups/printers.conf". Pour chaque imprimante, est généré un pilote portant le même nom que celui de l'imprimante; ils se retrouvent dans le dossier "/etc/cups/ppd" et ont l'extension ".ppd".


Un autre fichier synthétique "printcap" est aussi créé. On y retrouve chaque imprimante, une par ligne.

Son emplacement diffère selon les distributions:

  • sur Linux Fedora, il se trouve dans le dossier "/etc",
  • sur Linux Mint, il se trouve dans le dossier "/run/cups/printcap"

Son emplacement peut être modifié via une option du fichier "/etc/cups/cups-files.conf". Par exemple, l'extrait ci-dessous le met dans son emplacement traditionnel:


...
Printcap /etc/printcap
...

Il est inutile de le modifier manuellement car il est généré automatiquement par le service CUPS.


Ajout et gestion d'imprimantes sous Linux sur une station de travail

L'ajout et la gestion d'imprimantes sous Linux sur une station de travail peut se faire comme ci-dessus via l'interface Web mais une gestion interne est intégrée à l'interface de fenêtrage de Linux (Gnome, Cinammon,...).

Par exemple, sous l'interface Cinammon, on trouve en bas à droite, une icône représentant une imprimante. Si on clique dessus, le liste des imprimantes apparaît.



Si on y sélectionne, la première entrée de la liste "Imprimantes", une fenêtre s'ouvre reprenant toutes les imprimantes configurées.



La suite est proche dans sa conception, de l'interface Web de CUPS. Par exemple, voici le contenu de la fenêtre pour l'ajout d'une imprimante accessible via le bouton "Ajouter".



Utilisation des imprimantes du serveur

Si vous avez configuré des imprimantes gérées sur le serveur SAMBA par le service CUPS, elles peuvent être utilisées par les clients SMB comme Microsoft Windows.




retour au menu de Linux