このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


# Login Guest sur le serveur de fichiers ACCT_FS01 sans mot de passe. ACCT_FS01/GUEST - Vous pourrez, par la suite, utiliser :

          $ ncpmount /home/terry/docs

afin de monter la partition DOCS_FS1 avec le login TERRY sous le répertoire /home/terry/docs. Vous remarquerez que cette commande a été choisie car aucun serveur de fichiers n'a été spécifié dans la commande de montage. Si la commande suivante avait été utilisée :

          $ ncpmount -S ACCT_FS01 /home/terry/docs
vous seriez entré sur le serveur de fichiers ACCT_FS01 avec le compte GUEST.

Note : Pour que ce mécanisme fonctionne, il faut que la permission de $HOME/.nwclient soit de 0600, vous devrez utiliser la commande suivante :

           $ chmod 0600 $HOME/.nwclient

Si des utilisateurs non-root ont la permission d'utiliser ce mécanisme, la commande ncpmount doit utiliser un Set Userid Root, vous aurez donc à donner ces permissions :

        # chmod 4755 ncpmount

Tester l'utilitaire nsend

nsend est un utilitaire pour envoyer des messages à des utilisateurs Novell qui est également inclus dans le paquetage. Il s'utilise de la manière suivante :

        # nsend pierre coucou ici
qui va envoyer le message "coucou ici" à un utilisateur "pierre" déjà logué sur votre serveur de fichiers "primaire" (le premier qui apparaît dans votre fichier .nwclient). Vous pouvez spécifier un autre serveur de fichiers avec la même syntaxe que la commande ncpumount.

10. Configurer votre machine Linux en serveur NCP

Il existe deux paquetages permettant à Linux de fournir les fonctions d'un serveur de fichiers Novell. Tous deux permettent de partager des fichiers de la machine Linux entre les utilisateurs utilisant un client Novell Netware. Les utilisateurs peuvent attacher et utiliser des systèmes de fichiers Novell comme des volumes locaux à leurs machines juste comme s'ils provenaient d'un serveur de fichiers Novell. Je vous propose d'essayer les deux paquetages afin de voir celui qui correspond le mieux à vos besoins.

10.1 L'ensemble mars_nwe

Martin Stover <mstover@freeway.de> a développé mars_nwe pour permettre à Linux de fournir des services fichiers et impression pour des clients NetWare.

mars_nwe signifie "Martin Stover's Netware Emulator".

Possibilités offertes par mars_nwe

mars_nwe fournit un sous-ensemble de la spécification Novell NCP pour les services fichiers, pour les connexions aux disques et aussi pour les services d'impressions. Il est probable qu'il contient des bogues mais beaucoup de personnes l'utilisent et le nombre de bogues diminue avec les nouvelles versions.

Obtenir mars_nwe

Vous pouvez récupérer mars_nwe sur le serveur ftp.gwdg.de. ou sur metalab.unc.edu.
La version à jour lors de l'écriture de ce document est : mars_nwe-0.99.pl10.tgz.

Compiler l'ensemble mars_nwe

Compiler un noyau Linux supportant Ethernet et IPX.

Dans la version 1.2.13 du noyau, vous devrez juste vérifier que vous avez répondu oui (Y) à 'The IPX Protocol' et non (N) à 'Full internal IPX network' comme illustré :

 ...
 ...
The IPX protocol (CONFIG_IPX) [n] y
 ...
 ...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
 ...
 ...
Pour les noyaux plus récents, un procédé similaire est utilisé lors de la construction du noyau. La question posée peut légèrement changer.

Assurez-vous aussi d'un choix approprié pour votre carte Ethernet. Si vous ne savez pas comment procéder, vous devriez lire l'Ethernet-HOWTO, Ethernet-HOWTO.

Vous pouvez maintenant procéder à la compilation de votre noyau. Une fois cette étape finie, n'oubliez pas de lancer lilo afin d'installer le nouveau noyau.

Décompresser le paquetage mars_nwe.

          # cd /usr/src
          # tar xvfz mars_nwe-0.99.pl10.tgz

Compiler mars_nwe.

Cette opération est très simple. La première étape consiste simplement à lancer make, cela va vous créer un fichier config.h. Ensuite, vous devez regarder et modifier le fichier config.h si nécessaire. Cela vous permet de configurer des choses comme le répertoire d'installation ou le nombre maximum de sessions et de volumes que le serveur pourra supporter. Les lignes importantes à regarder sont :

MAX_CONNECTIONS       le nombre maxi de connexions simultan馥s autoris馥s
MAX_NW_VOLS           le nombre maxi de volumes support駸 par mars_nwe
MAX_FILE_HANDLES_CONN le nombre maxi de fichiers ouverts par connexion
WITH_NAME_SPACE_CALLS si vous voulez supporter les clients ncpfs
INTERNAL_RIP_SAP      si vous voulez que mars_nwe fasse le routage rip/sap
SHADOW_PWD            selon que vous utilisez les 'shadow passwords' ou non
Les options par défaut devraient vous convenir mais vérifiez quand même.

Une fois ceci terminé tapez :

          # make
          # make install

Ces commandes compileront les différents serveurs et les installeront dans un répertoire approprié. Le script d'installation installe aussi le fichier de configuration /etc/nwserv.conf.

Configuration du serveur.

Celle-ci est simple. Il faut éditer le fichier/etc/nwserv.conf. Le format de ce fichier peut vous sembler assez énigmatique au premier abord, mais il est en fait bel et bien ordonné. Chaque ligne de ce fichier correspond à un point de configuration. Chacune de ces lignes est délimitée par le caractère espace et débute par un nombre qui indique le contenu de la ligne. Tous les caractères précédés du caractère '#' sont considérés comme étant un commentaire et de ce fait sont ignorés. Martin fournit un fichier d'exemple de configuration dans son paquetage, cependant, je vous donne ce que je considère comme étant une version simplifiée de ce fichier, et ce, afin que vous puissiez mieux le comprendre.


     # VOLUMES (max. 5)
     # Seul le volume SYS est obligatoire. Le r駱ertoire contenant le volume
     # SYS doit contenir les r駱ertoires : LOGIN, PUBLIC, SYSTEM, MAIL.
     # l'option 'i' ignore la casse (majuscules/minuscules)
     # l'option 'k' convertit toutes les requ黎es de nom de fichier en 
     # minuscules
     # l'option 'm' indique que le volume est amovible (cdrom par ex.)
     # l'option 'r' positionne le volume en lecture seule
     # l'option 'N' permet l'utilisation de l'espace de noms (namespace) NFS
     #
     # Par d馭aut les noms de fichiers sont en majuscules.
     # Syntaxe :
     #    1 <Nom du volume> <Chemin du volume>   <Options>

     1   SYS         /home/netware/SYS/                 # SYS
     #    3 <adresse interne du r駸eau> [<Num駻o de noeud>]
     # ou
     #    3 auto
     # si vous utilisez 'auto' alors l'adresse IP de la machine sera 
     # utilis馥. NOTE : cela peut 黎re dangereux, assurez-vous de prendre
     # SAUVEGARDE DES ROUTES IPX APRES EXTINCTION DU SERVEUR.
     # Syntaxe :
     #    5 <drapeau>
     #       0 = ne pas sauver les routes, 1 = sauver les routes.

     5 0

     # VERSION DE NETWARE
     # Syntaxe :
     #    6 <version>
     #    7 permet les mdp non chiffr駸 mais pas les mdp nuls.
     #    8 permet les mdp non chiffr駸 ainsi que les mdp nuls.
     #    9 seulement les mdp non chiffr駸 (ne marche pas avec OS/2).

     7 1

     # DROITS MINIMUM EN FONCTION DES GID ET UID
     # Les permissions qui sont appliqu馥s lors de connexions sans login
     # Ces permissions seront utilis馥s pour les fichiers 
     # de votre serveur primaire.
     # Syntaxe :
     #    10 <gid>
     #    11 <uid>
     # lancement. Vous devriez 騅iter d'utiliser le compte 'root' et en choisir
     # un autre pour administrer le serveur mars.
     #
     # Cette entr馥 est lue et chiffr馥 dans le fichier de bindery du serveur,
     # COMPTES DES UTILISATEURS
     # Permet d'associer les comptes NETWARE aux comptes UNIX. Les mots de
     # passe sont en option.
     # Syntaxe :
     #    13 <Login utilisateur> <Nom d'utilisateur UNIX> [<mot de passe>]

     13  MARTIN martin
     13  TERRY  terry

     # ADMINISTRATION SYSTEME PARESSEUSE
     # Si vous avez beaucoup d'utilisateurs et ne pouvez/voulez utiliser
     # le champ 13 pour chaque utilisateur, vous pouvez faire correspondre
     # automatiquement les logins mars_nwe aux logins des utilisateurs Linux
     # MAIS il n'y a pour le moment aucun moyen d'utiliser les mots de passe
     # des comptes Linux si bien que tous les utilisateurs configur駸 de cette
     # fa輟n devront utiliser le mot de passe fourni ici.
     #    0  - ne configure aucun utilisateur automatiquement.
     #    1  - configure automatiquement les utilisateurs non encore configur駸.
     #    99 - configure automatiquement tous les utilisateurs. 

     15 0 duzzenmatta

     # VERIFICATION SIMPLE
     #    21 <Nom de queue> <r駱ertoire de queue> <commande d'impression UNIX>

     21  EPSON  SYS:/PRINT/EPSON lpr -h
     21  LASER  SYS:/PRINT/LASER lpr -Plaser

     # DRAPEAUX DE DEBOGAGE 
     # normalement, ils ne sont pas n馗essaires, mais ils peuvent 黎re utiles
     # pour la r駸olution de probl鑪es.
     # Syntaxe :
     #    <駘駑ent de d饕ogage> <drapeau de debogage>
     #
     #    100 = IPX KERNEL
     #    101 = NWSERV
     #    102 = NCPSERV
     #    103 = NWCONN
     #    104 = d駑arrage NWCLIENT
     #    105 = NWBIND
     #    106 = NWROUTED
     #                 0 = supprime le d饕ogage, 1 = active le d饕ogage

     100 0
     101 0
     102 0
     103 0
     104 0
     105 0
     106 0

     # LANCER LE SERVEUR NETWARE EN TACHE DE FOND ET UTILISER UN FICHIER DE LOG
     # Syntaxe :
     #    200 <drapeau>
     #        0 = Lance NWSERV en avant-plan et pas de fichier de log
     #        1 = Lance NWSERV en t稍he de fond et utiliser le fichier de log

     200  1

     # NOM DU FICHIER DE LOG
     # Syntaxe :
     #    201 <Fichier de log>

     201  /tmp/nw.log

     # AJOUT/ECRASEMENT DU FICHIER DE LOG
     # Syntaxe :
     #    202 <drapeau>
     #        0 = ajouter dans le fichier de log existant
     #        1 = 馗raser le fichier de log existant

     202  1

     # EXTINCTION DU SERVEUR
     # Ce point modifie le d駘ai entre l'affichage d'extinction du serveur et
     # l'extinction r馥lle du serveur
     # Syntaxe :
     #    210 <temps>
     #        en secondes (par d馭aut 10)

     210  10

     # INTERVALLE ENTRE LES DIFFUSIONS DE ROUTAGE
     # la dur馥 en secondes entre les diffusions (broadcast) de serveurs
     # Syntaxe :
     #    211 <temps>
     #        en secondes (par d馭aut : 60)
     
     211 60

     # INTERVALLE ENTRE LES LOGS DE ROUTAGE
     # configure le nombre de diffusions apr鑚 lesquelles les informations
     # de routage sont 馗rites dans les fichiers de log.
     # Syntaxe :
     #    300 <nombre>

     300 5

     # FICHIER DE LOG DE ROUTAGE
     # Configure les intervalles de temps entre les messages de garde pour
     # s'assurer que le r駸eau est toujours vivant. 
     # Syntaxe :
     #    310 <valeur>
     # avec <valeur> =
     #      0  - toujours envoyer des messages de garde.
     #      <0 - ne jamais envoyer de message de garde.
     #      >0 - envoyer des messages quand le trafic r駸eau chute en dessous
     #           de 'n' ticks.

     310 7

     # FICHIER DE STATIONS
     # configure le nom du fichier qui d騁ermine les machines pour lesquelles
     # ce serveur de fichiers sera le serveur primaire.
     # La syntaxe de ce fichier est d馗rite dans le r駱ertoire 'examples'
     # du code source.
     # Syntaxe :
     #    400 <nom de fichier>

     400 /etc/nwserv.stations

     # OBTENTION DU SERVEUR DE FICHIERS LE PLUS PROCHE
     # Configure la mani鑽e dont sont ger馥s les requ黎es SAP 'obtention
     # du serveur le plus proche' (Get Nearest Fileserver).
     # Syntaxe :
     #    401 <drapeau>
     # avec <drapeau> =
     #      0 : d駸active cette requ黎e
Démarrer le serveur

Si vous avez configuré le serveur de telle sorte que d'autres programmes configurent le réseau et/ou fournissent les fonctions de routage, alors vous devez lancer ces programmes avant de démarrer le serveur. Si vous avez configuré le serveur pour qu'il configure vos interfaces et fournisse des services de routage, alors pour démarrer le serveur, il n'y a qu'à taper :

                
        # nwserv

Tester le serveur

Pour tester le serveur vous devrez tout d'abord essayer de vous connecter et entrer par login grâce à un client Netware sur votre réseau. Vous pouvez alors faire un CAPTURE à partir de votre client et essayer d'imprimer. Si ces deux actions sont couronnées de succès, votre serveur fonctionne.

10.2 L'ensemble lwared

Ales Dryak <A.Dryak@sh.cvut.cz> a développé lwared pour permettre à Linux de fonctionner comme un serveur de fichiers basé sur NCP.

Lwared est l'abréviation de LinWare Daemon.

Possibilités offertes par lwared

Le serveur lwared est capable de fournir un sous-ensemble de services d'un serveur Novell NCP. Le système de messageries a été inclus mais il ne fournit pas de facilités d'impression. De plus il ne fonctionne pas bien avec des clients pour Windows 95 ou Windows NT. Ce serveur s'appuie sur des programmes extérieurs pour construire et maintenir le routage IPX et les tables SAP. Le mauvais comportement d'un client peut causer le "plantage" du serveur. Il est aussi important de savoir que la retranscription des noms de fichiers (minuscules/majuscules) n'a pas non plus été incluse.

Ce serveur fonctionne avec les shells Netware NETX et VLM.

Récupérer lwared

Le paquetage lwared peut être construit pour n'importe quel noyau supérieur à la version 1.2.0, je vous recommande d'utiliser la version 1.2.13 pour laquelle aucun patch sur le noyau n'est nécessaire. Certaines fonctionnalités ont changé avec la version 1.3.* du noyau, ce qui signifie que des patchs sont nécessaires pour ces versions afin de faire fonctionner ce serveur de manière correcte. Des patchs appropriés sont inclus pour les nouvelles versions de noyau, ainsi si vous devez absolument utiliser un de ces noyaux, vous serez toujours en mesure de faire fonctionner lwared correctement.

On trouve lwared sur klokan.sh.cvut.cz, Metalab, ou sur un site miroir. La version à jour lors de l'écriture de ce document était : lwared-0.95.tar.gz

Compiler et installer lwared

Décompresser l'ensemble lwared

Ce qui devrait ressembler à :

# cd /usr/src
# tar xvpfz lwared-0.95.tar.gz

Compiler le noyau avec le support Ethernet et IPX

Si vous utilisez un noyau alpha 1.3.* vous devriez essayer d'utiliser la version 1.3.17 ou une plus récente car les patchs fournis ont été faits pour celles-là. Les noyaux 1.3.* plus anciens que 1.3.17 nécessiteront d'être modifiés à la main pour pouvoir installer lwared ( quelques indications sur la manière d'opérer ce genre de modifications sont données dans le fichier INSTALL du paquetage). Pour installer les patchs pour la version 1.3.17 du noyau ou plus récent, vous devrez essayer la commande suivante :

        
        # make patch

La chose suivante que vous devrez faire après avoir appliqué le patch, le cas échéant, sera de vérifier que votre noyau a bien été compilé avec le support IPX actif. Dans la version 1.2.13, vous n'aurez qu'à répondre oui (Y) à la question 'The IPX protocol' de la manière suivante :


      ...
      ...
     Assume subnets are local (CONFIG_INET_SNARL) [y]
     Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
     The IPX protocol (CONFIG_IPX) [n] y
     *
     * SCSI support
      ...
      ...

Pour les noyaux plus récents, la question peut varier un peu, mais le procédé reste fondamentalement le même.

Vous devrez également vous assurer du choix approprié du pilote de votre carte Ethernet. Si vous ne savez pas comment procéder, je vous conseille vivement de vous reporter à Ethernet-HOWTO.

Vous pouvez maintenant procéder à la compilation de votre noyau. N'oubliez pas de lancer lilo une fois la compilation finie, pour que le nouveau noyau soit correctement installé.

Compiler et installer lwared

Pour compiler lwared vous devez en premier lieu vérifier et éditer si nécessaire le fichier server/config.h. Ce fichier contient les éléments nécessaires pour piloter votre serveur et déterminer son comportement lorsqu'il fonctionnera. Le fichier par défaut est raisonnablement bien écrit mais vous pourrez tout de même vérifier si les répertoires de fichiers de log et le fichier de configuration conviennent à votre système.

        # make depend
        # make
        # make install

Le 'make depend' se plaint de ne pas trouver le fichier float.h sur mon système mais cela semble fonctionner tout de même. J'ai aussi découvert que lors des compilations avec gcc 2.6.3, il fallait modifier la ligne :

        
     #include <net/route.h>
en
     #include <net/if_route.h>

dans le fichier lib/ipxkern.c. Ceci étant dû au fait que le fichier change parfois de nom.

Le 'make install' tentera d'installer le serveur et les démons de routage dans le répertoire /usr/sbin, le programme lwpasswd dans le répertoire /usr/bin, les programmes utilitaires IPX seront copiés dans le répertoire /sbin et les pages de manuel dans la structure de répertoire /usr/man. Si un de ces endroits ne correspond pas à votre système, vous devrez éditer et modifier les fichiers Makefile correspondants.

Configurer et utiliser lwared

Voici la partie la plus amusante !

Configurer le réseau IPX

La première chose à faire est de configurer vos cartes Ethernet pour qu'elles puissent supporter les réseaux IPX connectés à votre serveur. Vous devez connaître les adresses des réseaux IPX pour chacun des segments du réseau, quel périphérique Ethernet (eth0, eth1, etc.) est en relation avec quel segment, quel type de trame est utilisé pour chacun des segments (802.3, EtherII, etc.) et quelle adresse de réseau interne votre serveur doit utiliser (ce qui est vraiment nécessaire si votre serveur doit fournir des services sur plusieurs segments). Par exemple, une configuration plausible d'un serveur étant sur deux segments IPX ayant pour adresse réseau 23a91300 et 23a91301 et ayant une adresse de réseau interne bdefaced ressemblera à :

         
        # ipx_internal_net add BDEFACED 1
        # ipx_interface add eth0 802.3 23a91300
        # ipx_interface add eth1 etherii 23a91301

Démarrer les démons de routage

Le logiciel du noyau permet de faire du renvoi de paquet IPX comme il le fait pour les paquets IP, cependant le noyau requiert un programme additionnel pour gérer la mise à jour des tables de routage. Dans le cas d'IPX, deux démons sont nécessaires et tous deux sont fournis avec lwared : ipxripd gère l'information de routage IPX et ipxsapd gère les informations SAP. Pour faire démarrer les démons vous n'aurez qu'à spécifier l'endroit où vous voulez qu'ils écrivent les messages de log :

           # ipxripd /var/adm/ipxrip
           # ipxsapd /var/adm/ipxsap
           

Configurer le serveur lwared

Deux fichiers sont à configurer manuellement pour que les utilisateurs puissent se loguer sur votre serveur. Il s'agit de :

/etc/lwpasswd

Il s'agit du fichier dans lequel les informations sur les comptes utilisateurs de LinWare sont gardées. Le programme lwpasswd permet de le maintenir à jour. Dans sa forme la plus simple, le fichier /etc/lwpasswd ressemble à :

            
            ales:
            terryd:
            guest:
Son format est une simple liste de noms de login suivis du caractère ':' puis de la version encryptée du mot de passe de login. Il faut cependant noter deux choses importantes : si les mots de passe ne sont pas chiffrés cela signifie qu'il n'y a pas de mot de passe. D'autre part, les utilisateurs de LinWare doivent avoir un compte Linux, c'est-à-dire que chaque utilisateur de LinWare présent dans /etc/lwpasswd doit aussi être présent dans /etc/passwd. Seul l'utilisateur root peut changer le mot de passe d'un autre utilisateur LinWare. Si vous êtes logué en tant root, vous pourrez par exemple taper la commande suivante pour changer le mot de passe d'un utilisateur :
            
        # lwpasswd rodg
        Changing password for RODG
        Enter new password:
        Re-type new password:
        Password changed.

/etc/lwvtab

Il s'agit des tables des volumes LinWare où sont stockées les informations sur les répertoires à partager entre les utilisateurs de LinWare (ce fichier comporte des similitudes avec le fichier /etc/exports pour NFS). Un exemple simple de son format est :

                 
           SYS             /lwfs/sys
           DATA            /lwfs/data
           HOME            /home
Ce format est simple : nom du volume puis le répertoire Linux à exporter séparés par le caractère espace. Vous devez avoir, au moins, une entrée dans ce fichier pour le volume SYS afin que le serveur puisse démarrer. Si vous voulez que vos utilisateurs DOS puissent accéder à votre serveur LinWare comme serveur primaire, vous devrez installer une arborescence de volume SYS standard sous le répertoire que vous exportez comme volume SYS. Les fichiers devant être présents dans ces répertoires sont ceux de Novell et sont soumis à leurs copyrights. Vous devez avoir une licence pour les utiliser. Si vos utilisateurs utilisent un serveur de fichiers Novell comme serveur primaire, vous n'aurez pas besoin du volume SYS.

Démarrer le serveur lwared

         
         # lwared
Plutôt simple n'est-ce pas ? Mais il reste une question. Quel est le nom du serveur de fichiers ? Si vous avez démarré le serveur LinWare de la façon exposée ci-dessus, son nom sera celui retourné par la commande hostname de Linux (le nom d'hôte). Si vous voulez un autre nom, il suffit de le spécifier dans la ligne de lancement de lwared comme ci-dessous par exemple :
         
         # lwared -nlinux00
Ici le nom du serveur LinWare sera linux00.

Tester le serveur lwared

La première chose à faire est de vérifier que votre serveur LinWare apparaît bien dans une slist d'un client DOS sur votre réseau. Le programme slist est stocké dans le volume SYS d'un serveur de fichier Novell donc il vous faudra réaliser cette opération à partir d'une machine déjà loguée sur un serveur. Si ça ne marche pas, vérifiez que ipxsapd et lwared tournent en même temps sur la machine Linux. Si la slist est bonne vous pouvez essayer de connecter et de mapper un volume :

         C:> attach linux00/ales
         ...
         ...
         C:> map l:=linux00/data:
         C:> l:
        
Vous devriez maintenant être en mesure d'utiliser le nouveau volume comme tout autre volume Novell. Les permissions des fichiers sont basées sur celles données par le serveur Linux en fonction de votre compte utilisateur.

11. Configurer votre machine Linux en client d'impression Novell

Le paquetage ncpfs inclut deux petits utilitaires qui vous permettent d'imprimer depuis votre machine Linux sur une imprimante reliée à un serveur d'impression Novell. La commande nprint vous permet d'imprimer un fichier vers une queue d'impression NetWare. La commande pqlist liste les queues d'impression disponibles sur un serveur NetWare.

Pour obtenir et installer ces commandes, vous n'avez qu'à suivre les instructions relatives au client NCP décrites précédemment.

Ces deux commandes nécessitent que vous fournissiez le nom d'utilisateur et le mot de passe. Vous devriez normalement penser à écrire des scripts pour simplifier les tâches d'impression.

Exemple :

# pqlist -S ACCT_FS01 -U guest -n
# nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
La syntaxe concernant le login est similaire à celle de la commande ncpmount. Les exemples ci-dessus font l'hypothèse qu'un serveur de fichiers ACCT_FS01 a un compte guest sans mot de passe, qu'une queue d'impression appelée LASER existe et que guest a le droit d'imprimer dessus.

Sur mes machines Linux, j'ai un court script en shell pour chaque imprimante Novell. Il peut alors être utilisé comme un filtre d'impression afin de pouvoir imprimer en utilisant le spooler Linux standard.

12. Configurer votre machine Linux en serveur d'impression Novell

Un programme permettant à votre machine Linux d'agir comme serveur d'impression sur un réseau NetWare est inclus dans le paquetage ncpfs. Pour l'installer et le compiler, se reporter à la section 'client NetWare' au-dessus. Il y a également un autre support dans le paquetage mars_nwe.

12.1 Prérequis

La configuration est relativement simple mais vous devez avoir une imprimante complètement configurée et fonctionnant sous Linux. Cette partie est couverte dans le Printing-HOWTO en détail.

12.2 Configuration

Une fois que vous avez une configuration imprimante qui fonctionne et que vous avez compilé et installé l'utilitaire pserver, vous devez ajouter des commandes dans vos fichiers rc.

La commande exacte à utiliser va dépendre de ce que vous voulez exactement qu'il fasse, mais dans sa façon la plus simple, quelque chose comme cela devrait fonctionner :

# pserver -S ACCT_01 -U LASER -P secret -q LASERJET

Cet exemple demande à l'utilitaire pserver de se loguer sur le serveur ACCT_O1 avec le nom LASER et le mot de passe secret et de récupérer les travaux d'impression dans la queue LASERJET. Lorsqu'un nouveau travail d'impression est reçu, la commande d'impression par défaut de lpr sera utilisée pour fournir ce travail d'impression au démon d'impression Linux. La queue d'impression doit être déjà définie sur le serveur de fichiers et le nom d'utilisateur doit avoir les privilèges du serveur pour la queue.

Vous auriez pu, si vous aviez voulu, utiliser une autre commande Linux pour accepter et imprimer les travaux d'impressions. l'argument -c vous permet de spécifier la commande exacte à utiliser. Par exemple :

# pserver -S ACCT_01 -U LASER -P secret -q LASERJET -c "lpr -Plaserjet"

fera exactement la même chose que l'exemple précédent sauf qu'il enverra le travail d'impression à la configuration printcap laserjet au lieu de celle par défaut.

13. Un aperçu des commandes utilisateur et d'administration dencpfs

Les dernières versions du paquetage ncpfs de Volker incluent toute une série de commandes d'utilisation et d'administration que vous pourriez avoir envie d'utiliser. Ces outils sont compilés et installés dans le processus d'installation de ncpfs. Si vous ne l'avez pas encore fait, suivez les instructions fournies dans la section sur le client Novell au-dessus pour les compiler et les installer.

L'information détaillée est disponible dans les pages de man fournies, mais voici un bref résumé des commandes.

13.1 Commandes utilisateur

ncopy

Network Copy (copie réseau) - permet de copier efficacement des fichiers en utilisant une fonction NetWare plutôt que de copier à travers le réseau.

nprint

Network Print (impression réseau) - permet d'imprimer un fichier vers une queue d'impression Netware située sur un serveur Netware.

nsend

Network Send (envoi réseau) - permet d'envoyer des messages à d'autres utilisateurs connectés à un serveur NetWare.

nwbols

List Bindery Objects (liste les objets de la bindery) - permet de lister le contenu de la bindery d'un serveur NetWare.

nwboprops

