Samba - serveur d'impression
Principe
L'objectif est de configurer un serveur d'impression sur un serveur linux (une Ubuntu 12.10 dans cet exemple) pour que des postes de travail clients (Windows et GNU/Linux) puissent utiliser simplement les imprimantes de la société (en réseau ou connectées en direct au serveur).
Le fonctionnement global est le suivant : les imprimantes sont configurées en local sur le serveur avec CUPS (Common Unix Printing system, un des standards Unix pour l'impression), cette étape peut se faire très simplement depuis une interface web. Ensuite, pour être facilement accessibles aux postes Windows, les imprimantes sont partagées avec Samba et les pilotes sont mis à disposition des clients. Il suffit alors, sur le poste client Windows, de visualiser l'imprimante désirée dans l'explorateur ; un simple double-clic sur l'icône va automatiquement installer les pilotes et l'imprimante sera prête à être utilisée. L'installation des imprimantes sur des postes clients GNU/Linux n'est pas abordée ici.
Mise en œuvre
Installer / configurer CUPS
Installer les packages :
apt-get install cups cups-client
Editer le fichier /etc/cups/cupsd.conf et remplacer la ligne :
Listen localhost:631
par :
Listen *:631
Cela permet d'accéder à l'interface web de CUPS depuis l'importe quel poste de travail du réseau. On peut également limiter à une adresse IP ou une plage d'adresses IP pour plus de sécurité. Mais de toute façon, les tâches d'administration nécessitent un mot de passe.
Puis modifier les sections suivantes :
# Restrict access to the server... <Location /> Order deny,allow Deny From All Allow From 127.0.0.1 Allow from 192.168.* </Location> # Restrict access to the admin pages... <Location /admin> Order deny,allow Deny From All Allow From 127.0.0.1 Allow from 192.168.* </Location> # Restrict access to configuration files... <Location /admin/conf> AuthType Default Require user @SYSTEM Order deny,allow Deny From All Allow From 127.0.0.1 Allow from 192.168.* </Location>
Pour autoriser le partage remplacer :
Browsing Off
par :
Browsing On BrowseOrder allow,deny BrowseAddress @LOCAL
Copier les pilotes CUPS de Windows
Créer les repertoires de destination :
mkdir -p /usr/share/cups/drivers/x64
Les pilotes CUPS Windows ne sont plus accessible sur le site web de CUPS. Vous trouverez une copie ici : cups_drivers_win32.zip] et cups_drivers_win64.zip.
Déposer les pilotes 32 bits dans /usr/share/cups/drivers/ et les pilotes 64 bits dans /usr/share/cups/drivers/x64/. Voici la liste des fichiers après la copie :
# ls -lR /usr/share/cups/drivers /usr/share/cups/drivers: total 1436 -rw-r--r-- 1 root root 760 août 28 16:22 cups6.inf -rw-r--r-- 1 root root 67 août 28 16:22 cups6.ini -rw-r--r-- 1 root root 9529 août 28 16:22 cups6.ppd -rw-r--r-- 1 root root 12568 août 28 16:22 cupsps6.dll -rw-r--r-- 1 root root 13672 août 28 16:22 cupsui6.dll -rw-r--r-- 1 root root 129024 août 28 16:22 ps5ui.dll -rw-r--r-- 1 root root 455168 août 28 16:22 pscript5.dll -rw-r--r-- 1 root root 26038 août 28 16:22 pscript.hlp -rw-r--r-- 1 root root 792644 août 28 16:22 pscript.ntf drwxr-xr-x 2 root root 4096 août 28 16:57 x64 /usr/share/cups/drivers/x64: total 2568 -rw-r--r-- 1 root root 760 août 28 16:22 cups6.inf -rw-r--r-- 1 root root 67 août 28 16:22 cups6.ini -rw-r--r-- 1 root root 9529 août 28 16:22 cups6.ppd -rw-r--r-- 1 root root 12568 août 28 16:22 cupsps6.dll -rw-r--r-- 1 root root 13672 août 28 16:22 cupsui6.dll -rw-r--r-- 1 root root 850432 août 28 16:22 ps5ui.dll -rw-r--r-- 1 root root 628736 août 28 16:22 pscript5.dll -rw-r--r-- 1 root root 26038 août 28 16:22 pscript.hlp -rw-r--r-- 1 root root 1062696 août 28 16:22 pscript.ntf
Configurer les imprimantes sous CUPS
Se connecter à l'interface web de cups sur le serveur (http://localhost:631/admin - remplacer localhost par l'ip ou le nom réseau du serveur si vous n'êtes pas en local dessus), et ajouter les imprimantes. C'est simple, je ne mets pas de détails dans ce document. Bien penser à cocher la case autorisant le partage de l'imprimante.
Installer / configurer Samba
Installer le package :
apt-get install samba
Faire une copie du fichier de configuration d'origine au cas où :
cp -p /etc/samba/smb.conf /etc/samba/smb.conf.origine
Créer un mot de passe root pour samba :
smbpasswd -a root
Bien retenir le mot de passe, il sera demandé par la suite. Il peut être différent du mot de passe root système.
Ajouter ou modifier ces lignes dans le fichier /etc/samba/smb.conf :
[global] ... load printers = yes printing = cups printcap name = cups [printers] comment = All Printers path = /var/spool/samba browseable = no public = yes guest ok = yes printable = yes writable = no [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = yes write list = root, @lpadmin
Il est indispensable de mettre guest ok = yes pour que les clients puissent télécharger les pilotes, sinon ils auront un message du type "accès refusé" au moment d'installer les pilotes.
Ajouter les imprimantes CUPS vers Samba
cupsaddsmb -v -U root -a
Ceci ajoute toutes les imprimantes CUPS vers Samba.
Configurer une imprimante sur le client Windows
Ouvrir un explorateur Windows et, dans la barre de recherche, mettre un double anti-slash suivi de l’adresse ip ou du nom réseau du serveur (par exemple : « \\192.168.1.13 ») :
On voit alors apparaitre l’imprimante dans la liste des partages. Faire un double-clic dessus.
Ajouter une nouvelle imprimante sur le serveur
Pour ajouter une nouvelle imprimante :
- L'ajouter sous CUPS en pensant à cocher le partage
- Déposer les pilotes Windows (si non inclus dans les pilotes par défaut) dans /usr/share/cups/drivers/
- L'exporter vers samba :
cupsaddsmb -v -U root -a
- Faire un reload de samba :
service smbd reload
Maintenant, l'imprimante est visible des clients.