janl@linpro.no
Christophe.Deleuze@lip6.fr
).
HOWTO d�crivant l'installation de serveurs et clients NFS.
(C)opyright 1997-1999 Nicolai Langfeldt et Ron Peters. Si vous modifiez ce document signalez le dans le copyright, sa distribution est libre � condition de conserver ce paragraphe. La section FAQ est bas�e sur la FAQ NFS compil�e par Alan Cox. La section Checklist est bas�e sur une checklist des probl�mes de mount compil�e par IBM Corporation. La section ``NFS serveur sur disquette'' a �t� �crite par Ron Peters.
(C)opyright 1997-1999 Christophe Deleuze pour la version fran�aise. Si vous lisez ce document sous le pont de l'Alma, veillez � respecter les limitations de vitesse.
Ni Nicolai Langfeldt, ni Ron Peters ni leurs employeurs, ni qui que ce soit, n'assume de responsabilit� pour les cons�quences que les instructions de ce document peuvent avoir. Si vous choisissez de suivre ces instructions, bonne chance !
Ce document ne sera jamais termin�, merci de m'envoyer par mail vos probl�mes et r�ussites, cela pourra am�liorer ce HOWTO. Envoyez argent, commentaires et questions � janl@math.uio.no, ou rpeters@hevanet.com pour ce qui concerne les serveurs NFS sur disquette. Si vous m'envoyez un mail, par piti�, v�rifiez que l'adresse de retour soit correcte et fonctionne. Vous ne vous imaginez pas combien de mes r�ponses sont revenues � cause d'une adresse incorrecte.
Si vous voulez traduire ce HOWTO merci de me le signaler, que je puisse savoir en quels langages j'ai �t� publi� :-). [Ndt : c'est fait...]
Remerciements � Olaf Kirch pour m'avoir convaincu d'�crire ceci, puis fourni de bonnes suggestions.
Les commentaires sur la traduction sont � envoyer � Christophe Deleuze, Christophe.Deleuze@lip6.fr.
NFS, le syst�me de fichiers par r�seau, a trois caract�ristiques importantes :
Je parlerai de ces deux aspects dans ce HOWTO. Lisez bien la section s�curit� et vous supprimerez quelques risques stupides. Ne dites pas que je ne vous ai pas pr�venus. Les passages sur la s�curit� sont parfois assez techniques et demandent quelques connaissances en r�seau IP. Si vous ne connaissez pas les termes utilis�s vous pouvez soit consulter le HOWTO r�seau, improviser ou vous procurer un livre sur l'administration de r�seau TCP/IP pour vous familiariser avec TCP/IP. C'est une bonne id�e de toutes fa�ons si vous administrez des machines UNIX/Linux. Un tr�s bon livre sur le sujet est TCP/IP Network Administration par Craig Hunt, publi� par O'Reilly & Associates, Inc. Et quand vous l'aurez lu et compris, vous vaudrez plus cher sur le march� du travail, vous ne pouvez qu'y gagner :-)
Il y a deux sections pour vous aider � r�gler vos probl�mes NFS, la Mount Checklist et les FAQs. Jetez-y un oeil si quelque chose ne marche pas comme pr�vu.
Si vous voulez/avez besoin de le r�cup�rer et compiler vous m�me, le site de r�f�rence pour le nfsd Linux 2.0 est ftp.mathematik.th-darmstadt.de:/pub/linux/okir.
� propos de NFS sous Linux 2.2 voir la section sur Linux 2.2.
Avant de continuer � lire ce HOWTO, vous aurez besoin de pouvoir faire des telnet dans les deux sens entre les machines que vous utiliserez comme serveur et client. Si cela ne fonctionne pas, voyez le HOWTO r�seau (NET-3) et configurez correctement le r�seau.
Avant de faire quoi que ce soit d'autre, il nous faut un serveur NFS install�. Si vous faites partie d'un d�partement r�seau d'une universit� ou autre, il y a probablement un grand nombre de serveurs NFS qui tournent d�j�. Si votre but est d'utiliser un serveur d�j� install� alors vous pouvez sauter � la section sur l'installation d'un client NFS.
Si vous devez installer un serveur sur une machine non Linux vous devrez lire les pages de manuel du syst�me pour trouver comment configurer le serveur NFS et l'exportation des syst�mes de fichiers par NFS. Ce HOWTO contient une section d�crivant les manipulations n�cessaires sur divers syst�mes. Ceci fait, vous pourrez passer � la section suivante. Ou continuer � lire cette section vu que certaines des choses que je vais dire sont pertinentes quel que soit le type de machine que vous utilisez comme serveur.
Si vous utilisez Linux 2.2, voyez la section sur Linux 2.2 avant de passer � la suite.
Nous allons maintenant configurer tout un tas de programmes.
Le portmapper de Linux est appel� soit portmap
soit
rpc.portmap
. La page de manuel sur mon syst�me dit que c'est un
convertisseur de port DARPA vers num�ro de programme RPC. C'est l� que se
trouve la premi�re faille de s�curit�. La gestion de ce probl�me est d�crite
� la section
sur la s�curit�, que, encore une
fois, je vous invite tr�s fortement � lire.
Lancez le portmapper. Il devrait �tre dans le r�pertoire /usr/sbin
(sur quelques machines il est appel� rpcbind). Vous pouvez le lancer � la
main pour cette fois mais il devra �tre lanc� � chaque d�marrage de la
machine, il faudra donc cr�er ou �diter les scripts rc. Les scripts rc sont
d�crits dans la page de manuel init, ils sont g�n�ralement dans
/etc/rc.d
, /etc/init.d
ou /etc/rc.d/init.d
. S'il
y a un script qui a un nom du genre inet
, c'est probablement le script
� �diter. Mais ce qu'il faut �crire ou faire sort du cadre de ce
HOWTO. Lancez portmap, et v�rifiez qu'il tourne avec ps -aux
, puis
rpcinfo -p
. Il y est ? Benissimo.
Encore une chose. L'acc�s distant � votre portmapper est contr�l� par le
contenu de vos fichiers /etc/hosts.allow
et
/etc/hosts.deny
. Si rcpinfo -p
�choue alors que le portmapper
tourne, v�rifiez ces fichiers. Voyez la section
sur la s�curit� pour les d�tails concernant ces fichiers.
Les prochains programmes � lancer sont mountd et nfsd. Mais d'abord il faut
�diter un autre fichier, /etc/exports
. Disons que je veux que le
syst�me de fichiers /mn/eris/local
qui est sur la machine eris
soit disponible sur la machine apollon
. Je l'indique dans
/etc/exports
sur eris :
/mn/eris/local apollon(rw)
La ligne ci-dessus donne � apollon
un acc�s en lecture/�criture sur
/mn/eris/local
. Au lieu de rw
on pourrait mettre ro
pour
read only (lecture seule, c'est la valeur par d�faut). D'autres options
existent, et je parlerai de quelques unes li�es � la s�curit� plus
loin. Elles sont toutes d�crites dans la page de manuel exports
qu'il
faut lire au moins une fois dans sa vie. Il y a de meilleures fa�ons de
faire que de lister tous les hosts dans le fichier exports. Peuvent �tre
autoris�s � monter un syst�me de fichiers NFS, des groupes r�seaux (net
groups) si vous utilisez NIS (ou NYS, auparavant connu sous le nom YP), des
noms de domaines avec jokers et des sous r�seaux IP. Mais il faudra v�rifier
qui peut obtenir un acc�s au serveur avec ce type d'autorisations group�es.
Note : ce fichier exports n'utilise pas la m�me syntaxe que d'autres
Unix. Ce HOWTO contient une section sur la fa�on dont les autres Unix
export
ent leurs fichiers.
Maintenant nous sommes pr�ts � lancer mountd (ou peut-�tre s'appelle-t-il
rpc.mountd
), puis nfsd (qui s'appelle peut-�tre rpc.nfsd
). Ils
liront tous deux le fichier exports.
Si vous modifiez /etc/exports
, vous devrez vous assurer que nfsd et
mountd savent que le fichier a chang�. La fa�on traditionnelle est de lancer
exportfs
. Beaucoup de distributions Linux n'ont pas le programme
exportfs. Si c'est le cas sur votre machine, vous pouvez installer ce script
:
#!/bin/sh killall -HUP /usr/sbin/rpc.mountd killall -HUP /usr/sbin/rpc.nfsd echo Volumes NFS r�export�s
Sauvez le dans /usr/sbin/exportfs
par exemple, et n'oubliez pas de
lui appliquer chmod a+rx
. D�sormais, chaque fois que vous changez
votre fichier exports, lancez ensuite exportfs en root.
Maintenant, v�rifiez que mountd et nfsd fonctionnent correctement. D'abord
avec rpcinfo -p
. Il devrait donner quelque chose du genre :
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 745 mountd 100005 1 tcp 747 mountd 100003 2 udp 2049 nfs 100003 2 tcp 2049 nfs
On voit que le portmapper a annonc� ses services, de m�me que mountd et nfsd.
Si vous obtenez : rpcinfo: can't contact portmapper: RPC: Remote system
error - Connection refused
, RPC_PROG_NOT_REGISTERED
ou quelque chose
du style c'est que le portmapper ne tourne pas. OU, vous avez quelques chose
dans /etc/hosts.{allow,deny}
qui interdit au portmapper de
r�pondre, voyez
la section s�curit� � ce
propos. Si vous obtenez No remote programs registered
alors soit le
portmapper ne veut pas vous parler, soit quelque chose ne marche pas. Tuez
nfsd, mountd et le portmapper et essayez de recommencer.
Apr�s avoir v�rifi� que le portmapper rend compte des services vous pouvez
v�rifier aussi avec ps
. Le portmapper continuera � afficher les
services m�me si les programmes qui les offrent ont crash�. Il vaut donc
mieux v�rifier par ps si quelque chose ne marche pas.
Bien sur, vous devrez modifier vos fichiers syst�mes rc pour lancer mountd et nfsd au d�marrage de la m�me fa�on que le portmapper. Il y a de tr�s fortes chances que les scripts existent d�j� sur votre machine, vous aurez juste � d�commenter les bonnes lignes ou les activer pour les bons runlevels (pardon niveaux d'ex�cution) d'init.
Quelques pages de manuel avec lesquelles vous devriez �tre familier : portmap, mountd, nfsd et exports.
Bon, si vous avez tout fait exactement comme j'ai dit vous �tes pr�ts � encha�ner sur le client NFS.
Tout d'abord il faudra compiler un noyau avec le syst�me de fichiers NFS, soit compil� dans le noyau, soit disponible sous forme de module. Si vous n'avez encore jamais compil� un noyau vous aurez peut �tre besoin de consulter le HOWTO du noyau. Si vous utilisez une distribution tr�s cool (comme Chapeau Rouge) et que vous n'avez jamais trifouill� le noyau (pas toucher toucher) il y a des chances que NFS soit automagiquement disponible.
Vous pouvez maintenant, � l'invite (prompt) du root, entrer la commande
mount
appropri�e et le syst�me de fichiers appara�tra. Continuons avec
l'exemple de la section pr�c�dente, nous voulons monter
/mn/eris/local
depuis eris. La commande est :
mount -o rsize=1024, wsize=1024 eris:/mn/eris/local /mnt
Nous reviendrons plus tard sur les options rsize et wsize. Le syst�me de
fichiers est maintenant disponible sous /mnt et vous pouvez faire un cd sur
lui, puis un ls et regarder les fichiers individuellement. Vous remarquerez
que ce n'est pas aussi rapide qu'avec un syst�me de fichiers local, mais
beaucoup plus pratique que ftp. Si, au lieu de monter le syst�me de
fichiers, mount renvoie un message d'erreur comme mount:
eris:/mn/eris/local failed, reason given by server: Permission denied
alors le fichier exports est incorrect, ou vous avez oubli� de lancer
exportfs apr�s avoir modifi� le fichier exports. S'il dit mount:
clntudp_ipdate: RPC: Program not registered
cela signifie que nfsd ou
mountd ne tourne pas sur le serveur, ou que vous avez le probl�me avec les
fichiers hosts.{allow,deny}
mentionn� plus haut.
Pour vous d�barrasser du syst�me de fichiers, vous pouvez faire :
umount /mnt
Pour que le syst�me monte automatiquement un syst�me de fichiers NFS au
d�marrage, �ditez /etc/fstab
de la fa�on habituelle. Par exemple
avec une ligne comme celle-ci :
# device mountpoint fs-type options dumps sfckorder ... eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024 0 0 ...
C'est presque tout ce qu'il y a � savoir. Vous pouvez jeter un coup d'oeil �
la page de manuel nfs
. Continuons plize.
Il y a trois comportements principaux des clients NFS en cas de chute du serveur qui sont sp�cifi�s par les options de montage :
Le client NFS renverra une erreur au processus concern� si apr�s quelques essais le serveur NFS persiste � ne pas r�pondre. Si vous voulez utiliser cette option, vous devez v�rifier que votre logiciel la g�re correctement. Je ne recommande pas ce r�glage, c'est un bon moyen de perdre des donn�es et corrompre des fichiers. En particulier, n'utilisez pas �a pour les disques o� sont stock�s vos mails (si vous tenez � vos mails).
Le client NFS r�essaiera infiniment jusqu'� ce qu'il soit tu�. Les op�rations reprendront normalement si le serveur NFS se r�tablit ou red�marre. Le client ne pourra pas �tre interrompu ou tu�.
Comme hard, mais Ctrl-C tuera le processus bloqu�. Dans quelques cas, notament un disque /usr/spool/mail mont� par NFS cela ne changera rien car le shell ignore le Ctrl-C quand il teste si vous avez du mail. Je recommande cette option pour tous les syst�mes de fichiers NFS, y compris le spool du mail.
Reprenons l'exemple pr�c�dent, votre entr�e fstab est maintenant :
# device mountpoint fs-type options dumps sfckorder ... eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024,hard,intr 0 0 ...
Normalement, si les options rsize et wsize ne sont pas pr�cis�es, NFS �crira et lira par blocs de 4096 ou 8192 octets. Mais certaines combinaisons de noyau Linux et cartes r�seau ne peuvent pas fonctionner avec ces valeurs, de plus, m�me si cela marche, cela peut ne pas �tre optimal du tout. Il nous faudra donc exp�rimenter et trouver les valeurs de rsize et wsize qui fonctionnent et donnent les transferts les plus rapides. Vous pouvez tester la vitesse obtenue avec diff�rentes valeurs des options avec des commandes simples. La commande mount ci-dessus ayant �t� ex�cut�e, si vous avez l'acc�s en �criture sur le disque vous pouvez tester les performances en �criture s�quentielle :
time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
Ceci cr�e un fichier de 64 Mo ne contenant que des 0. Faites le quelques (5-10?) fois et prenez la moyenne des temps. C'est le temps `elapsed' ou `wall clock' qui est le plus int�ressant. Ensuite vous pouvez tester les performances en lecture en relisant le fichier :
time dd if=/mnt/testfile of=/dev/null bs=16k
faites le quelques fois et prenez la moyenne. Puis d�montez (umount
) et
remontez (mount
) avec des valeurs plus grandes pour rsize et wsize. Il
vaut mieux prendre des multiples de 1024, et probablement pas plus grand que
16384 octets, car les gros blocs ralentissent les acc�s
al�atoires. Imm�diatement apr�s avoir remount
� avec une taille
sup�rieure, placez vous (cd
) dans le syst�me de fichiers et faites des
trucs comme ls, explorez un peu pour v�rifier que tout est bien normal. Si
la valeur de rsize/wsize est trop grande, les sympt�mes sont vraiment
bizarres et pas �vidents. Un sympt�me typique est une liste de fichiers
donn�e par ls
incompl�te sans aucun message d'erreur. Ou la lecture de
fichier qui �choue myst�rieusement et sans message d'erreur. Apr�s vous �tre
assur�s que les wsize/rsize choisis fonctionnent, vous pouvez faire les
tests de rapidit�. Diff�rentes plateformes de serveur auront peut-�tre des
tailles optimales diff�rentes. SunOS et Solaris sont r�put�s pour �tre
beaucoup plus rapides avec une taille de 4096 octets.
Les noyaux Linux r�cents (depuis 1.3) font parfois des lectures anticip�es (read ahead) pour des rsizes sup�rieurs ou �gaux � la taille de page de la machine. Sur les processeurs Untel la taille de la page est de 4096 octets. La lecture anticip�e augmentera sensiblement les performances en lecture. Sur une machine Untel on devrait donc choisir un rsize de 4096 si c'est possible.
Un truc pour augmenter les performances d'�criture de NFS est d'invalider les �critures synchrones sur le serveur. Les sp�cifications de NFS disent que les requ�tes d'�criture de NFS ne doivent pas �tre consid�r�es comme termin�es avant que les donn�es ne soient sur un m�dium non versatile (normalement le disque). Ceci r�duit les performances � l'�criture, les �critures asynchrones sont plus rapides. Le nfsd Linux ne fait pas d'�critures synchrones car l'impl�mentation du syst�me de fichiers ne s'y pr�te pas, mais sur les serveurs non Linux vous pouvez augmenter les performances de cette fa�on dans votre fichier exports :
/dir -async, access=linuxbox
ou quelque chose du genre. R�f�rez vous � la page de manuel exports de la machine concern�e. Notez que ceci augmente les risques de perte de donn�es.
Les lignes lentes (� faible d�bit) comprennent les modems, RNIS et aussi sans doute les autres connexions longue distance.
Cette section est bas�e sur la connaissance des protocoles utilis�s mais pas sur des exp�rimentations. Faites moi savoir si vous essayez ceci ;-)
La premi�re chose � retenir est que NFS est un protocole lent. Il a un grand overhead (sur-co�t en bande passante). Utiliser NFS, c'est presque comme utiliser kermit pour transf�rer des fichiers. Il est lent. Presque tout est plus rapide que NFS. FTP est plus rapide. HTTP est plus rapide. rcp est plus rapide. ssh est plus rapide.
Vous voulez toujours l'essayer ? Ok.
Par d�faut NFS est param�tr� pour des lignes rapides et � faible latence. Si vous utilisez les param�tres par d�faut sur des lignes � grande latence cela peut provoquer des erreurs, des annulations, des r�tr�cissements de fichiers, et des comportements bizarres.
La premi�re chose � faire est de ne pas utiliser l'option de montage
soft
. Les temporisations retourneront des erreurs au logiciel, qui, dans
l'immense majorit� des cas, ne saura pas quoi en faire. C'est une bonne
fa�on d'avoir des probl�mes bizarres. Utilisez plut�t l'option de montage
hard
. Quand hard
est actif les temporisations d�clenchent des
essais infinis au lieu d'annuler ce que le logiciel �tait en train de
faire (quoi que ce soit). C'est ce que vous voulez. Vraiment.
La deuxi�me chose � faire est d'ajuster les options de montage timeo
et retrans
. Elles sont d�crites dans la page de manuel nfs(5), en voici
un extrait (version fran�aise) :
timeo=n La valeur, en dixiemes de secondes, du delai avant de declencher la premiere retransmission d'une RPC. La valeur par defaut est 7/10 de seconde. Apres une pre� miere expiration, le delai est double et l'on recommence les retransmissions jusqu'a ce que le delai atteigne la valeur maximale de 60 secondes, ou que le nombre maximal de retransmission soit depasse. Il se produit alors une erreur d'expiration majeure de delai. Si le systeme est monte "en dur", les retransmissions reprendront a nouveau indefiniment. On peut ameliorer les performances en aug� mentant le delai sur un reseau charge, si le serveur est un peu lent, ou si l'on traverse plusieurs routeurs ou passerelles. retrans=n Le nombre d'expirations mineures et de retransmissions qui doivent se produire avant de declencher une expiration majeure. La valeur par defaut est 3 expirations mineures. Quand une erreur d'expiration majeure se produit, soit l'operation est abandonnee, soit un message "server not responding" est affiche sur la console.
En d'autres mots : si une r�ponse n'est pas re�ue avant la temporisation de 0,7 seconde (700 ms), le client NFS r�p�tera la requ�te et doublera la temporisation � 1,4 seconde. Si la r�ponse n'arrive pas dans les 1,4 seconde, la requ�te est r�p�t�e � nouveau et la temporisation est doubl�e � 2,8 secondes.
La vitesse de la ligne peut �tre mesur�e avec un ping ayant vos valeurs de rsize/wsize comme taille de paquet.
$ ping -s 8192 lugulbanda PING lugulbanda.uio.no (129.240.222.99): 8192 data bytes 8200 bytes from 129.240.222.99: icmp_seq=0 ttl=64 time=15.2 ms 8200 bytes from 129.240.222.99: icmp_seq=1 ttl=64 time=15.9 ms 8200 bytes from 129.240.222.99: icmp_seq=2 ttl=64 time=14.9 ms 8200 bytes from 129.240.222.99: icmp_seq=3 ttl=64 time=14.9 ms 8200 bytes from 129.240.222.99: icmp_seq=4 ttl=64 time=15.0 ms --- lugulbanda.uio.no ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 14.9/15.1/15.9 ms
Le temps indiqu� est celui que le paquet du ping a pris pour aller et
revenir de lugulbanda. 15 ms, c'est assez rapide. Sur une ligne � 28 800 bps
vous pouvez vous attendre � une valeur de l'ordre de 4000-5000 ms, et si la
ligne est charg�e ce temps sera encore plus �lev�, facilement le double. En
g�n�ral, la latence augmente avec la taille des paquets et la charge de la
ligne. Si vous comptez utiliser FTP et NFS en m�me temps il faudra mesurer
les temps du ping pendant un transfert FTP et augmenter timeo
en accord
avec la latence de votre ligne.
Je ne suis en aucun cas un expert en s�curit� informatique. Mais j'ai tra�n� dans le secteur et j'ai un petit conseil pour ceux qui se pr�occupent de la s�curit�. Mais attention. Ce n'est pas absolument pas une liste compl�te des probl�mes li�s � NFS et si vous pensez �tre en s�curit� une fois que vous avez lu et mis en pratique tout ceci alors j'ai un pilier de pont (presque neuf) � vous vendre.
Cette section n'a probablement pas d'int�r�t si vous �tes sur un r�seau ferm� o� vous avez confiance en tous les utilisateurs, et que personne en qui vous n'avez pas confiance ne peut obtenir un acc�s sur les machines du r�seau. I.e., il ne devrait y avoir aucun moyen de se connecter � votre r�seau depuis l'ext�rieur et il ne devrait �tre reli� � aucun autre r�seau o� vous n'avez pas confiance en tous les utilisateurs et en sa s�curit�. Vous pensez que je suis parano ? Pas du tout. C'est un conseil de s�curit� de base. Et rappelez-vous que c'est juste le commencement. Un site s�r n�cessite un administrateur consciencieux et bien inform� qui sait o� trouver l'information sur les probl�mes de s�curit� existants ou potentiels.
Un probl�me de base de NFS est que le client, si on ne lui demande pas le contraire, fera confiance au serveur NFS et vice versa. �a peut �tre mauvais. Cela signifie que si le compte root du serveur est cass� (broken into) il peut �tre tr�s facile de casser le compte root du client. Et vice versa. Il y a quelques moyens de g�rer ce probl�me sur lesquels nous reviendrons.
Les documents consultatifs (advisories) du CERT sur NFS sont une bonne source d'information, la plupart des probl�mes (et des solutions) �voqu�es ci-dessous sont trait�s dans ces documents. Voyez ftp.cert.org:/01-README pour une liste � jour. En voici quelques-uns li�s � NFS (il n'y a pas � ma connaissance de version fran�aise) :
CA-91:21.SunOS.NFS.Jumbo.and.fsirand 12/06/91 Vulnerabilities concerning Sun Microsystems, Inc. (Sun) Network File System (NFS) and the fsirand program. These vulnerabilities affect SunOS versions 4.1.1, 4.1, and 4.0.3 on all architectures. Patches are available for SunOS 4.1.1. An initial patch for SunOS 4.1 NFS is also available. Sun will be providing complete patches for SunOS 4.1 and SunOS 4.0.3 at a later date. CA-94:15.NFS.Vulnerabilities 12/19/94 This advisory describes security measures to guard against several vulnerabilities in the Network File System (NFS). The advisory was prompted by an increase in root compromises by intruders using tools to exploit the vulnerabilities. CA-96.08.pcnfsd 04/18/96 This advisory describes a vulnerability in the pcnfsd program (also known as rpc.pcnfsd). A patch is included.
Du c�t� client il y a quelques options de mount qui permettent de ne pas
faire trop confiance au serveur. L'option nosuid
interdit le d�marrage
de programmes suid depuis le syst�me de fichiers NFS. C'est une option �
utiliser syst�matiquement, car elle emp�che le root du serveur de cr�er un
fichier suid sur le syst�me de fichiers NFS, puis de se loger dans le client
en utilisateur et de lancer le programme suid pour devenir root sur le
client. Il est aussi possible d'interdire l'ex�cution des fichiers du
syst�me de fichiers NFS avec l'option noexec
. Mais ceci est beaucoup
moins utile que nosuid
car le syst�me de fichiers contiendra tr�s
probablement au moins quelques scripts ou programmes � ex�cuter. Ces
options se rentrent dans la colonne d'options, avec wsize
et
rsize
, s�par�es par des virgules.
Du c�t� serveur on peut ne pas faire confiance au root du client, avec
l'option root_squash
(rembarrage du root :-) dans le fichier exports :
/mn/eris/local apollon(rw, root_squash)
Dans ce cas, si un utilisateur du client avec l'UID 0 essaye d'acc�der (en
lecture, �criture ou effacement) au syst�me de fichiers, le serveur remplace
l'UID par celui de l'utilisateur `nobody' du serveur. Ceci signifie que
l'utilisateur root du client ne peut acc�der/modifier les fichiers du
serveur que seul le root du serveur peut acc�der/modifier. C'est bien, et
vous aurez probablement � utiliser cette option sur tous les syst�mes de
fichiers que vous exportez. J'en entends un qui me dit : ``Mais
l'utilisateur root du client peut toujours utiliser 'su' pour devenir
n'importe qui et acc�der � ses fichiers !'' Et l� je r�ponds : ``Oui, c'est
comme �a, c'est Unix''. Ceci a une cons�quence importante : tous les
fichiers et binaires importants devraient appartenir � root
, et pas
bin
ou un compte autre que root, car le seul compte auquel le root du
client ne peut pas acc�der est le compte root du serveur. Plusieurs autres
options permettant de ne pas faire confiance � qui ne vous plait pas sont
�num�r�es dans la page de manuel nfsd. Il y a aussi des options pour
rembarrer (to squash) des intervalles d'UID ou GID.
Il est important aussi de s'assurer que nfsd v�rifie que toutes les requ�tes viennent d'un port privil�gi�. S'il accepte les requ�tes de n'importe quel port du client, un utilisateur quelconque peut ex�cuter un programme qu'il est facile de se procurer sur l'Internet. Il parle le protocole NFS et pourra pr�tendre �tre n'importe qui et �tre cru. �a fait peur hein ? Le nfsd Linux effectue cette v�rification par d�faut, sur d'autres syst�mes d'exploitation il faut la valider. �a devrait �tre d�crit dans les pages du manuel de ce syst�me.
Autre chose. N'exportez jamais un syst�me de fichiers vers `localhost' ou 127.0.0.1. Croyez-moi.
Le portmapper de base, en combinaison avec nfsd pr�sente un probl�me de conception qui rend possible de r�cup�rer les fichiers d'un serveur NFS sans avoir aucun privil�ge. Heureusement le portmapper utilis� par la plupart des distributions Linux est relativement s�r vis � vis de cette attaque, et peut �tre s�curis� en configurant les listes d'acc�s au moyen de deux fichiers.
Toutes les distributions de Linux ne sont pas �gales. Certaines
apparemment � jour n'incluent pas un portmapper sur, m�me aujourd'hui,
alors que le probl�me est connu depuis plusieurs ann�es. Au moins une
distribution contient m�me la page de manuel pour un portmapper s�r alors
que le portmapper effectivement install� n'est pas s�r. Pour d�terminer
simplement si votre portmapper est le bon ou pas, lancez strings(1) et voyez
s'il lit les fichiers appropri�s /etc/hosts.deny
et
/etc/hosts.allow
. Si votre portmapper est
/usr/sbin/portmap
ex�cutez la commande strings
/usr/sbin/portmap | grep hosts
. Sur ma machine cela donne :
/etc/hosts.allow /etc/hosts.deny @(#) hosts_ctl.c 1.4 94/12/28 17:42:27 @(#) hosts_access.c 1.20 96/02/11 17:01:27
Tout d'abord, �ditons /etc/hosts.deny
. Il devrait contenir la
ligne :
portmap: ALL
qui refusera l'acc�s � quiconque. Maintenant qu'il est ferm�, lancez
rpcinfo -p
pour v�rifier qu'il lit et se conforme au contenu du
fichier. rpcinfo ne devrait rien renvoyer, ou peut �tre un message
d'erreur. Il ne devrait pas y avoir besoin de relancer le portmapper.
Fermer le portmapper � tous le monde est peut �tre un peu excessif, nous
r�-ouvrons donc quelque peu l'acc�s en �ditant le fichier
/etc/hosts.allow
. Mais il faut d'abord savoir ce qu'on va y
mettre. � la base, il devrait contenir les noms de toutes les machines qui
doivent avoir acc�s � votre portmapper. Sur le syst�me Linux moyen il y a tr�s peu de machines qui ont une bonne raison de demander cet
acc�s. Le portmapper administre nfsd, mountd, ypbind/ypserv, pcnfsd et les
services ``en r'' comme ruptime et rusers. Parmis ceux-ci, seuls nfsd,
mountd, ypbind/ypserv et peut-�tre pcnfsd ont de l'importance. Toutes les
machines qui ont besoin d'acc�der � ces services sur votre machine devraient
y �tre autoris�es. Disons que votre machine est 129.240.223.254 et que tout
ce qui vit sur le sous r�seau 129.240.223.0 doit pouvoir y acc�der (si ceci
n'est pas clair pour vous, voyez le HOWTO r�seau). On �crit :
portmap: 129.240.223.0/255.255.255.0
dans hosts.allow
. C'est l'adresse de r�seau que vous donnez aussi � la
commande route
et le masque de r�seau que vous donnez �
ifconfig
. Pour le p�rif�rique eth0
sur cette machine ifconfig
devrait donner :
... eth0 Link encap:10Mbps Ethernet HWaddr 00:60:8C:96:D5:56 inet addr:129.240.223.254 Bcast:129.240.223.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:360315 errors:0 dropped:0 overruns:0 TX packets:179274 errors:0 dropped:0 overruns:0 Interrupt:10 Base address:0x320 ...
et netstat -rn
devrait donner :
Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface ... 129.240.223.0 0.0.0.0 255.255.255.0 U 0 0 174412 eth0 ...
(Adresse r�seau dans la premi�re colonne)
Les fichiers hosts.deny
et hosts.allow
sont d�crits dans les pages
de manuel de m�mes noms.
IMPORTANT : ne rien mettre d'autre que des adresses IP (num�riques) dans les lignes portmap de ces fichiers. Les host name lookup (recherche d'adresse IP (num�rique) � partir de l'adresse alphanum�rique ex. ftp.lip6.fr donne 132.227.77.2) peuvent indirectement d�clencher une activit� portmap qui d�clenchera un host name lookup qui d�clenchera...
Ceci fait, votre serveur devrait �tre un peu plus solide. Le dernier probl�me (mais oui !) est que quelqu'un casse le compte root (ou boute MS-DOS) sur une machine de confiance et utilise ce privil�ge pour envoyer des requ�tes depuis un port s�r en se faisant passer pour n'importe quel utilisateur.
C'est une tr�s bonne id�e de bloquer les ports NFS et portmap dans votre
routeur ou firewall. nfsd utilise le port 2049, que ce soit avec tcp ou
udp. Le portmapper est au port 749 (tcp et udp) et mountd aux port 745 et
747 (tcp et udp). V�rifiez les ports avec la commande rpcinfo -p
.
Si au contraire vous voulez que NFS traverse un firewall, il existe des options sur les nfsd et mountd r�cents pour leur sp�cifier le port � utiliser. Vous pouvez donc choisir un port qui ne soit pas bloqu� par le firewall.
Si vous configurez correctement votre installation portmapper/NFS avec
hosts.allow/deny, root_squash, nosuid et les ports privil�gi�s, vous �vitez
beaucoup des bogues connues de NFS et pouvez presque vous sentir en s�curit�
au moins pour �a. Mais de toutes fa�ons : quand un intrus obtient
l'acc�s � votre r�seau, il/elle peut faire appara�tre des commandes bizarres
dans votre .forward ou lire votre mail quand /home
ou
/var/spool/mail
sont export�s. Pour la m�me raison, vous ne devriez
jamais acc�der � votre cl� priv�e PGP par NFS. Ou au moins vous devez savoir
quel est le risque. Et maintenant vous savez un peu.
NFS et le portmapper constituent un syst�me complexe et il n'est donc pas totalement exclu que de nouvelles bogues soient d�couvertes, soit dans la conception soit dans l'impl�mentation que nous utilisons. Il pourrait m�me y avoir des d�fauts de s�curit� connus, que quelqu'un utilise. Mais c'est la vie. Pour vous tenir au courant, vous devriez au moins lire les forums comp.os.linux.announce et comp.security.announce comme minimum absolu (en fran�ais, consultez fr.comp.os.linux.annonces).
Cette section est bas�e sur la mount checklist (liste des probl�mes
li�s � mount
) de IBM Corp. Je les remercie de m'autoriser � l'utiliser
dans ce HOWTO. Si vous avez un probl�me en montant un syst�me de fichiers
NFS, consultez cette liste avant de poster votre probl�me sur les
niouzes. Chaque point d�crit un type de probl�me et sa solution.
RPC: Program not registered
Le portmapper tourne ?
Solution : lancez-le.
mountd tourne ?
Solution : lancez-le.
nfsd tourne ?
Solution : lancez-le.
/etc/hosts.deny
emp�che le portmapper de r�pondre ?
Solution : vous pouvez enlever la r�gle en question dans
hosts.deny
ou en ajouter une dans hosts.allow
de fa�on que le
portmapper soit autoris� � vous parler.
Solution : exportez le [Ndt : merci IBM !]
e.g.: la liste des exports dit d'exporter vers johnmad
mais le nom
de johnmad
est r�solu en johnmad.austin.ibm.com
. La permission de
monter est refus�e.
Solution : exportez vers les deux formes du nom.
Cela peut aussi arriver si le serveur a deux interfaces avec des noms diff�rents et que les exports n'en sp�cifient qu'un.
Solution : exportez les deux interfaces.
Cela peut aussi se produire si le serveur ne peut pas faire un
lookuphostbyname ou lookuphostbyaddr (ce sont des fonctions de biblioth�que)
sur le client. Assurez-vous que le client peut faire host <name>
;
host <ip_addr>
; et que les deux donnent la m�me machine.
Solution : mettez de l'ordre dans la r�solution de noms.
Solution : �teignez nfsd et relancez le.
Note : les clients qui avaient mont� le point de montage sous-jacent auront des probl�mes pour y acc�der apr�s le red�marrage.
Solution : r�glez correctement la date.
L'auteur du HOWTO recommande d'utiliser NTP pour synchroniser les
horloges. Vu qu'il y a des restrictions � l'exportation (au sens commercial
!) de NTP aux �.U., vous devez vous procurer NTP pour Debian, Redhat ou
Slakware depuis ftp://ftp.hacktic.nl/pub/replay/pub/linux
ou un
miroir.
Voici la section FAQ. Elle est en partie bas�e sur une vieille FAQ NFS �crite par Alan Cox.
Si vous avez un probl�me pour monter un syst�me de fichier, voyez si votre probl�me est d�crit dans la section ``Checklist mount''.
Cela est d� � une bogue dans quelques vieilles versions de nfsd. Elle est corrig�e � partir de nfs-server2.2beta16.
can't register with portmap: system error on send
Vous utilisez probablement un syst�me Caldera. Il y a une bogue dans les scripts rc. Contactez Caldera pour obtenir la solution.
La raison est que nfsd cache les manipulations de fichiers pour des raisons de performances (rappelons qu'il fonctionne dans l'espace utilisateur). Ainsi, apr�s une �criture le fichier peut ne pas �tre ferm� tout de suite, et tant qu'il est ouvert le noyau ne vous autorisera pas � l'ex�cuter. Les nfsd plus r�cents que le printemps 95 [Ndt : hum...] ferment les fichiers ouverts apr�s quelques secondes, les plus vieux pouvaient ne pas les rel�cher avant plusieurs jours...
Le serveur NFS Linux est par d�faut en lecture seule. Voyez les
sections ``Mountd et nfsd'' et ``Exporter des syst�mes de fichier'' dans
ce HOWTO et r�f�rez vous aux pages de manuel ``exports'' et
``nfsd''. Vous devrez modifier /etc/exports
.
ls
marche et
pourtant je ne peux pas lire ou �crire de fichiers.
Sur les anciennes versions de Linux il faut monter un serveur
NFS avec rsize=1024, wsize=1024
.
Bah alors ne le faites pas. Cela ne se produit pas avec les noyaux 2.0 et 2.2 ni, autant que je sache avec les 1.2.
Non, pas pour le moment.
Assurez-vous que vos utilisateurs sont dans 8 groupes au maximum. C'est une limitation des vieux serveurs.
Ne d�montez pas les serveurs NFS en red�marrant ou arr�tant la
machine, �a ne cr�era pas de probl�mes si vous ne le faites pas. La
commande est umount -avt nonfs
.
Normalement les �critures NFS sont synchrones (vous pouvez le d�sactiver si vous ne craignez pas de perdre des donn�es). Les noyaux d�riv�s de BSD ont tendance � ne pas savoir travailler avec des petits blocs. Ainsi quand vous �crivez 4K de donn�es depuis un client Linux dans des paquets de 1K, BSD fait ceci :
lit une page de 4K
traite 1K
�crit 4K sur le disque
lit une page de 4K
traite 1K
�crit 4K sur le disque
...
Le protocole NFS utilise les paquets UDP fragment�s. Le noyau ne
conserve qu'un nombre limit� de fragments de paquets incomplets avant de
commencer � jeter des paquets. En 2.2, ce param�tre est r�glable �
l'ex�cution au moyen du syst�me de fichier /proc :
/proc/sys/net/ipv4/ipfrag_high_tresh
et
ipfrag_low_tresh
. En 2.0 ce sont des constantes d�finies � la
compilation dans .../linux/net/ipv4/ip_fragment.c
,
IPFRAG_HIGH_TRESH
et IPFRAG_LOW_THRESH
. La signification des
ces valeurs est que quand la m�moire consomm�e par les fragments UDP non
r�assembl�s atteint ``ipfrag_high_thresh'' (en octets, 256K par d�faut
en 2.2.3 et 2.0.36) elle est ramen�e � ``ipfrag_low_tresh'' d'un coup,
en jetant des fragments. Ainsi, si la borne sup�rieure (high_tresh) est
atteinte, la performance de votre serveur diminue drastiquement.
256K est suffisant pour 30 clients. Si vous en avez 60, doublez la valeur. Et doublez aussi la borne inf�rieure (low_tresh).
knfsd annonce qu'il impl�mente NFS version 3, alors que ce n'est pas
vrai. Utilisez l'option qui permet de stopper ces annonces, ou mettez
"vers=2"
dans la liste d'options de montage de votre client.
mount: 1831-011 access denied for server:/dir
mount: 1831-008 giving up on:
server:/dir
The file access permissions do not allow the specified action.
AIX 4.2 utilise des ports r�serv�s (<1024) pour NFS. AIX 4.2.1 et 4.3 peuvent utiliser d'autres ports, et essaient de monter par NFS3, NFS/TCP et finalement NFS/UDP.
Ajouter
nfso -o nfs_use_reserved_ports=1
� la fin de rc.tcpip
la forcera � utiliser les ports r�serv�s
(truc fourni par Brian Gorka).
Bien sur, la fa�on d'exporter les syst�mes de fichiers par NFS n'est pas toujours la m�me sur toutes les plate-formes. Linux et Solaris 2 sont les plus d�viants. Cette section liste de mani�re superficielle la fa�on de proc�der sur la plupart des syst�mes. Si votre syst�me n'est pas trait� ici, cherchez dans vos pages de manuel. Les mot-cl�s sont : nfsd, system administration tool, rc scripts, boot scripts, boot sequence, /etc/exports, exportfs. J'utiliserai le m�me exemple tout au long de cette section : comment exporter /mn/eris/local vers apollon en lecture/�criture.
Ces syst�mes utilisent le format export traditionnel de Sun. Dans
/etc/exports
, �crivez :
/mn/eris/local -rw=apollon
La documentation compl�te se trouve dans la page de manuel
exports
. Apr�s avoir �dit� le fichier, lancez exportfs -av
pour
exporter les syst�mes de fichiers.
La rigueur de la syntaxe demand�e par exportfs varie. Sur certains syst�mes vous verrez que la ligne pr�c�dente peut �tre :
/mn/eris/local apollon
ou m�me quelque chose de d�g�n�r� comme :
/mn/eris/local rw=apollon
Je recommande d'utiliser la syntaxe stricte. Il se peut que la prochaine
version de exportfs
soit plus exigeante vis � vis de la syntaxe et ne
fonctionne plus.
Sun ont compl�tement r�invent� la roue quand ils ont fait Solaris 2, et
donc c'est compl�tement diff�rent des autres syst�mes. Il faut �diter le
fichier /etc/dfs/dfstab
et y placer les commandes de partage
(share) document�es dans la page de manuel share(1M)
, comme ceci :
share -o rw=apollon -d "Eris Local" /mn/eris/local
Lancez ensuite le programme shareall
pour exporter les syst�mes de
fichiers.
Au moment o� j'�cris, la version courante du noyau est 2.2.12 et utiliser NFS peut �tre assez p�nible. Ou pas. J'ignore ce qu'il en sera pour Linux 2.4.
La grosse nouveaut� dans Linux 2.2 c'est le support d'un serveur nfs dans le noyau, appel� knfsd 2.2. Ce type d'impl�mentation a des avantages, principalement la rapidit�, une machine Linux 2.2 avec knfsd est un serveur NFS respectable. Vous pouvez cependant toujours utiliser l'ancien nfsd avec Linux 2.2, et cela pr�sente quelques avantages aussi, dont la simplicit�.
Si vous utilisez un paquetage noyau source ou binaire fabriqu� par quelqu'un comme RedHat (6.0 et suivantes), SuSE (6.1 et suivantes il me semble) ou un autre int�grateur de syst�me professionnel ils auront probablement int�gr� compl�tement ``knfsd'' et vous n'avez pas de soucis � vous faire, cela marchera. Pour l'essentiel. Jusqu'� ce que vous vouliez compiler un noyau vous m�me. Si vous utilisez un noyau 2.2 standard (au moins jusqu'� 2.2.12) knfsd ne fonctionnera pas.
Pour le faire fonctionner vous m�me il vous faut le paquetage knfsd de H.J. Lu. C'est un ensemble de patchs avec les utilitaires requis pour 2.2 que Lu maintient b�n�volement. R�cup�rez le depuis votre miroir de noyau local, le site ma�tre est ftp.kernel.org:/pub/linux/devel/gcc/. Ce n'est pas destin� au grand public. Si vous trouvez que c'est trop compliqu�, n'insistez pas et attentez qu'un paquetage noyau soit disponible aupr�s de votre int�grateur (Redhat, SuSE...).
Ne m'envoyez pas de question � ce sujet, je ne peux pas vous aider, je n'ai aucun serveur bas� sur knfsd qui tourne. Si vous trouvez des erreurs ou omissions dans la documentation, �crivez-moi et je corrigerai ce HOWTO.
Toujours l� ? Ok. H.J. Lu annonce les nouvelles versions de son paquetage sur la liste de diffusion linux-kernel, o� il passe d'autres choses li�es � NFS dans Linux 2.2. Lisez-la.
Le client est presque simple. Afin que les verrous (locks) marchent
correctement il faut que statd
(du paquetage knfsd) soit compil�,
install� et lanc� depuis vos scripts de d�marrage. Statd a besoin d'un
r�pertoire appel� /var/lib/nfs
qu'il vous faudra cr�er avant de le
lancer (sans quoi il se termine imm�diatement sans message d'erreur).
Une fois que statd tourne vous pouvez utiliser le programme testlk
(dans tools/locktest
) pour tester si un verrou sur un fichier d'un
volume mont� par NFS fonctionne. �a devrait. S'il affiche No locks
available, statd ne fonctionne pas.
En fait, vous pouvez aussi vous passer des verrous (ce que je ne recommande
pas) en mettant "nolock"
dans la liste des options de montage.
Autant que je sache, c'est tout ce qu'il faut pour faire fonctionner correctement le client.
Ah, si vous avez un serveur NFS Alpha ou Sparc vous verrez que le client nfs de Linux 2.2 est vraiment de la merde. Les d�bits sont extr�mement faibles, bien pire qu'avec Linux 2.0. Bien sur on peut corriger le probl�me. Les noyaux 2.2 d'Alan Cox (un petit peu plus exp�rimentaux que ceux de Linus) incluent un patch pour am�liorer la performance du client 2.2 avec un serveur Alpha ou Sparc. Si vous voulez utiliser les noyaux d'Alan Cox, vous devriez lire la liste de diffusion linux-kernel, et si c'est le cas vous savez o� les trouver. Le site de r�f�rence est http://www.uio.no/~trondmy/src/, au cas o� vous voudriez essayer de l'appliquer � un noyau 2.2 standard. Ce patch ne sera probablement pas int�gr� dans Linux 2.4, car il demande trop de changements dans le noyau pour �tre accept� dans le cycle de d�veloppement actuel. Attendez Linux 2.5.
trondmy
propose des patchs pour utiliser NFS version 3 avec Linux, et
qui permettent aussi d'utiliser TCP comme m�canisme de transport au lieu
d'UDP. NFSv3 est tr�s bien pour des r�seaux grande distance ou avec des taux
de pertes non nuls, ou des temps de latence �lev�s.
Si vous utilisez ces patchs, il vous faut lire linux-kernel, car de sales bugs, qui mangent vos fichiers, sont parfois d�couverts. Alors soyez prudent.
Le serveur NFS de Linux 2.2 et suivants est appel� "knfsd"
. Il est
difficile � configurer. Il faudra vous d�brouiller tout seul ou utiliser ce
que SuSE, RedHat et autres fournissent dans leurs paquetages 2.2. D�sol�,
mais vous pouvez toujours utiliser l'ancien nfsd. Il est lent mais facile �
installer.
Cette section a �t� �crite par Ron Peters, rpeters@hevanet.com. Elle explique comment installer un serveur NFS en d�marrant depuis une disquette. L'objectif initial �tait de partager par NFS un c�d�rom d'une autre machine pour installer Linux sur une machine sans lecteur de c�d�rom.
Ce document a pour but d'aider ceux qui auront le m�me probl�me que moi r�cemment. J'installais un serveur Linux sur une machine sans lecteur de c�d�rom et sans moyen d'en installer un, � part peut �tre un SCSI externe. Ce genre de situations sera sans doute de plus en plus rare et ce document perdra donc de son int�r�t, mais j'aurais bien aim� l'avoir quand j'essayais d'installer ma machine.
Vu que la machine n'avait pas de lecteur de c�d�rom, j'ai pens� installer un serveur NFS pour Win95 afin de partager le lecteur de c�d�rom juste le temps d'installer ma machine et de la mettre sur le r�seau. Je n'ai trouv� que deux produits (je ne citerai pas les noms mais l'un est un freeware et l'autre avait une licence limit�e � 14 jours), l'un ne marcha pas ``cl�s en main'' et l'autre n'�tait pas capable de g�rer les conventions de nommage Linux suffisamment bien pour mener � bien l'installation.
J'ai donc d�cid� d'essayer de red�marrer ma machine Win95 sous Linux avec les disquettes boot/root et d'utiliser une disquette suppl�mentaire pour installer un serveur NFS.
Cela a �t� remarquablement simple, la proc�dure est en fait probablement plus simple que de lire cette introduction. Cependant, je pense qu'il est int�ressant de rassembler les information n�cessaires dans ce document.
J'ai utilis� les disquettes boot/root fournies dans une des distributions de Slakware (InfoMagic developpers distributions). Le noyau utilis� sur les disquettes �tait un 2.0.34, et les programmes du serveur NFS venaient d'un serveur pour 2.0.30. J'ai toujours utilis� la m�thode d'installation Slakware, non pas qu'elle soit plus facile ou meilleure ou pire, mais simplement qu'elle m'est famili�re et que je n'ai jamais pris le temps d'apprendre � en utiliser une autre.
Je ne pense pas qu'il puisse y avoir beaucoup de probl�mes li�s � la version du syst�me. Je recommanderais simplement d'utiliser un syst�me relativement r�cent, ce qui devrait �tre le cas si vous utilisez les disquettes boot/root de la distribution � installer.
D�marrez la machine qui sera serveur NFS depuis la disquette de d�marrage et assurez-vous que la carte r�seau est reconnue, de m�me que le lecteur de c�d�rom. Dans la suite je suppose que la carte r�seau en question est eth0.
Une fois que le syst�me est d�marr�, vous n'avez plus besoin des disquette boot/root, le syst�me �tant compl�tement install� en disque m�moire. Remplacez la disquette root par la disquette suppl�mentaire, et montez la :
mount /dev/fd0 /floppy
Ceci fonctionne pour une disquette avec un syst�me de fichiers
ext2. J'imagine que la disquette pourrait utiliser un syst�me de fichiers
MSDOS mais je n'ai pas essay�. Je suppose que cela serait plus simple que de
faire une image disque. Dans ce cas, il faudrait utiliser mount -t msdos
...etc
.
Montez le c�d�rom :
mount -t iso9660 /dev/hdc /cdrom
J'ai utilis� les p�riph�riques disquette et c�d�rom, on peut en utiliser d'autres selon ce que l'on veut faire. Les points de montage /floppy et /cdrom doivent exister sur l'image de la disquette root. Si ce n'est pas le cas, cr�ez-les, ou bien vous pouvez utiliser n'importe quels autres points de montage.
Il faut maintenant configurer le serveur NFS et le r�seau. Il n'y a que quelques commandes � lancer, et quelques informations qu'il vous faudra rassembler auparavant (je donne ici des valeurs d'exemple) :
IPADDR:172.16.5.100 #L'adresse du serveur temporaire.
NETMASK:255.255.255.0 #Le masque de r�seau (netmask).
BROADCAST:172.16.5.255 #L'adresse de diffusion sur le r�seau
ETHNETWORK:172.16.5.0 #L'adresse r�seau
GATEWAY:172.16.5.251 #N�cessaire seulement si vous avez une passerelle. Si c'est le cas, vous le savez. La plupart des r�seau ``� la maison'' n'en ont pas.
Les commandes pour se connecter au r�seau (utiliser les valeurs donn�es ci-dessus) :
ifconfig eth0 inet IPADDR arp netmask NETMASK broadcast BROADCAST
route add -net ETHNETWORK netmask NETMASK eth0
Celle-ci uniquement si vous avez une passerelle et que vous devrez la traverser :
route add default gw GATEWAY netmask 0.0.0.0 eth0
Si tout va bien, vous �tes maintenant sur le r�seau et devriez pouvoir faire
des ping
sur les autres machines.
Choisissez le r�pertoire � partager. Dans mon exemple, c'�tait
/cdrom/slakware
. Placez-le dans le fichier /etc/exports
:
echo "/cdrom/slakware" > /etc/exports
Allez dans /floppy/usr/bin
et lancez :
./rpc.portmap
./rpc.mountd
./rpc.nfsd
Normalement, le r�pertoire /cdrom/slakware
est maintenant
partageable. D�marrez votre machine (celle � installer) depuis les
disquettes boot/root (j'ai utilis� les m�mes qui ont servi � d�marrer le
serveur) et commencez l'installation.
Quand il faut choisir le m�dia source � utiliser, choisissez ``serveur
NFS''. Il vous demandera l'adresse IP du serveur, qui est celle que vous
avez appel� IPADDR pour le serveur. Il vous faut aussi donner le r�pertoire
� monter, qui est celui que vous avez indiqu� dans le fichier
/etc/exports
du serveur.
Le volume NFS devrait maintenant �tre mont�, surveillez l'apparition de messages d'erreur. Si tout va bien, continuez l'installation.
Je n'ai rien � dire � ce sujet pour le moment. Peut �tre si des gens utilisent cette proc�dure, on aura des choses � ajouter.
Voir si la disquette suppl�mentaire peut �tre au format DOS.
V�rifiez l'ordre dans lequel lancer les commandes rpc.* et si toutes sont n�cessaires.
Vous ne voulez pas utiliser PC-NFS, mais plut�t samba.
Samba est bien meilleur que PC-NFS, il fonctionne avec ``Windows3 for Workgroups'' et les versions suivantes de Windows. Il est plus rapide et plus sur. Utilisez plut�t samba.