I)    Présentation du serveur d’impression

    1)    Objectif

 
Le but de cette installation est de configurer un poste Linux qui puisse gérer les impressions de postes Windows NT. De cette façon, tous les postes Windows NT du réseau (appelés clients) imprimeront par l’intermédiaire d’un seul ordinateur Linux (appelé serveur). Ce dernier se chargera de gérer les flux de d’impression afin de les déployer sur les imprimantes réseaux voulues.
Pour ce faire je vais utiliser la dernière version du logiciel Samba : 2.2.0. Il permet de gérer les partages entre les environnements Unix et Windows. « Les partages » permettent aux postes Windows d’accéder aux répertoires des ordinateurs Unix ou Linux.
La dernière version de Samba a pour nouvelle fonctionnalité de permettre un partage de ses imprimantes avec gestion des drivers. En effet, on peut installer les pilotes d’impressions sur le serveur Linux. Ces derniers seront automatiquement téléchargés par le client Windows lors de la mise en place de son imprimante. Ainsi, il n’y aura plus besoin de chercher le driver lors de l’installation, celui ci se mettra en place automatiquement.
L’ajout d’un tel serveur simplifie la vie des administrateurs du réseau. En effet, comme les pilotes se mettent en place automatiquement, les utilisateurs du réseau peuvent installer eux même les imprimantes. Ainsi, les risques d’erreurs dues à l’opérateur sont maîtrisés.

    2)    Intérêt de la solution Samba plutôt que d’un serveur d’impression Windows NT

 
Le serveur d’impression des postes Windows est habituellement Windows NT Serveur mais cette solution n’est pas apparue la plus satisfaisante. On distingue plusieurs motivations à l’utilisation de samba plutôt que NT Serveur :
Nous allons donc procéder à l’installation du système d’exploitation linux Red-Hat 7.0 sur lequel sera mis en Samba 2.2.0.
 

II)    Mise en place du serveur Samba 2.2.0

    1)    Installation de Red-Hat 7.0

La distribution de Linux que nous choisissons est la Red-Hat version 7.0.
Pour l’installation, nous prenons les partitions suivantes :
Nous choisissons également les options d’installations suivantes :
Installation sans aucun serveur : Le seul serveur qui nous intéresse Samba 2.2.0 or il n’est pas disponible dans la version 7.0 de Red-Hat.

Environnement graphique X-Window : sera utile pour l’installation des imprimantes.

Support d’impression : permettra d’installer plus facilement les différentes imprimantes.

Station de travail réseau : contient les outils nécessaires pour installer, maintenir l’interaction avec les autres postes du réseau.
 

L’installation du réseau est intégrée dans l’installation de Linux et ne présente pas de problèmes particuliers. Cependant, si le poste Linux ne peut que « pinger » sur les adresses IP des autres postes du réseau, il faut rajouter dans le fichier « /etc/resolv.conf » la ligne « domain ZONE » où ZONE est la zone du DNS.

Pour la suite du rapport, nous utiliserons « slinux » comme nom du poste Linux.

    2)    Installation des packages de compilation de Samba

 
Pour l’installation de samba 2.2.0 il faut tout d’abord installer les packages de compilation. La compilation permettra de créer Samba à partir des fichiers sources qui sont inclus dans samba-lastest.tar.gz .
Ces packages sont :
 
NB : Il est important d’installer ces packages dans l’ordre établi ci dessus. Dans le cas contraire, on se heurte à des problèmes d’interdépendances entre packages.

Rappel : Pour accéder au lecteur de CD-ROM, il faut taper la commande « mount /mnt/cdrom ». Pour libérer le lecteur une fois que l’installation est faite, il suffit de faire « umount /mnt/cdrom ».

    3)    Compilation et installation de Samba

 
Tout d’abord, il faut décompresser le fichier « samba-lastest.tar.gz » par la commande
« tar –zxvf ./samba-lastest.tar.gz ». Dès lors, nous avons à notre disposition les sources, les documentations et des exemples dans le répertoire ./samba-2.2.0.
Il faut maintenant créer le fichier « Makefile ». Pour cela il faut lancer « ./configure » depuis le répertoire « ./samba-2.2.0/source ».
On compile le Makefile par la commande «make». On termine l’installation de samba par la commande « make install ».

Le système est désormais prêt mais avant d’utiliser Samba, nous allons installer les imprimantes sur le serveur.

III)    Installation des imprimantes sur le serveur et sur les clients

    1)    Installation des imprimantes sur le serveur Linux

 
Pour que les postes clients puissent imprimer, il faut qu’auparavant le serveur puisse faire de même. Dans le monde Unix, dont Linux fait partie, les fichiers qui doivent être imprimés sont stockés dans une file d’attente appelée « queue d’impression ». Cette dernière est en fait un répertoire dans lequel on peut trouver les fichiers de configuration de l’imprimante. Ces queues sont par défaut situées dans le répertoire « /var/spool/lpd ».
De même, le fichier « /etc/printcap » regroupe l’ensemble des imprimantes présentes sur le serveur. S’il arrive une erreur, il faut donc en premier lieu éditer ce fichier. En outre, le programme qui s’occupe des impressions s’appelle « lpd ». A chaque changement du fichier printcap, donc lors de l’ajout ou de la suppression d’une imprimante, « lpd » doit être relancé.
Remarque : Pour une imprimante donnée, si on veut mettre un commentaire, il faut que le contenu du fichier soit ainsi :

«

Nom_imprimante | commentaire:\

    : sd=/var/spool/lpd/Nom_imprimante :\

etc …

»

NB : Il ne faut pas oublier de donner les droits en écriture pour tout le monde sur les queues d’impressions. En effet, par défaut seul les administrateurs ont ces droits . Si les utilisateurs du domaine ne peuvent pas écrire dans les queues d’impression alors ils ne peuvent pas y mettre le fichier qu’ils veulent imprimer.
 

Pour installer une imprimante sur un poste Linux je me suis penché sur 2 méthodes :
 

    2)    Printtool

 
Printtool est un programme installé lors de la mise en place de Linux si on a choisit
l’option « Support d’impression ». Pour lancer l’interface graphique, il suffit de faire « startx ». Dès lors, on accède à l’interface graphique en faisant « CTRL+ALT+F7 ». On ouvre alors une fenêtre d’émulation de terminal dans laquelle on lance la commande « printtool ».
    Dans la fenêtre, on clique sur « Add » et on sélectionne la case « Remote unix (lpd) queue ». Dans la nouvelle interface il faut remplir les champs de cette façon :
    Name : Nom_imprimante

    Spool directory : /var/spool/lpd/Nom_imprimante

    File limit in kb (0 = no limit) : 0

    Remote local host : adresse IP de l’imprimante concernée

    Remote queue : (vide)

    Input filter : driver voulu. Le driver s’obtient en cliquant sur « Select ». On choisit alors les paramètres adaptés à l’imprimante.
 

Une fois revenu à la fenêtre initiale, on doit faire « restart lpd » dans le menu « lpd ».

Il faut alors tester l’impression en lançant la commande : « lpr –PNom_imprimante /etc/printcap ». Si des problèmes persistent, il est préférable de redémarrer l’ordinateur ou de se servir de la commande « lpstat ».

    3)    Hpwebjetadmin

Hpwebjetadmin est un logiciel de gestion des imprimantes réseaux. C’est en fait un
Serveur web qui tourne sur le serveur d’impression. Il est accessible depuis n’importe quel poste client pourvu d’un navigateur web (Internet Explorer, Netscape, etc …).
    Hpwebjetadmin est disponible sur le site « http://www.hp.com ». Le fichier d’installation est hpwebjet_linux.selfx. Il faut le rendre exécutable donc il faut taper la commande : « chmod +x hpwebjet_linux.selfx ». Dès lors, on lance «  ./hpwebjet_linux.selfx ». L’installation est très simple et il suffit de garder les valeurs par défaut que nous conseille le programme d’installation.
    Une fois l’installation terminée, il faut lancer un navigateur de n’importe quel poste du réseau (y compris le serveur) pour atteindre l’adresse « http :slinux :8000 » (8000 étant le numéro de port choisi pendant l’installation de hpwebjetadmin). A la page de présentation on doit cliquer « Continue » puis « Continue ». Il faut cocher ensuite la case pour ne plus revoir réapparaître ces pages de présentations. On entre dès lors dans le panneau de control de hpwebjetadmin.

    Si les imprimantes du réseau n’apparaissent pas il faut alors les ajouter une par une en cliquant sur « Add device ». Il suffit dans ce cas d’entrer l’adresse IP de l’imprimante pour qu’elle soit détectée. On remarque qu’avec ce logiciel il est très aisé de gérer l’ensemble des imprimantes d’un réseau. Nous allons maintenant installer une imprimante.

    Tout d’abord, il faut double cliquer sur l’imprimante qui nous intéresse. Dans le bandeau supérieur il faut cliquer sur « Install ». On entre alors automatiquement dans la fenêtre « Create queue ». On remarque qu’il n’y a aucun « Print Server » donc on sélectionne la case du dessous et on entre le nom du serveur : slinux. On clique « Next ».

    La page qui apparaît demande le nom du « Device ». On entre alors le nom réseau de l’imprimante. La page suivante permet de choisir le driver en fonction du constructeur et du type de l’imprimante. Il faut également donner un nom à la queue d’impression. pour quitter la page, il faut cliquer sur « Create ». Hpwebjetadmin demande alors une authentification : il faut s’identifier comme root. A la fin de l’installation vous avez la possibilité d’imprimer une page de test. Si celle ci ne s’imprime pas, il faut lancer la commande « lpr –PNom_imprimante /etc/printcap » où Nom_imprimante est le nom que l’on a donné à la queue d’impression. Si la manipulation ne marche pas, il faut relancer le démon « lpd ». Cependant, il vaut mieux pour cela redémarrer le serveur.

    4)    Gestion des problèmes d’impression

Pour surveiller les imprimantes du réseau, on peut utiliser depuis le serveur la
commande « lpstat ». Celle ci nous renseigne sur l’état des imprimantes.
Lorsqu’il apparaît des problèmes avec les impressions (fichiers à supprimer,
imprimante en panne), la commande « lpc » est providentielle. Une fois lancée, en tapant « ? », on obtient les paramètres du programme. On peut dès lors :

 

    IV)    Utilisation et configuration du serveur Samba

    1)    Démarrer, arrêter, lancer Samba en mode démon

Le serveur Samba se décompose en deux démons. Ces derniers sont des programmes
qui travaillent en fond de tache. Pour lancer ces deux processus, on peut soit choisir entre plusieurs solutions :
Lancer à la main : Pour cela, il faut taper les lignes de commandes suivantes : « /usr/local/samba/bin/nmbd –D » et « /usr/local/samba/bin/smbd –D ».
Lancer au démarrage de la machine : Dans le répertoire «/etc/rc3.d» il faut rajouter les liens suivants par les commandes  :

« ln –s /usr/local/samba/bin/nmbd S33nmbd »

« ln –s /usr/local/samba/bin/nmbd S33smbd »

Le répertoire rc3.d a été choisi car, lorsque l’on démarre, on se situe en run level 3. Le run level se change dans « /etc/inittab ». La valeur 33 veut    dire que Samba sera le 33e processus démarré.

    Lancer un script à la main ou au démarrage. Ce script est donné en annexe.

    2)    Configurer Samba : Paramétrer le fichier smb.conf

Les paramètres de Samba se situent dans le fichier « /usr/local/samba/lib/smb.conf ».
Il est très bien commenté et possède une entrée dans le manuel (man). Ce fichier se trouve dans le répertoire « samba-2.2.0/packaging/RedHat ».
    Comme nous l’avons expliqué auparavant, Samba permet de partager des répertoires du monde Unix aux autres plates-formes. Pour cela, il faut d’abord configurer le fichier smb.conf de façon à ce qu’il convienne au réseau. Bien que le fichier smb.conf se situe en annexe, nous allons le détailler ici.
    Tout d’abord, il faut noter que tous les noms de partage (nom par lequel le client verra le répertoire du serveur) sont entre [].On appelle également ces noms de partages des sections. Les paramètres d’un partage commencent au nom de la section et se terminent au libellé de la suivante.

 
 
Ligne de commande dans smb.conf
Commentaire
[global]

 
 
Cette section définit les paramètres par défaut des autres partages
workgroup = TST

 
 
C’est le nom du domaine dans lequel se trouve notre serveur.
browseable = yes

 
 
Permet au partage d’être « butinable » c’est à dire d’être vu de l’extérieur.
server string = Serveur d’impression Samba %v

 
 
Chaîne de commentaire qui sera visible depuis les explorateurs de Windows. %v affiche la version courante de Samba (2.2.0).
hosts allow = 159.217.217.0/255.255.255.0
Adresse du réseau à laquelle on accepte de répondre.
Printcap name = /etc/ printcap
Chemin du fichier qui gère les imprimantes
load printers = yes
Les imprimantes sont définies dans le fichier printcap
Print command = lpr –P%p %s ; rm %s

 
 
Commande que le serveur va lancer pour imprimer le fichier %s. On récupère l’imprimante choisie par %p. On efface le fichier de la queue d’impression par rm %s.
printing = lprng
Option conseillée par la documentation de Samba
printer admin = root, @drivers
Administrateur d’impression : liste des personnes pouvant installer les drivers des imprimantes sur le serveur.
Show add printer wizard = no
N’affiche pas l’icône « Ajout d’imprimante »
log file = /var/log/smba/log.%m
Donne le chemin des traces de Samba. Tout les évènements seront écrits dans des fichiers log.%m où %m correspond au nom de la machine cliente.
max log file = 50
Nombre de ligne maximum d’un fichier trace.
security = server
Option conseillée par Samba
Password server = pdc
Nom de l’ordinateur qui gère les mots de passe du réseau.
[Imprimante 1]
Partage de l’imprimante 1
Comment = Imprimante rez de chaussée
Commentaire vu par l’explorateur Windows.
Path = /var/spool/ lpd/imprimante1
Chemin du répertoire qui est partagé. Le nom d’un répertoire n’a rien à voir avec le nom du partage
broweable = yes.
La section est accessible depuis l’explorateur
printable = yes
Nécessaire
writable = no
On n'a pas le droit d’écrire dans ce partage
create mask = 0777
Détermine les droits donnés lorsque l’on crée un fichier ou un répertoire.
[print$]
Nouveauté de la version 2.2 de Samba. 
path = /usr/local/samba/drivers
Indique où vont se trouver les drivers
public = yes
Les invités du domaine peuvent accéder au partage.
broweable = yes
Nécessaire
writable = yes.
Permet d ‘écrire les drivers
Create mask = 0777 
Détermine les droits d’accès donnés lorsque l’on crée un fichier ou un répertoire.

    La configuration du fichier smb.conf peut être vérifiée par le programme « testparm ».

    Il est possible de ne créer qu’un partage pour toutes les imprimantes au lieu de différencier comme dans l’exemple ci dessus. En effet, dans ce dernier on voit que le partage « Imprimante 1 » pointe sur « /var/spool/lpd/imprimante1 » qui est une queue d’impression. On aurait pu créer un partage « Imprimante » pointant sur « /var/spool/lpd » et toutes les queues d’impression auraient été disponibles. Il est préférable de séparer les imprimantes pour permetre une meilleure administration vis à vis des droits d’accès.

Remarque :On voit que le champs « add printer wizard  = no ». Ce paramètre permet d’afficher ou non sur le partage des imprimantes du serveur l’icône « Ajout d’imprimantes ». Cependant, l’installation des drivers et des imprimantes par ce chemin ne fonctionne pas. En effet, cette fonctionnalité nécessite la présence d’un autre paramètre : « add printer command ». Ce dernier prend pour valeur un exécutable qui n’existe pas encore sous Samba.

    3)    Le partage [print$]

 
Ce partage correspond au répertoire où seront stockés les drivers des imprimantes. Ce nom de section est codé en dur dans Samba et il correspond à une entrée dans la base de registre Windows. Ce partage doit pointer sur un répertoire possédant les répertoires suivants :
  • W32ALPHA
  • W32MIPS
  • W32PPC
  • WIN40
  • W32X86
  • C’est dans ce dernier répertoire que seront stockés les pilotes. Il est important que les utilisateurs définis comme « printer admin » dans smb.conf puissent écrire dans ce répertoire. En effet, seuls les administrateurs d’impression ne doivent pouvoir mettre en place les drivers sur le serveur.
     
     

    V)    Installation des imprimantes sur les postes clients

        1)    Postes Windows NT

     
    Pour installer l’imprimante, il faut tout d’abord mettre en place les pilotes sur le serveur. Pour cela, il faut qu’un utilisateur qui possède les droits d’installations sur un poste NT se logue sur le domaine. Ensuite, par l’explorateur Windows, il doit aller dans le répertoire « imprimantes » du serveur d’impression en se connectant en tant qu’administrateur d’impression. Dès lors, l’opérateur doit faire un clique droit sur l’imprimante et choisir « Propriétés». Les avertissements qui apparaissent alors sont normaux.
    On entre alors dans la fenêtre de configuration de l’imprimante. On voit que le pilote est « NO DRIVER AVAILABLE FOR THIS PRINTER ». On clique sur « Nouveau pilote », puis sur « Oui », et on choisit le constructeur ainsi que le type de l’imprimante. Une fois le choix terminé, on clique sur « OK » et le transfert des drivers depuis le client vers le serveur Linux commence.
    Dès lors, n’importe quel opérateur du réseau peut installer l’imprimante. Il suffit qu’il fasse sur son ordinateur NT « Menu Démarrer » puis « Paramètres », « Imprimantes ». Il doit alors cliquer sur « Ajout d’imprimante ». L’utilisateur n’a d’autre choix que de prendre l’installation par serveur d’impression et de cliquer sur « Suivant ». Il doit ensuite choisir l’imprimante qu’il veut installer et faire « OK ». L’utilisateur décide alors si oui ou non il veut que l’imprimante en question soit son imprimante par défaut. Le message comme quoi l’imprimante a été installée avec succès apparaît.

        2)    Postes Windows 98

        La notion d’installation de postes Windows 98 n’est pas utile pour le site d’Alstom T&D de St Priest. Cependant, elle sert à d’autres établissements comme celui de Villeurbanne.
    L’installation des drivers sur le serveur se fait en 3 étapes.
        Tout d’abord, il faut créer un partage qui contiendra les drivers. On peut procéder comme suit :
        « [printer$]

        path=/usr/local/samba/printer

        public=yes

        writable=no

        browseable=yes

    »

        Dès lors, il faut repérer les fichiers du pilote qui doivent être copiés dans ce partage. Pour cela, il faut récupérer le fichier msprint.inf ou msprint2.inf situé dans le répertoire « c:\windows\inf ». On doit ensuite placer ce fichier dans le répertoire « /usr/local/samba/lib » du serveur. De là, il faut lancer la commande :

    « make_printerdef msprint.inf "Apple LaserWriter" >> printers.def » où Apple Laser Writer est le nom de notre imprimante dans le fichier msprint.inf. La commande make_printerdef crée donc un fichier printers.def qui contient les informations nécessaires au bon fonctionnement du driver. Cette commande affiche également une liste de fichier. Ces derniers doivent être copiés dans le partage créé lors de la première étape.

    La troisième étape consiste à modifier le fichier « smb.conf ». Il faut rajouter la ligne :

    « printer driver file=/usr/local/samba/lib/printers.def » dans la section [global]. On indique ainsi à Samba la liste des fichiers nécessaires au driver. On doit également rajouter les lignes suivantes dans le partage de chaque imprimante :

        « printer driver=Apple LaserWriter

        printer driver location=\\%h\PRINTER$ » où %h est une variable remplaçant le nom du serveur et PRINTER$ correspond au nom du partage créé lors de la première étape.

    Dès lors, n’importe quel opérateur peut installer l’imprimante. Il suffit qu’il fasse « Menu Démarrer » puis « Paramètres », « Imprimantes ». Il faut alors cliquer sur « Ajout d’imprimante ». L’utilisateur doit alors choisir « imprimante réseau » et cliquer sur « Suivant ». Dans la fenêtre suivante, dans l’arborescence, l’opérateur doit choisir le serveur d’impression ainsi que l’imprimante puis cliquer sur « Suivant ». Il peut ensuite choisir le nom qu’il veut donner à l’imprimante et cliquer sur « Suivant ». On lui propose alors d’effectuer une page de test. L’opérateur fait son choix et clique sur « Suivant ». Dès lors, il arrive à une fenêtre lui indiquant que tout s’est passé avec succès. Il clique sur « Terminer ».

    L’imprimante est donc installée sur le poste client sans que l’opérateur n’ait eut à se soucier du choix du driver.
     

    Remarque : Le serveur d’impression Samba ainsi installé est multi-plateformes. En effet, Il peut fournir automatiquement pour une même imprimante des drivers Windows NT ou Windows 98. L’opérateur n’a pas besoin de connaître son système d’exploitation ni le type de l’imprimante.
     

     

    VI)    CONCLUSION

     
    Le seul point négatif est ma déception quant à la documentation de Samba. En effet, la partie concernant le serveur d’impression n’est pas très détaillée et certaines rubriques intéressantes sont inexistantes à la fois dans la documentation officielle et sur Internet. J’attendais plus d’informations sur l’utilisation de la commande « add printer ». Je pense cependant que ce manque sera vite comblé.