9. Configurer votre machine Linux en serveur NCP

Contenu de cette section

Il existe deux distributions permettant à Linux de fournir les fonctions d'un serveur de fichiers Novell. Toutes deux permettent de partager des fichiers de la machine Linux entre les utilisateurs utilisant un client Novell Netware. Les utilisateurs peuvent relier et utiliser des systèmes de fichiers Novell comme des volumes locaux à leurs machines 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 plus à vos objectifs.

9.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 Stovers 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 contienne des bogues.

Acquérir mars_nwe

Vous pouvez récupérer mars_nwe à l'adresse linux01.gwdg.de . La version à jour lors de l'écriture de ce document est : mars_nwe-0.96.pl2.tgz.

Compiler l'ensemble mars_nwe

Compilez un noyau Linux supportant les appels 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' comme suit :

                

         ...
         ...
        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, 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, je vous conseille de 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écompressez le paquetage mars_nwe.

          # cd /usr/src
          # tar xvfz mars_nwe-0.96.pl2.tgz

Installer mars_nwe.

Cette opération est très simple. En premier lieu, éditez et modifiez le fichier config.h si nécessaire. Il vous permet de configurer certains point tels que le répertoire d'installation, le nombre maximum de sessions et de volumes que le serveur pourra supporter. Une fois ceci terminé tapez:

          # make
          # make install

Ces commandes compileront les différents serveurs et les installeront dans un répertoire approprié. Le fichier 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 flou à un 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 terminée par le caractère espace et débute par un nombre. Chaque caractère précédé du caractère '#' est considéré comme étant un commentaire et de ce fait est ignoré. 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 repertoire contenant le volume
     # SYS doit contenir les repertoires: LOGIN, PUBLIC, SYSTEM, MAIL.
     # L'option 'k' convertit toutes les requetes de nom de fichier 
     # en  minuscules
     # Par defaut ils sont en majuscules.
     # Syntaxe:
     #    1 <Nom du volume> <Chemin du volume>   <Options>

     1   SYS         /home/netware/SYS/               # SYS
     1   DATA        /home/netware/DATA/                # DATA

     # Nom du serveur
     # Si cette option n'est pas mise le nom du serveur linux sera converti
     # en majuscule et utilise
     # Syntaxe:
     #    2 <Nom du serveur>

     2   LINUX_FS01

     # NUMERO DE RESEAU INTERNE (pas encore implementee)
     # Syntaxe:
     #    3 <adresse interne du reseau> [<Numero de noeud>]


     # PERIPHERIQUES RESEAU
     # Cette option configure votre reseau IPX. Si votre reseau IPX est deja
     # configure, vous n'en aurez pas besoin.
     # Syntaxe
     #    4 <Numero de reseau IPX> <Nom de peripheriques> <Type de standard> [<ticks>]
     #                         Types de standards : ethernet_ii, 802.2, 802.3, SNAP

     4  0x39a01010  eth0  802.3  1

     # 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>
     #      0 = 2.15, 1 = 3.11

     6 0

     # DROITS MINIMUM EN FONCTION DES GID ET UID
     # Les permissions qui sont appliquees lors de rattachements sans login
     # Syntaxe:
     #    10 <gid>
     #    11 <uid>
     #    <gid> <uid> sont ceux donnees dans /etc/passwd et /etc/groups 

     10  200
     11  201

     # Mot de passe du SUPERVISOR
     # Doit etre enleve une fois le serveur demarre. Le serveur encryptera cette
     # information dans le fichier de liaison apres son lancement.    
     # Syntaxe:
     #    12 <Login du supervisor> <Nom d'utilisateur UNIX> [<mot de passe>]

     12  SUPERVISOR  root  secret

     # COMPTE 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  TERRY  terry
     13  MAR    mar


     # QUEUES D'IMPRESSION
     # Permet d'associer des imprimantes Netware a des imprimantes UNIX.Les
     # repertoire de queues d'impression doivent etre creees manuellement
     # avant de permettre toute impression.
     # Syntaxe:
     #    21 <Nome de queue> <repertoire de queue> <commande d'impression UNIX>

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

     # DRAPEAUX DE DEBOGUAGE 
     # Syntax:
     #    <point de deboguage> <drapeau de deboguage>
     #
     #    100 = IPX KERNEL
     #    101 = NWSERV
     #    102 = NCPSERV
     #    103 = NWCONN
     #    104 = use NWCLIENT
     #                 0 = supprime le deboguage, 1 = active le deboguage

     100 0
     101 0
     102 0
     103 0
     104 0

     # LANCE 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 tache de fond et utiliser le fichier de log

     200  1

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

     201  /tmp/nw.log

     # ENRICHIR OU REECRIRE LE FICHIER DE LOG
     # Syntaxe:
     #    202 <drapeau>
     #        0 = enrichir le fichier de log existant
     #        1 = reecrire le fichier de log existant

     202  1

     # EXTINCTION DU SERVEUR
     # Ce point modifie le delai entre l'affichage d'extinction du serveur et
     # l'extinction reelle du serveur
     # Syntaxe:
     #    210 <temps>
     #        en secondes. (par default 10)

     210  10