List properties of a Bindery Object (liste les propriétés d'un objet de la bindery) - permet de voir les propriétés d'un objet de la bindery

nwbpset

Set Bindery Property (Configure des propriétés de bindery) - permet de configurer les propriétés d'un objet de la bindery NetWare.

nwbpvalues

Print Netware Bindery Objects Property Contents (affiche le contenu propriété des Objets de la Bindery) - permet d'afficher le contenu d'une propriété d'une bindery Netware.

nwfsinfo

Fileserver Information (information sur le serveur de fichiers) - affiche un résumé d'informations sur un serveur Netware.

nwpasswd

NetWare Password (mot de passe NetWare) - permet de changer le mot de passe d'un utilisateur NetWare.

nwrights

NetWare Rights (permissions NetWare) - affiche les droits associés à un fichier ou répertoire particulier.

nwuserlist

User List (liste d'utilisateurs) - liste les utilisateurs actuellement logués sur un serveur de fichiers NetWare.

pqlist

Print Queue List (Liste de queue d'impression) - affiche le contenu d'une queue d'impression NetWare.

slist

Server List (liste de serveurs) - affiche une liste de serveurs de fichiers NetWare connus.

13.2 Outils d'administration

nwbocreate

Create a Bindery Object (créer un objet de la bindery) - permet de créer un objet de la bindery.

nwborm

Remove Bindery Object (enlever un objet de la bindery) - permet d'effacer un objet de la bindery.

nwbpadd

Add Bindery Property (ajouter une propriété à la bindery) - permet de positionner la valeur d'une propriété existante d'un objet d'une bindery Netware.

nwbpcreate

Create Bindery Property (créer une propriété de bindery) - permet de créer une nouvelle propriété pour un objet déjà existant dans une bindery NetWare.

nwbprm

Remove Bindery Property (enlever une propriété de bindery) - permet d'enlever une propriété sur un objet d'une bindery NetWare.

nwgrant

Grant Trustee Rights (attribuer les droits d'accès) - permet d'assigner les droits d'accès à un répertoire sur un serveur de fichiers NetWare.

nwrevoke

Revoke Trustee Rights (retirer les droits d'accès) - permet de retirer les droits d'accès à un répertoire sur un serveur de fichiers NetWare.

14. Configurer PPP pour le support d'IPX

Les nouvelles versions du démon PPP pppd pour Linux permettent de transporter des paquets IPX à travers une liaison série PPP. Il faut au moins la version ppp-2.2.0d du démon. Voir le PPP-HOWTO pour savoir où le trouver. Lorsque vous compilez pppd, assurez-vous d'activer le support IPX en ajoutant les deux lignes suivantes au fichier /usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux

IPX_CHANGE = 1
USE_MS_DNS = 1

Le IPX_CHANGE est ce qui active le support d'IPX dans PPP. La définition de USE_MS_DNS permet aux machines Microsoft Windows 95 de faire de la recherche de nom (name lookup).

Le vrai truc pour arriver à le faire marcher, c'est de savoir le configurer.

Il y a plein de façons de faire mais je ne décrirai que les deux sur lesquelles j'ai reçu des informations. Je n'ai encore jamais essayé, donc considérez cette section comme expérimentale et si vous arrivez à faire marcher quelque chose, faites-le moi savoir s'il vous plait.

14.1 Configurer un serveur IPX/PPP

La première chose à faire est de configurer votre machine Linux en serveur IP/PPP. Pas de panique ! Ce n'est pas difficile. De nouveau, suivez les instructions dans le PPP-HOWTO et ça devrait aller. Une fois que vous avez fait ceci, il y a quelques modifications pour faire fonctionner IPX avec la même configuration.

Première étape

Une des premières choses à faire est de configurer votre machine Linux en routeur IPX de la façon décrite plus haut dans ce document. Vous n'avez pas besoin d'utiliser la commande ipx-route pour l'interface PPP car pppd les configure pour vous comme il le fait pour IP. Lorsque le démon ipxd tourne, il détecte automatiquement toute nouvelle interface IPX et propage les routes pour elle. Ainsi, vos machines connectées en dialup seront vues par les autres machines automatiquement lors de la connexion.

Conception

Lorsque l'on tourne en tant que serveur, c'est normalement de sa responsabilité d'assigner des adresses réseau à chacune des liaisons PPP lorsqu'elles sont établies. Ceci est un point important, chaque liaison PPP sera un réseau IPX et aura une adresse réseau IPX unique. Cela signifie que vous devez décider comment vous allez allouer les adresses et quelles adresses utiliser. Une convention simple est d'allouer une adresse réseau IPX à chaque périphérique série qui supporte IPX/PPP. Vous pourriez allouer une adresse réseau IPX basée sur le login de l'utilisateur connecté, mais je ne vois pas de raison particulière de faire ainsi.

Je vais supposer pour la suite que vous avez choisi la première convention et qu'il y a deux périphériques réseau (modems) que nous utiliserons. Les adresses utilisées dans cet exemple sont :

Periph. Adresse reseau IPX
------- -------------------
ttyS0   0xABCDEF00
ttyS1   0xABCDEF01

Configurer pppd

Configurez votre fichier /etc/ppp/options.ttyS0 comme suit :

ipx-network 0xABCDEF00
ipx-node 2:0
ipxcp-accept-remote

et votre fichier /etc/ppp/options.ttyS1 :

ipx-network 0xABCDEF01
ipx-node 3:0
ipxcp-accept-remote

Cela va demander à pppd d'allouer l'adresse réseau IPX appropriée au lien lorsque la liaison est établie. Le numéro de noeud local sera positionné à 2 ou 3 et le noeud distant pourra l'écraser avec le numéro de noeud qu'il pense être le bon. Notez que toutes les adresses sont en hexadécimal et que 0x est obligatoire au début de l'adresse réseau mais pas nécessaire au début de l'adresse de noeud.

Il y a d'autres endroits où l'on aurait pu stocker cette information. Si vous avez seulement un modem pour les appels entrants, alors une entrée aurait pu être ajoutée au fichier /etc/ppp/options. Cette information aurait également pu être passée sur la ligne de commande de pppd.

Tester la configuration du serveur

Pour tester la configuration, vous aurez besoin d'un client fonctionnant correctement. Quand l'utilisateur appelle, se logue et que pppd démarre, celui-ci va attribuer l'adresse réseau, avertir le client du numéro de noeud du serveur et négocier le numéro de noeud du client. Lorsque ceci est terminé et après que ipxd a détecté la nouvelle interface, le client doit pouvoir établir des connexions IPX avec des hôtes distants.

14.2 Configurer un client IPX/PPP

Dans une configuration client, le fait de configurer ou non votre machine Linux en routeur IPX dépend de votre volonté d'agir en routeur IPX sur le réseau local de la machine. Si vous avez une machine isolée qui se connecte à un serveur IPX/PPP alors vous n'avez pas besoin d'utiliser ipxd. En revanche, si vous avez un réseau local et souhaitez que toutes les machines du réseau puissent utiliser la route IPX/PPP alors vous devez configurer et faire tourner ipxd comme décrit. Cette configuration est plus simple car vous n'avez qu'un seul périphérique série à configurer.

Configurer pppd

La configuration la plus simple est celle qui permet au serveur de fournir toute l'information sur la configuration du réseau IPX. Cette configuration serait compatible avec la configuration du serveur décrite au-dessus.

Vous avez à nouveau besoin d'ajouter des options dans votre fichier /etc/ppp/options :

ipxcp-accept-network
ipxcp-accept-remote
ipxcp-accept-local

Les options indiquent à pppd d'agir de manière complètement passive et d'accepter tous les détails de configuration fournis par le serveur. Vous pouvez fournir ici des valeurs par défaut pour les serveurs qui ne fournissent pas ces détails en ajoutant des lignes ipx-network et ipx-node similaires à la configuration du serveur.

Tester le client IPX/PPP

Pour tester le client, vous avez besoin d'un serveur à appeler connu pour fonctionner correctement. Une fois que vous avez appelé et que pppd a démarré, vous devriez voir les détails de votre configuration IPX sur votre périphérique ppp0 lorsque vous utilisez la commande ifconfig. Vous devriez également être capable d'utiliser ncpmount.

Je ne sais pas si vous devrez ajouter les routes IPX manuellement pour atteindre des serveurs distants ou non. Il semblerait que oui. Si quelqu'un qui a cette configuration pouvait me le dire, je lui en serais reconnaissant.

15. Tunnel IPX sur IP

Beaucoup d'entre vous doivent être dans la situation où deux réseaux locaux IPX sont séparés par une simple connexion IP. Comment pourra-t-on dans ce cas jouer un deathmatch à DOOM pour DOS dans cette situation, demanderiez-vous ? Andreas Godzinap <ag@agsc.han.de> a une réponse pour vous avec ipxtunnel.

ipxtunnel fournit une sorte de pont pour IPX en permettant à des paquets IPX d'être encapsulés dans des paquets de données TCP/IP de manière à ce qu'ils soient transportés par une connexion TCP/IP. Ce programme attend l'arrivée de paquets IPX et lors de leur arrivée, il les enferme dans un paquet de données TCP/IP et le route vers l'adresse IP distante que vous aurez spécifiée. Pour que cela fonctionne, la machine qui reçoit le paquet de données encapsulé doit, elle aussi, faire tourner une version identique d'ipxtunnel.

15.1 Récupérer ipxtunnel

Vous pouvez obtenir ipxtunnel sur Metalab ou sur un site miroir.

15.2 Compiler ipxtunnel

ipxtunnel se compile proprement chez moi en utilisant les commandes :


       # cd /usr/src
       # tar xvfz .../ipxtunnel.tgz
       # cd ipxtunnel
       # make

15.3 Configurer ipxtunnel

La configuration d'ipxtunnel est aisée. Admettons que la machine de vos amis soit gau.somewhere.com et que votre machine soit appelée gim.sw.edu. ipxtunnel utilise un fichier de configuration appelé /etc/ipxtunnel.conf. Ce fichier vous permet de spécifier le port UDP par défaut à utiliser pour la connexion TCP/IP par laquelle les données encapsulées seront envoyées ainsi que l'interface locale où ipxtunnel doit écouter et délivrer les paquets IPX.

Un simple fichier de configuration ressemblera à :

       #
spécifiant votre machine comme hôte distant (remote).

15.4 Tester et utiliser ipxtunnel

ipxtunnel se comporte comme un pont IPX, ainsi les réseaux IPX à chaque extrémité de la liaison TCP/IP doivent probablement être les mêmes. Andreas n'a jamais testé ipxtunnel dans un environnement qui utilise réellement les serveurs de fichiers Novell, donc si vous l'essayez dans un tel environnement, donnez-en le résultat à Andreas pour qu'il sache si ça marche ou pas.

Si ipxtunnel fonctionne, vous devriez être en mesure de lancer DOOM sur les machines à chaque bout de la connexion utilisée en mode IPX et vous devriez vous voir l'un l'autre.

Andreas n'a testé ce logiciel que sur de bonnes lignes rapides et ne garantit pas sa performance si votre liaison est à faible vitesse. Une fois de plus, dites-lui ce qui marche et ne marche pas.

16. Support commercial IPX pour Linux

16.1 Caldera's Network Desktop

Caldera Inc. commercialise une distribution Linux possèdant de nombreuses fonctions et améliorations. Elle inclut un support totalement fonctionnel d'un client Novell Netware. La distribution de base est la respectée Red Hat Linux et Caldera y a ajouté son "Network Desktop". Le support Netware inclut un client Novell Netware possédant toutes les fonctionnalités requises, b穰ies sur une technologie licenciée par Novell Corporation. Ce client fournit un accès total à des serveurs de fichiers Novell 3.x et 4.5 et inclut des fonctionnalités comme le "Netware Directoy Service" (NDS) et l'encryptage RSA.

Vous pourrez obtenir plus d'informations et de détails sur le serveur web Caldera Inc.

Si vous travaillez dans un environnement Netware 4.x et/ou NDS, alors le client Netware de Caldera est la seule solution disponible.

Si vous devez mettre en oeuvre une solution Novell pour Linux critique de manière professionnelle, vous devriez regarder le produit de Caldera de près.

17. Foire Aux Questions

Où puis-je trouver des logiciels IPX pour Linux fournis avec un support commercial ?

Caldera Corp. offre un client Netware 3.x et 4.x complètement supporté avec une licence complète. Pour de plus amples informations, consultez le site web de Caldera Inc.

Est-ce que les logiciels IPX fonctionnent avec Arcnet/Token Ring/etc. ?

Les logiciels IPX pour Linux fonctionnent avec les interfaces Arcnet et Token Ring. Je n'ai encore entendu personne essayer avec AX.25 . La configuration se passe de la même manière que pour l'Ethernet, sauf que vous devrez remplacer 'eth0' par le nom de périphérique approprié et mettre l'adresse matérielle appropriée lorsque nécessaire.

Comment est-ce que je configure plus d'une interface IPX ?

Si vous avez plus d'une interface dans votre machine, vous devez utiliser la commande ipx_interface pour configurer manuellement chacune d'entre elles. Vous ne devez pas utiliser la configuration "plug'n'play".

Comment est-ce que je choisis les adresses IPX ?

Les réseaux IPX sont similaires mais non identiques aux réseaux IP. Une différence majeure est la façon dont les adresses sont utilisées. IPX n'utilise pas le concept de sous-réseau. Le lien entre les adresses réseau et les réseaux est différent. Les règles sont relativement simples.

  • Chaque adresse de réseau IPX doit être unique sur un réseau à grande échelle (WAN). Ceci inclut les adresses de réseau internes. Beaucoup d'organisations utilisant IPX sur des réseaux à grande échelle ont une politique d'adressage que vous devriez suivre.
  • Chaque adresse d'hôte sur un réseau particulier doit être unique. Cela signifie que tous les hôtes sur chaque réseau IPX doivent avoir une adresse assignée unique. Dans le cas d'un réseau Ethernet, ce n'est pas difficile, car les cartes ont chacune une adresse unique. Dans le cas d'IPX/PPP, cela signifie que vous devez vous assurer d'allouer une adresse unique pour tous les hôtes du réseau, quel que soit le bout de la (des) liaison(s) auquel ils sont connectés. Les adresses des hôtes n'ont pas besoin d'être uniques à travers un WAN car l'adresse du réseau est combinée à l'adresse de l'hôte pour identifier l'hôte de manière unique.

Quels sont les types de trame que je devrais utiliser?

Il y a plusieurs types de trames au-dessus desquelles vous pouvez faire fonctionner IPX. Les plus utilisées sont décrites dans la section 'termes utilisés dans ce document' (sous l'entrée 'type de trame').

Si vous installez votre machine sur un réseau existant, alors vous devrez utiliser ce qui est déjà utilisé pour vous permettre de communiquer avec les autres machines du réseau. En revanche, si vous installez un réseau tout neuf, il y a toute une variété de protocoles pour transporter votre trafic IPX que vous pouvez utiliser. Si vous installez un réseau tout neuf et que vous envisagez d'y faire passer de l'IPX et de l'IP, je vous recommande des trames de type Ethernet_II.

Mes machines Windows95 brouillent la détection automatique du type de mes trames.

Apparement, ils y arrivent, ouais. Je pourrais faire des commentaires pas gentils, mais à la place, je vous suggérerais de configurer manuellement le type de trames plutôt que d'utiliser la configuration automatique. C'est probablement la meilleure façon en tout cas.

Pourquoi est-ce que j'obtiens le message 'invalid argument' quand je configure IPX ?

Vous n'avez probablement pas un noyau qui supporte IPX. Soit vous recompilez votre noyau pour qu'il le fasse, soit vous vérifiez que vous avez bien utilisé lilo pour installer et utiliser le nouveau noyau.

Pourquoi est-ce que j'obtiens le message 'package not installed' quand je configure IPX ?

Vous n'avez probablement pas un noyau qui supporte IPX. Soit vous recompilez votre noyau pour qu'il le fasse, soit vous vérifiez que vous avez bien utilisé lilo pour installer et utiliser le nouveau noyau.

Pourquoi est-ce que pppd m'envoie le message 'IPX support not in kernel' ?

Vous avez probablement compilé IPX comme un module et vous ne vous êtes pas assuré qu'il était chargé avant de démarrer pppd.

Comment exporter en NFS un système de fichiers NCP monté ?

Pour utiliser NFS pour exporter un système de fichiers NCP, vous devez le monter en utilisant l'option -v de ncpmount. Cette option permet de monter un seul volume d'un serveur de fichiers au lieu de les monter tous. Lorsque vous faîtes ainsi, le démon NFS vous permet d'exporter ce système de fichiers de la manière habituelle.

Pourquoi est-ce que slist ne marche pas quand j'ai un réseau interne avec mars_nwe ?

Vous devez avoir la requête 'get nearest server' activée. L'entrée 401 dans /etc/nwserv.conf doit être 0, à moins que vous ayez une raison pour ne pas répondre à ces requêtes. Si vous voulez simplement que slist fonctionne et ne pas répondre à chaque requête 'get nearest server', ajoutez votre réseau interne et numéro de noeud dans /etc/nwserv.stations et positionnez l'entrée 401 de /etc/nwserv.conf à 2.

Est-ce que le paquetage ncpfs fonctionne avec mars_nwe ?

Les codes de Martin et Volkers commencent lentement à converger. Les versions récentes de mars_nwe ont une option pour lui permettre de marcher avec ncpfs. Vous devez activer WITH_NAME_SPACE_CALLS dans le fichier config.h de mars_nwe.

18. Copyright

L'IPX-HOWTO est soumis au Copyright (c) 1995 Terry Dawson.

Cette documentation est libre, vous pouvez la redistribuer et/ou la modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous).

Cette documentation est distribuée car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.

Vous pouvez obtenir une copie de la Licence Publique Générale GNU en écrivant à la Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, États-Unis.

Les marques déposées sont propriétés de leurs propriétaires respectifs.

19. Remerciements

Terry Dawson <terry@perf.no.itg.telstra.com.au> pour le document initial.

David E. Storey <dave@tamos.gmu.edu> et Volker Lendecke <lendecke@namu01.gwdg.de> qui m'ont assisté grandement en me fournissant des informations pour ce document. Gilbert Callaghan <gilbert@pokey.inviso.com>, David Higgins <dave@infra.com> et Chad Robinson <chadr@brtgate.brttech.com> pour leur contribution sur la configuration de IPX/PPP. Bennie Venter <bjv@Gil-galad.paradigm-sa.com> pour les informations utiles sur les types de trames. Christopher Wall <vergil@idir.net> pour ses suggestions utiles afin d'améliorer la lecture et l'agencement de ce document. Axel Boldt <boldt@math.ucsb.edu> pour ses suggestions utiles et le retour d'informations. Erik D. Olson <eriko@wrq.com> pour son retour d'informations utile et ses informations pour la configuration de PPP pour IPX. Brian King <root@brian.library.dal.ca> pour sa contribution à une question de la section FAQ

"NetWare" est une marque déposée de Novell Corporation.

"Caldera" est une marque déposée de Caldera Corporation.

Kevin Thorpe

<kevin@pricetrak.com>