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.
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".
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.
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
.
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.
# cd /usr/src
# tar xvfz mars_nwe-0.99.pl10.tgz
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 :
FILENAME_NW_INI l'emplacement des fichiers d'initialisation PATHNAME_PROGS l'emplacement du programme exécutable PATHNAME_BINDERY l'endroit où iront les fichiers de la 'bindery' PATHNAME_PIDFILES le répertoire où les fichiers PID seront écrits MAX_CONNECTIONS le nombre maxi de connexions simultanées autorisées MAX_NW_VOLS le nombre maxi de volumes supportés 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 nonLes 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
.
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épertoire contenant le volume
# SYS doit contenir les répertoires : LOGIN, PUBLIC, SYSTEM, MAIL.
# l'option 'i' ignore la casse (majuscules/minuscules)
# l'option 'k' convertit toutes les requêtes 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 'o' indique le volume est un système de fichiers monté unique
# l'option 'P' permet aux commandes d'être utilisées comme des fichiers
# l'option 'O' permet l'utilisation de l'espace de noms (namespace) OS/2
# l'option 'N' permet l'utilisation de l'espace de noms (namespace) NFS
#
# Par défaut les noms de fichiers sont en majuscules.
# Syntaxe :
# 1 <Nom du volume> <Chemin du volume> <Options>
1 SYS /home/netware/SYS/ # SYS
1 DATA /home/netware/DATA/ k # DATA
1 CDROM /cdrom kmr # CDROM
# NOM DU SERVEUR
# Si cette option n'est pas mise le nom du serveur Linux sera converti
# en majuscule et utilisé
# Syntaxe :
# 2 <Nom du serveur>
2 LINUX_FS01
# ADRESSE DE RESEAU INTERNE
# l'adresse de réseau interne est une fonctionnalité qui simplifie
# le routage IPX pour les machines reliées à plusieurs réseaux IPX.
# Syntaxe :
# 3 <adresse interne du réseau> [<Numéro de noeud>]
# ou
# 3 auto
# si vous utilisez 'auto' alors l'adresse IP de la machine sera
# utilisée. NOTE : cela peut être dangereux, assurez-vous de prendre
# un nombre unique sur votre réseau. Les adresses sont codées en
# hexadécimal sur 4 octets (le préfixe 0x est obligatoire).
3 0x49a01010 1
# PERIPHERIQUES RESEAU
# Cette option configure votre réseau IPX. Si votre réseau IPX est déjà
# configuré, vous n'en aurez pas besoin.
# Syntaxe
# 4 <Numéro de reseau IPX> <Nom de périphérique> <Type de trame> [<ticks>]
# Types de trames : 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 1
# GESTION DES MOTS DE PASSE
# les clients DOS de Novell supportent une fonctionnalité qui chiffre
# votre mot de passe (mdp) lorsque vous le changez. Vous pouvez
# configurer votre serveur mars pour supporter cette fonctionnalité.
# Syntaxe :
# 7 <drapeau>
# avec <drapeau> =
# 0 force chiffrage du mdp (les clients ne peuvent pas changer de mdp).
# 1 force chiffrage du mdp, permet les changements de mdp non chiffrés.
# 7 permet les mdp non chiffrés mais pas les mdp nuls.
# 8 permet les mdp non chiffrés ainsi que les mdp nuls.
# 9 seulement les mdp non chiffrés (ne marche pas avec OS/2).
7 1
# DROITS MINIMUM EN FONCTION DES GID ET UID
# Les permissions qui sont appliquées lors de connexions sans login
# Ces permissions seront utilisées pour les fichiers
# de votre serveur primaire.
# Syntaxe :
# 10 <gid>
# 11 <uid>
# <gid> <uid> sont ceux donnés dans /etc/passwd et /etc/group
10 200
11 201
# MOT DE PASSE DU SUPERVISEUR
# Doit etre enlevé après le premier démarrage du serveur. Le serveur
# cryptera cette information dans le fichier de bindery après son
# lancement. Vous devriez éviter d'utiliser le compte 'root' et en choisir
# un autre pour administrer le serveur mars.
#
# Cette entrée est lue et chiffrée dans le fichier de bindery du serveur,
# elle n'a donc besoin d'être présente que la première fois que vous
# démarrez le serveur, pour s'assurer que le mot de passe ne soit pas volé
# Syntaxe :
# 12 <Login du superviseur> <Nom d'utilisateur UNIX> [<mot de passe>]
12 SUPERVISOR terry secret
# 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és de cette
# façon devront utiliser le mot de passe fourni ici.
# Je vous déconseille de l'utiliser à moins que la sécurité ne fasse pas
# partie de vos préoccupations.
# Syntaxe :
# 15 <drapeau> <mot de passe commun>
# avec <drapeau> :
# 0 - ne configure aucun utilisateur automatiquement.
# 1 - configure automatiquement les utilisateurs non encore configurés.
# 99 - configure automatiquement tous les utilisateurs.
15 0 duzzenmatta
# VERIFICATION SIMPLE
# mars_nwe s'assurera automatiquement que certains répertoires existent
# si vous positionnez ce drapeau.
# Syntaxe :
# 16 <drapeau>
# avec <drapeau> à 0 pour non, ne fait rien et 1 pour oui, vérifie.
16 0
# QUEUES D'IMPRESSION
# Permet d'associer des imprimantes Netware à des imprimantes UNIX. Les
# répertoires de files d'impression doivent être crées manuellement
# avant de tenter toute impression.
# Syntaxe :
# 21 <Nom de queue> <répertoire 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écessaires, mais ils peuvent être utiles
# pour la résolution de problèmes.
# Syntaxe :
# <élément de débogage> <drapeau de debogage>
#
# 100 = IPX KERNEL
# 101 = NWSERV
# 102 = NCPSERV
# 103 = NWCONN
# 104 = démarrage NWCLIENT
# 105 = NWBIND
# 106 = NWROUTED
# 0 = supprime le débogage, 1 = active le débogage
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âche 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 = écraser le fichier de log existant
202 1
# EXTINCTION DU SERVEUR
# Ce point modifie le délai entre l'affichage d'extinction du serveur et
# l'extinction réelle du serveur
# Syntaxe :
# 210 <temps>
# en secondes (par défaut 10)
210 10
# INTERVALLE ENTRE LES DIFFUSIONS DE ROUTAGE
# la durée en secondes entre les diffusions (broadcast) de serveurs
# Syntaxe :
# 211 <temps>
# en secondes (par défaut : 60)
211 60
# INTERVALLE ENTRE LES LOGS DE ROUTAGE
# configure le nombre de diffusions après lesquelles les informations
# de routage sont écrites dans les fichiers de log.
# Syntaxe :
# 300 <nombre>
300 5
# FICHIER DE LOG DE ROUTAGE
# configure le nom du fichier de log des informations de routage
# Syntaxe :
# 301 <nom de fichier>
301 /tmp/nw.route
# AJOUT/ECRASEMENT DU FICHIER DE LOG DE ROUTAGE
# configure si vous voulez ajouter les nouveaux logs à la fin du
# fichier existant ou bien le réecrire.
# Syntaxe :
# 302 <drapeau>
# avec <drapeau> à 0 pour l'ajout et à 1 pour création/écrasement
302 1
# MINUTAGE DU CHIEN DE GARDE (watchdog)
# Configure les intervalles de temps entre les messages de garde pour
# s'assurer que le réseau 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éseau chute en dessous
# de 'n' ticks.
310 7
# FICHIER DE STATIONS
# configure le nom du fichier qui détermine les machines pour lesquelles
# ce serveur de fichiers sera le serveur primaire.
# La syntaxe de ce fichier est décrite dans le répertoire 'examples'
# du code source.
# Syntaxe :
# 400 <nom de fichier>
400 /etc/nwserv.stations
# OBTENTION DU SERVEUR DE FICHIERS LE PLUS PROCHE
# Configure la manière dont sont gerées les requêtes SAP 'obtention
# du serveur le plus proche' (Get Nearest Fileserver).
# Syntaxe :
# 401 <drapeau>
# avec <drapeau> =
# 0 : désactive cette requête
# 1 : le fichier de stations liste les stations à exclure
# 2 : le fichier de stations liste les station à inclure
401 2
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
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.
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.
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.
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
Ce qui devrait ressembler à :
# cd /usr/src # tar xvpfz lwared-0.95.tar.gz
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é.
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.
Voici la partie la plus amusante !
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
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
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 /homeCe 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
.
# lwaredPlutô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 -nlinux00Ici le nom du serveur LinWare sera
linux00
.
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.