Démarrer le serveur

Pour démarrer le serveur vous n'aurez qu'à taper la commande suivante :

                
        # mwserv

Tester le serveur

Pour tester le serveur vous devrez tout d'abord 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.

9.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 NCP de base.

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 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 ne fonctionne pas pour des couches NETX et VLM Netware.

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 n'est nécessaire. Certaines fonctionnalités ont changé avec la version 1.3.* du noyau, ce qui signifie que des patches sont nécessaires pour ces versions afin de faire fonctionner ce serveur de manière correcte. Des patches 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 , Sunsite , 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écompressez l'ensemble lwared

Ce qui devrait ressembler à :

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

Compilez 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 patches 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 patches pour la version 1.3.17 du noyau ou plus récent, vous devrez essayer la commande suivante:

        
        # make patch

La prochaine chose que vous devrez faire après avoir appliqué le patch, le cas échéant, sera de vérifier que votre noyau à 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.

Enfin, vous devrez vous assurer du choix approprié du driver de votre carte Ehernet. 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 tout 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 correspondant.

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 de votre serveur. Pour atteindre ce but, vous aurez besoin de 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 standard 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 matériel logiciel du noyau permet de faire du suivi 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 le routage IPX de l'information 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 loger sur votre serveur. Il s'agit de :

/etc/lwpasswd

Il s'agit du fichier dans lequel les informations sur les 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 par le 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 encryptés cela signifie qu'il n'y a pas de mot de passe. D'autre part, chaque utilisateur de LinWare présent dans /etc/lwpasswd doit aussi être présent dans /etc/passwd et seul l'utilisateur root peut changer le mot de passe d'un autre utilisateur. Si vous êtes logé comme 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 minimum, une entrée dans ce fichier pour le volume SYS pour que le serveur puisse démarrer. Si vous voulez que vos utilisateurs basés sous DOS puissent accéder à votre serveur LinWare comme à leur serveur primaire, vous devrez alors installer une arborescence de volume SYS dans le répertoire déclaré comme volume SYS. Les fichiers devant être présents dans ces répertoires sont ceux de Novell et sont soumis à leurs copyright. Si vos utilisateurs utilisent un serveur de fichiers Novell comme serveur de base, vous n'aurez pas besoin du volume SYS.

Démarrer le serveur lwared

         
         # lwared
Rien n'est plus simple n'est-ce pas? Mais quelques questions subsistent comme par exemple le nom du serveur de fichiers. Si vous démarrez 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 modifier le nom du serveur LinWare, 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à logée sur un serveur. Si la manipulation ne donne pas de bon résultat, vérifiez que ipxsapd et lwared soient lancés 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 de fichiers sont basées sur celles données par le serveur Linux en fonction de votre compte utilisateur.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre