|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Si vous voulez/avez besoin de le r馗up駻er et compiler vous m麥e, le site de r馭駻ence 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.
serveur et client. Si cela ne fonctionne pas, voyez le HOWTO r駸eau (NET-3) et configurez correctement le r駸eau.Avant de faire quoi que ce soit d'autre, il nous faut un serveur NFS
Si vous devez installer un serveur sur une machine non Linux vous devrez
lire les pages de manuel du syst鑪e pour trouver comment configurer le
serveur NFS et l'exportation des syst鑪es de fichiers par NFS. Ce HOWTO
syst鑪e 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)
exports qu'il
faut lire au moins une fois dans sa vie. Il y a de meilleures fa輟ns de
faire que de lister tous les hosts dans le fichier exports. Peuvent 黎re
qui peut obtenir un acc鑚 au serveur avec ce type d'autorisations group馥s.
Note : ce fichier exports n'utilise pas la m麥e syntaxe que d'autres
Unix. Ce HOWTO contient une section sur la fa輟n dont les autres Unix
exportent leurs fichiers.
Sauvez le dans /usr/sbin/exportfs par exemple, et n'oubliez pas de
lui appliquer chmod a+rx. D駸ormais, chaque fois que vous changez
votre fichier exports, lancez ensuite exportfs en root.
Maintenant, v駻ifiez 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
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.
/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鑪e 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鑪e de fichiers local, mais
Pour vous d饕arrasser du syst鑪e de fichiers, vous pouvez faire :
umount /mnt
Pour que le syst鑪e monte automatiquement un syst鑪e de fichiers NFS au
d駑arrage, 馘itez /etc/fstab de la fa輟n 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 ...
Reprenons l'exemple pr馗馘ent, votre entr馥 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馗is馥s, NFS 馗rira et lira par blocs de 4096 ou 8192 octets. Mais certaines combinaisons de noyau Linux et cartes r駸eau ne peuvent pas fonctionner avec ces valeurs, de plus, m麥e si cela marche, cela peut ne pas 黎re optimal du tout. Il nous l'acc鑚 en 馗riture sur le disque vous pouvez tester les performances en 馗riture s駲uentielle :
time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
Ceci cr馥 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駻essant. 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駑ontez (umount) et
remontez (mount) avec des valeurs plus grandes pour rsize et wsize. Il
trucs comme ls, explorez un peu pour v駻ifier que tout est bien normal. Si
la valeur de rsize/wsize est trop grande, les sympt?es sont vraiment
bizarres et pas 騅idents. Un sympt?e typique est une liste de fichiers
tailles optimales diff駻entes. SunOS et Solaris sont r駱ut駸 pour 黎re
beaucoup plus rapides avec une taille de 4096 octets.
Les noyaux Linux r馗ents (depuis 1.3) font parfois des lectures rsize de 4096 si c'est possible.
Un truc pour augmenter les performances d'馗riture de NFS est d'invalider les 馗ritures synchrones sur le serveur. Les sp馗ifications de NFS disent que les requ黎es d'馗riture de NFS ne doivent pas 黎re consid駻馥s comme d'馗ritures synchrones car l'impl駑entation du syst鑪e de fichiers ne s'y pr黎e pas, mais sur les serveurs non Linux vous pouvez augmenter les performances de cette fa輟n dans votre fichier exports :
/dir -async, access=linuxbox
retrans. Elles sont d馗rites dans la page de manuel nfs(5), en voici
un extrait (version fran軋ise) :
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.
timeo en accord
(broken into) il peut 黎re tr鑚 facile de casser le compte root du
client. Et vice versa. Il y a quelques moyens de g駻er ce probl鑪e sur
lesquels nous reviendrons.
Les documents consultatifs (advisories) du CERT sur NFS sont une connaissance de version fran軋ise) :
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
en utilisateur et de lancer le programme suid pour devenir root sur le
client. Il est aussi possible d'interdire l'ex馗ution des fichiers du
syst鑪e de fichiers NFS avec l'option noexec. Mais ceci est beaucoup
moins utile que nosuid car le syst鑪e de fichiers contiendra tr鑚
Dans ce cas, si un utilisateur du client avec l'UID 0 essaye d'acc馘er (en
lecture, 馗riture ou effacement) au syst鑪e de fichiers, le serveur remplace
l'UID par celui de l'utilisateur `nobody' du serveur. Ceci signifie que
駭um駻馥s 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駻ifie que toutes les requ黎es
Linux effectue cette v駻ification par d馭aut, sur d'autres syst鑪es
d'exploitation il faut la valider. ヌa devrait 黎re d馗rit dans les pages du
manuel de ce syst鑪e.
Autre chose. N'exportez jamais un syst鑪e de fichiers vers `localhost' ou
/etc/hosts.allow. Si votre portmapper est
/usr/sbin/portmap ex馗utez 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, 馘itons /etc/hosts.deny. Il devrait contenir la
ligne :
portmap: ALL
y 黎re autoris馥s. Disons que votre machine est 129.240.223.254 et que tout
ce qui vit sur le sous r駸eau 129.240.223.0 doit pouvoir y acc馘er (si ceci
n'est pas clair pour vous, voyez le HOWTO r駸eau). On 馗rit :
portmap: 129.240.223.0/255.255.255.0
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駸eau dans la premi鑽e colonne)
Les fichiers hosts.deny et hosts.allow sont d馗rits dans les pages
de manuel de m麥es noms.
IMPORTANT : ne rien mettre d'autre que des adresses IP
(num駻iques) dans les lignes portmap de ces fichiers. Les host name
Ceci fait, votre serveur devrait 黎re un peu plus solide. Le dernier probl鑪e
(mais oui !) est que quelqu'un casse le compte root (ou boute MS-DOS) sur une
machine de confiance et utilise ce privil鑒e pour envoyer des requ黎es
depuis un port s? en se faisant passer pour n'importe quel utilisateur. C'est une tr鑚 bonne id馥 de bloquer les ports NFS et portmap dans votre
routeur ou firewall. nfsd utilise le port 2049, que ce soit avec tcp ou
quel est le risque. Et maintenant vous savez un peu. NFS et le portmapper constituent un syst鑪e complexe et il n'est donc pas
totalement exclu que de nouvelles bogues soient d馗ouvertes, soit dans la
conception soit dans l'impl駑entation que nous utilisons. Il pourrait m麥e y
dans ce HOWTO. Si vous avez un probl鑪e en montant un syst鑪e de fichiers
NFS, consultez cette liste avant de poster votre probl鑪e sur les
niouzes. Chaque point d馗rit un type de probl鑪e et sa solution.
Le portmapper tourne ? Solution : lancez-le. mountd tourne ? Solution : lancez-le. nfsd tourne ? Solution : lancez-le. 6.4 NFS et les coupent-feu (firewalls)
RPC: Program not registered
/etc/hosts.deny emp鹹he le portmapper de r駱ondre ?johnmad est r駸olu en johnmad.austin.ibm.com. La permission de
monter est refus馥.
Solution : exportez vers les deux formes du nom.
Cela peut aussi arriver si le serveur a deux interfaces avec des noms diff駻ents et que les exports n'en sp馗ifient 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鑷ue)
sur le client. Assurez-vous que le client peut faire host <name>;
host <ip_addr>; et que les deux donnent la m麥e machine.
Solution : mettez de l'ordre dans la r駸olution de noms.
Slakware depuisftp://ftp.hacktic.nl/pub/replay/pub/linux ou un
miroir.
Voici la section FAQ. Elle est en partie bas馥 sur une vieille FAQ NFS 馗rite par Alan Cox.
Si vous avez un probl鑪e pour monter un syst鑪e de fichier, voyez si votre
Le serveur NFS Linux est par d馭aut en lecture seule. Voyez les
sections ``Mountd et nfsd'' et ``Exporter des syst鑪es de fichier'' dans
ce HOWTO et r馭駻ez vous aux pages de manuel ``exports'' et
``nfsd''. Vous devrez modifier /etc/exports.
ls marche et
pourtant je ne peux pas lire ou 馗rire 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.
umount -avt nonfs.
Normalement les 馗ritures NFS sont synchrones (vous pouvez le lit une page de 4K traite 1K 馗rit 4K sur le disque lit une page de 4K traite 1K 馗rit 4K sur le disque ...
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駑oire consomm馥 par les fragments UDP non
knfsd annonce qu'il impl駑ente 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.
AIX 4.2 utilise des ports r駸erv駸 (<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
Bien sur, la fa輟n d'exporter les syst鑪es de fichiers par NFS n'est pas toujours la m麥e sur toutes les plate-formes. Linux et Solaris 2 sont les plus d騅iants. Cette section liste de mani鑽e superficielle la fa輟n de exportfs. J'utiliserai le m麥e exemple tout au long de cette section : comment exporter /mn/eris/local vers apollon en lecture/馗riture.
Ces syst鑪es utilisent le format export traditionnel de Sun. Dans exporter les syst鑪es de fichiers.
La rigueur de la syntaxe demand馥 par exportfs varie. Sur certains syst鑪es vous verrez que la ligne pr馗馘ente peut 黎re :
/mn/eris/local apollon
/etc/dfs/dfstab et y placer les commandes de partage
(share) document馥s dans la page de manuel share(1M), comme ceci :
share -o rw=apollon -d "Eris Local" /mn/eris/local
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饕its sont extr麥ement faibles, bien pire qu'avec Linux 2.0. Bien sur on peut corriger le probl鑪e. Les noyaux 2.2 d'Alan Cox (un petit peu plus exp駻imentaux que ceux de Linus) incluent un patch pour am駘iorer 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 qui permettent aussi d'utiliser TCP comme m馗anisme de transport au lieu d'UDP. NFSv3 est tr鑚 bien pour des r駸eaux grande distance ou avec des taux de pertes non nuls, ou des temps de latence 駘ev駸.
disquette. L'objectif initial 騁ait de partager par NFS un c馘駻om d'une autre machine pour installer Linux sur une machine sans lecteur de c馘駻om.Ce document a pour but d'aider ceux qui auront le m麥e probl鑪e que moi
D駑arrez la machine qui sera serveur NFS depuis la disquette de d駑arrage et assurez-vous que la carte r駸eau est reconnue, de m麥e que le lecteur de m駑oire. Remplacez la disquette root par la disquette suppl駑entaire, et montez la :
mount /dev/fd0 /floppy
Ceci fonctionne pour une disquette avec un syst鑪e de fichiers cas, cr馥z-les, ou bien vous pouvez utiliser n'importe quels autres points de montage.
Il faut maintenant configurer le serveur NFS et le r駸eau. Il n'y a que
Les commandes pour se connecter au r駸eau (utiliser les valeurs donn馥s 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 黎es maintenant sur le r駸eau et devriez pouvoir faire
Allez dans /floppy/usr/bin et lancez :
./rpc.portmap
./rpc.mountd
./rpc.nfsd
Voir si la disquette suppl駑entaire peut 黎re au format DOS.
V駻ifiez l'ordre dans lequel lancer les commandes rpc.* et si toutes sont n馗essaires.
Vous ne voulez pas utiliser PC-NFS, mais plut? 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? samba.