Configurer un client d'impression lpd
Auteur : Olivier BOYER - oboyer () ajoute ! org
Mots clés
FreeBSD, lp, lpd, printing, impression
Introduction
Ce document décrit comment configurer un client d'impression lpd
via le réseau. Il utilise le client d'impression standard livré avec FreeBSD.
Ce document s'appuie sur un FreeBSD 4.9.
Présentation de la maquette
- serveur d'impression : smoking.leaves.org
- adresse IP du serveur : 192.168.0.1
- nom de l'imprimante : lp
- l'imprimante est une HP-670C
Note
Toutes les commandes présentées ici, sont à exécuter, sauf mention contraire, en tant qu'administrateur de la machine.
Pré-requis
- avoir un serveur
lpd(8)
fonctionnel - connaître son nom et son adresse IP
- connaître le nom de la file d'impression à atteindre
Configurer la résolution de noms
Le serveur d'impression smoking
doit être connu du dns
ou défini dans le fichier /etc/hosts
. Dans le cas contraire, il sera impossible à lpd(8)
de connaitre l'adresse IP du serveur d'impression.
Modifier comme suit le fichier /etc/hosts
192.168.0.1 smoking.leaves.org smoking
Modifier le fichier /etc/printcap
Ajouter les lignes suivantes au fichier /etc/printcap
:
# remote printer HP-670C on smoking lp|line printer on smoking:\ :lp=:sd=/var/spool/output/smoking:lf=/var/log/lpd-errs:\ :rm=smoking:rp=lp
Créer le répertoire de spool
# mkdir -p /var/spool/output/smoking # ls -l /var/spool/output total 2 drwxr-xr-x 2 root daemon 512 Mar 28 18:03 smoking
Vérifier la configuration de /etc/printcap
# chkprintcap
Si aucune erreur n'est affichée, alors, la configuration est valide.
Créer le fichier de log
# touch /var/log/lpd-errs
Démarrer le demon lpd(8)
# lpd
Pour debugger, lancer lpd(8)
comme suit :
# lpd -lc
Extrait de la pâge de manuel de lpd(8)
:
-c By default, if some remote host has a connection error while try- ing to send a print request to lpd on a local host, lpd will only send error message to that remote host. The -c flag causes lpd to also log all of those connection errors via syslog(3). -l The -l flag causes lpd to log valid requests received from the network. This can be useful for debugging purposes.
Démarrer automatiquement le daemon lpd(8)
Ajouter les lignes suivantes au fichier /etc/rc.conf
:
lpd_enable="YES" # Run the line printer daemon. lpd_program="/usr/sbin/lpd" # path to lpd, if you want a different one. lpd_flags="-s" # Flags to lpd (if enabled).
Extrait de la page de manuel de lpd(8)
:
-s The -s (secure) flag causes lpd not to open an Internet listening socket. This means that lpd will not accept any connections from any remote hosts, although it will still accept print requests from all local users.
Lancer lpd
avec l'option -s
pour imprimer en réseau peut paraître étrange. Cependant, lpd
client n'a pas besoin d'écouter sur une socket internet, puisque ce n'est pas lui qui offre le service d'impression. Le client lpd
doit seulement être capable de recevoir les requêtes d'impression locales, et de les transmettre au serveur lpd
du réseau.
Les binaires de la suite lp
peuvent joindre un serveur de spool soit par socket internet, soit par socket unix. C'est cette derniere possibilité, plus securisée, qui est retenue dans cet exemple.