Le système de fichiers réseau (NFS) est un système de fichiers réseau. Showmount: Afficher les informations sur le statut NFS. La critique favorise l'amélioration

Serveur de fichiers réseau, NFS - Il s'agit d'une norme ouverte pour fournir un système de fichier de fichiers distant à l'utilisateur. Créé sur ses systèmes de fichiers centralisés de base facilitent l'exécution quotidienne de telles tâches que sauvegarde Ou tester les virus et les sections de disque combinés sont plus faciles à entretenir que de nombreux petits et distribués.

En plus du système NFS fournit un stockage centralisé, il s'est avéré être très utile pour d'autres applications, y compris le travail avec sans disque et clients minces, divisant le réseau aux clusters, ainsi que pour un logiciel inter-plate-forme de travail conjointement.

Une meilleure compréhension du protocole lui-même et des détails de sa mise en œuvre facilitera la tâche des tâches pratiques. Cet article est consacré à NFS et se compose de deux parties logiques: décrit d'abord le protocole lui-même et les objectifs définis par son développement, puis implémentent NFS à Solaris et Unix.

Pourquoi tout a commencé ...

Le protocole NFS a été développé par Sun Microsystems et en 1989 est apparu sur Internet sous la forme du document RFC 1094 sous le nom suivant: "Spécification du protocole du système de fichiers réseau" (spécification du protocole du système de fichiers réseau, NFS). Il est intéressant de noter que la stratégie de Novell à cette époque visait à améliorer encore les services de dossiers. Jusqu'à récemment, pendant que le mouvement des codes ouverts n'a pas encore gagné de force, Sun n'a pas cherché à révéler les secrets de leur solutions de réseauCependant, même dans la société comprit l'importance d'assurer une interaction avec d'autres systèmes.

Le document RFC 1094 contenait deux spécifications initiales. Au moment de sa publication, Sun a développé la troisième version suivante de la spécification, figurant dans RFC 1813 "Spécification du protocole NFS, version 3" (spécification de protocole de la version 3 NFS). La version 4 de ce protocole est définie dans RFC 3010 "Spécification du protocole NFS, version 4" (Protocole NFS Version 4).

NFS est largement utilisé sur tous les types de nœuds UNIX, dans les réseaux Microsoft et Novell, ainsi que dans de telles solutions IBM telles que AS400 et OS / 390. Être inconnu en dehors du réseau "Royaume", NFS est peut-être le réseau indépendant de la plate-forme le plus courant système de fichiers.

Le progéniteur était Unix

Bien que NFS soit un système indépendant de la plate-forme, son progéniture est UNIX. En d'autres termes, la hiérarchie de l'architecture et les méthodes d'accès aux fichiers, y compris la structure du système de fichiers, les moyens d'identifier les utilisateurs et les groupes et les opérations avec des fichiers - tout cela est très similaire au système de fichiers UNIX. Par exemple, le système de fichiers NFS, étant par la structure du système de fichiers UNIX identique, est monté directement. Lorsque vous travaillez avec NFS sur d'autres systèmes d'exploitation, les paramètres d'identification de l'utilisateur et les droits d'accès aux fichiers sont soumis à la conversion (cartographie).

Nfs.

Le système NFS est conçu pour une utilisation dans l'architecture client-serveur. Le client reçoit l'accès au système de fichiers exporté par le serveur NFS, via le point de montage sur le client. Cet accès est généralement transparent à l'application client.

Contrairement à de nombreux systèmes client-serveur, NFS pour les informations de partage utilise des procédures distantes (appels de procédure à distance, RPC). Habituellement, le client établit une connexion avec un port pré-connu puis, conformément aux caractéristiques du protocole, envoie une demande d'exécution d'une certaine action. En cas d'appel des procédures distantes, le client crée un appel à la procédure, puis l'envoie à l'exécution du serveur. Une description détaillée de NFS sera présentée ci-dessous.

À titre d'exemple, supposons qu'un certain client monté sur un répertoire USR2 sur un système de fichiers racine local:

/ root / usr2 / -\u003e Remote: / racine / usr /

Si l'application client nécessite les ressources de ce répertoire, elle envoie simplement une demande au système d'exploitation et dans le nom du fichier, et il fournit un accès via le client NFS. Par exemple, envisagez une simple commande de CD UNIX, qui "ne sait rien" sur les protocoles de réseau. Équipe

CD / racine / usr2 /

publié par un répertoire de travail sur un système de fichiers distant, "pas même deviner" (il n'y a pas non plus besoin de le faire) que le système de fichiers est éloigné.

Après avoir reçu la demande, le serveur NFS vérifiera la présence de cet utilisateur Les droits d'exécution de l'action demandée et dans le cas d'une réponse positive la mettre en œuvre.

Se familiariser plus près

Du point de vue du client, le processus de montage local Un système de fichiers distant avec des outils NFS comprend plusieurs étapes. Comme déjà mentionné, le client NFS appellera une procédure distante pour l'exécuter sur le serveur. Notez que dans le client UNIX représente un programme (Mont Mount), tandis que le serveur est en réalité implémenté comme plusieurs programmes avec le jeu minimal suivant: Service de conversion de port (Mount Dakon) et NFS Server.

Au début, la commande Mount Client interagit avec le service de conversion de service de port de serveur qui attend les demandes via le port 111. La plupart des implémentations de la commande Mount Client prend en charge plusieurs versions de NFS, ce qui augmente la probabilité de trouver un commun à la version client et serveur de le protocole. La recherche est effectuée, en commençant par la version la plus ancienne, donc lorsque le total sera trouvé, il deviendra automatiquement le plus nouvelle version Du client pris en charge par le client.

(Le matériau décrit est axé sur la troisième version de NFS, car elle est la plus courante pour le moment. La quatrième version n'est pas prise en charge par la plupart des implémentations.)

Le service de conversion de port de serveur répond aux demandes conformément au protocole pris en charge et au port sur lequel fonctionne le démon de mont. Le programme Client Mount Client établit d'abord une connexion au démon de montage du serveur, puis la transmet à l'aide du montage de la commande RPC. Si un cette procédure Fabriqué avec succès, l'application client se connecte au serveur NFS (Port 2049) et à l'aide de l'une des 20 procédures distantes définies dans RFC 1813 et est indiquée dans le tableau 1, elle donne accès à un système de fichiers distant.

La signification de la plupart des équipes est intuitive et ne cause aucune difficulté administrateurs système. La liste suivante obtenue à l'aide de TCDump illustre la commande de lecture générée par la commande UNIX CAT pour lire le fichier avec le nom de test de nom:

10: 30: 16.012010 ETH0\u003e 192.168.1.254. 3476097947\u003e 192.168.1.252.2049: 144 LOCKUP FH 32.0 / 224145 "Fichier de test" 10: 30: 16.012010 ETH0\u003e 192.168.1.254. 3476097947\u003e 192.168.1.252.2049: 144 LOCKUP FH 32.0 / 224145 "Test-file" 10: 30: 16.012729 Eth0 192.168.1.254.3476097947: Répondre OK 128 LOCKUP FH 32.0 / 224307 (DF) 10:30: 16.012729 Eth0 192.168. 1.254.3476097947: Répondre OK 128 LOCKUP FH 32.0 / 224307 (DF) 10: 30: 16.013124 ETH0\u003e 192.168.1.254. 3492875163\u003e 192.168.1.252.2049: 140 Lire FH 32.0 / 224307 4096 octets @ 0 10: 30: 16.013124 ETH0\u003e 192.168.1.254. 3492875163\u003e 192.168.1.252.2049: 140 Lire FH 32.0 / 224307 4096 Bytes @ 0 10: 30: 16.013650 Eth0 192.168.1.254.3492875163: Répondre OK 108 Lire 10: 30: 16.013650 ETH0 192.168.1.254.3492875163: Répondre OK 108 Lire (DF)

NFS est traditionnellement mis en œuvre sur la base de UDP. Cependant, certaines versions NFS prennent en charge TCP (la prise en charge du TCP est définie dans la spécification du protocole). Le principal avantage de TCP est un mécanisme de reconstruction plus efficace dans des réseaux de travail peu fiables. (Dans le cas de UDP, si une erreur est survenue, le message RPC complet composé de plusieurs paquets UDP est renvoyé à nouveau. S'il y a un TCP, seul un fragment gâté est réservé.)

Accès à NFS

Dans les implémentations NFS, quatre manières de fournir des droits d'accès sont généralement prises en charge: à l'aide des attributs d'utilisateur / fichier, au niveau des ressources partagées, au niveau du nœud principal, ainsi que sous la forme d'une combinaison d'autres méthodes d'accès.

La première méthode est basée sur le système de droits d'accès intégrés à UNIX pour un utilisateur ou un groupe individuel. Pour simplifier le service, l'identification de l'utilisateur et les groupes doivent être uniformes pour tous les clients et serveurs NFS. La protection doit être soigneusement réfléchie: dans NFS, il est possible de fournir un tel accès aux fichiers non planifiés lors de la création.

L'accès au niveau des ressources partagées vous permet de limiter les droits, de ne permettre que certaines actions, quelle que soit l'affiliation de fichiers ou les privilèges UNIX. Par exemple, le système de fichiers NFS ne peut être limité qu'à la lecture. La plupart des implémentations NFS permettent de restreindre davantage l'accès au niveau des ressources partagées avec des utilisateurs et / ou des groupes spécifiques. Par exemple, un groupe de département du personnel est autorisé à afficher des informations et plus.

L'accès au niveau du nœud principal vous permet de monter le système de fichiers uniquement sur des nœuds spécifiques, qui, d'une manière générale, c'est une bonne idée, car les systèmes de fichiers peuvent facilement être créés sur tous les nœuds qui supportent NFS.

L'accès combiné combine simplement les types décrits ci-dessus (par exemple, l'accès au niveau des ressources partagées avec accès fourni par un utilisateur spécifique) ou permet aux utilisateurs de travailler avec NFS uniquement à partir d'un nœud spécifique.

NFS dans le style de "pingouin"

Le matériau décrit à base de Linux est basé sur le système Red Hat 6.2 avec une version 2.4.9 du noyau, qui est livré avec la version 0.1.6 Utils NFS-Utils. Il existe également de nouvelles versions: au moment de la rédaction de cet article dernière mise à jour Le paquet NFS-UTILS avait un numéro 0.3.1. Il peut être téléchargé à :.

Le package NFS-UTILS contient les fichiers exécutables suivants: ExportFs, Lockd, Mountd, NFSD, NFSSTAT, NHFSSTONE, RQUOTAD, SHOWMOUNT et STATTD.

Malheureusement, la prise en charge parfois du NFS provoque la confusion des administrateurs Linux, car la présence d'une fonctionnalité particulière dépend directement des versions des versions à la fois du noyau et du package NCS-Utils. Heureusement, à l'heure actuelle, la situation dans ce domaine s'améliore: les derniers kits de distribution incluent la version la plus récente et l'autre. Pour les numéros précédents de la section 2.4, le document NFS-HOWTO fournit une liste complète des fonctionnalités du système disponibles pour chaque combinaison d'emballage de noyau et de NFS-Utils. Les développeurs prennent en charge la compatibilité rédaction du paquet avec des versions antérieures, ce qui permet de veiller à assurer la sécurité et à éliminer les erreurs de programme.

Le support NFS doit être initié pendant la compilation du noyau. Si nécessaire, le noyau doit ajouter et la capacité de travailler avec NFS version 3.

Pour les distributions prenant en charge LinuxConf, il est facile de configurer les services NFS pour les clients et les serveurs. Cependant, un moyen rapide d'installer NFS à l'aide de LinuxConf ne fournit pas d'informations sur les fichiers créés ou modifiés, ce qui est très important pour connaître l'administrateur de comprendre la situation en cas de défaillance du système. L'architecture NFS de Linux a une connexion faible avec la version BSD, les fichiers et les programmes de support nécessaires sont donc faciles à trouver des administrateurs travaillant avec BSD, Sun OS 2.5 ou version antérieure de NFS.

Fichier / etc / exportations, comme dans les versions BSD antérieures, identifie les systèmes de fichiers auxquels l'accès aux clients NFS est autorisé. En outre, il contient un certain nombre d'opportunités supplémentaires liées aux problèmes de gestion et de sécurité, fournissant un administrateur à un agent de réglage fin. il fichier textecomposé de disques, de lignes vides ou commentées (les commentaires commencent par un symbole #).

Supposons que nous voulions fournir aux clients un accès en lecture seule au répertoire / maison sur le noeud léger. Ceci dans / etc / exportations correspondra à l'entrée suivante:

/ Home (ro)

Ici, nous devons informer le système que nous allons faire des catalogues accessibles à l'aide du démon RPC.Mountd Montaminination:

# ExportFS -R Exportsfs: In / Home (RO) Ne spécifie pas le nom du nœud, entrez * (ro) pour éviter tout avertissement

Lors du démarrage, la commande Exportsfs affiche un avertissement / etc / exportations ne limite pas l'accès à un nœud distinct et crée la saisie appropriée / var / lib / nfs / etab de / etc / exportations, qui peuvent être considérées quelles ressources peuvent être affichées. Soyez visualisé à l'aide de chat:

# chat / var / lib / nfs / etab / home (ro, async, wdelay, masquer, sécurisé, root_ squash, no_all_squash, sous -tree_check, Secure_Locks, mappage \u003d identité, anonuid \u003d -2, anonyd \u003d -2)

D'autres paramètres répertoriés sous forme de liste dans l'ETAB incluent les valeurs par défaut utilisées par NFS. Les détails seront décrits ci-dessous. Pour donner accès à l'annuaire / Accueil, vous devez démarrer les services NFS appropriés:

# Portmap # RPC.Mountd # RPC.NFSD # RPC.StatD # RPC.RQUOD

À tout moment après le lancement d'un démon de Montieft (RPC.Mountd), continuez fichiers séparésVous pouvez afficher, afficher le contenu du fichier / proc / fs / nfs / exportations:

# CAT / PROC / FS / NFS / Exportations # Version 1.0 # CLIENT PATH (Flags) # IPS / HOME 192.168.1.252 (ro, root_squash, async, wdelay) # 192.168.1.252 # #

La même chose peut être visualisée et utiliser la commande showmount avec le paramètre -E:

# Liste d'exportation Showmount -E pour LEFTY: / home (tout le monde) #

En regardant un peu d'avant, je dirai que la commande showmount peut également être utilisée pour définir tous les systèmes de fichiers montés ou, autrement dit, pour savoir quels nœuds sont des clients NFS pour la commande showmount. La commande showmount -a affichera tous les points de montage du client:

# Showmount -a tous les points de montage sur LEFTY: 192.168.1.252:/Home #

Comme mentionné ci-dessus, la plupart des implémentations NFS prennent en charge diverses versions de ce protocole. La mise en œuvre de Linux vous permet de limiter la liste des versions NFS en spécifiant la clé-n pour le démon de montage. Par exemple, pour lancer la troisième version NFS, et seulement elle, entrez la commande suivante:

# RPC.MOUNTD -N 1 -N 2

Les utilisateurs de flûtes peuvent sembler gênants que dans le Daemon NFS (RPC.NFSD) de Linux (RPC.NFSD) de versions 1 et 2, bien qu'il atteigne l'effet souhaité de refuser de supporter le protocole approprié. Espérons que les développeurs des versions suivantes apporteront les corrections nécessaires et seront en mesure d'obtenir une consistance accrue des composants du package par rapport à diverses versions du protocole.

"Popping avec des pingouins"

Accès au système de fichiers NFS extrêmement configuré de Lfty configuré sur base Linuxdépend du système d'exploitation du client. Le style d'installation de la plupart des systèmes d'exploitation de la famille UNIX coïncide avec le style des systèmes source Sun Sun et BSD, ou un nouveau Solaris. Étant donné que cet article est consacré aux systèmes, Linux et Solaris, envisagez la configuration du client Solaris 2.6 du point de vue de l'établissement d'une connexion avec la version Linux de la NFS décrite par nous ci-dessus.

Grâce aux propriétés héritées par Solaris 2.6, il est facile de configurer pour travailler comme client NFS. Cela nécessite une seule commande:

# Mont -F NFS 192.168.1.254:/Home / TMP / TMP2

Supposons que la commande de montage précédent ait réussi, la commande de montage sans paramètres sortira les éléments suivants:

# Mont / ON / DSK / C0T0D0SS0 Lire / Ecrire / Setuid / GrandFiles sur le Lun Sep 3 10:17:56 PM 2001 ... / TMP / TMP2 Le 192.168.1.254:/Home Lire / écrire / Remote sur le lunaire 3 23 : 19: 25 2001

Analysez la sortie TCPDump reçue sur le nœud LEFTY, après l'entrée de l'utilisateur dans la commande LS / TMP / TMP2 sur le nœud Sunny:

# TCPDump Host Lefty and Host Sunny -S512 06: 07: 43.490583 06: 07: 43.490583\u003e Lefty.mcwrite.n.nfs: 128 getattr fh inconnu / 1 (DF) 06: 07: 43.490678 Lefty.mcwrite.n.nfs\u003e Sunny. 2191983953: Répondre OK 112 getattr Dir 40755 IDS 0/0 SZ 0x000001000 (DF) 06: 07: 43.491397 Sunny.2191983954\u003e Lefty.mcwrite.n.nfs: 132 Accès FH Inconnu / 10001 (DF) 06: 07: 43.491463 Lefty. McWe.n.nfs\u003e Sunny.2191983954: Répondre OK 120 Accès C0001 (DF) 06: 07: 43.492296 Sunny.2191983955\u003e Lefty.mcwrite.n.nfs: 152 ReadDirPlus FH 0.1 / 16777984 1048 BYTES @ 0X000000000 (DF) 06: 07: 07: 43.492417 Lefty.mcwrite.n.nfs\u003e Sunny.2191983955: Répondre OK 1000 ReadDirPlus (DF)

Nous voyons que le nœud ensoleillé demande un descripteur de fichier (FH) pour LS, auquel le nœud LEFTY en réponse envoie OK et renvoie la structure de répertoire. Ensuite, Sunny vérifie la permission d'accéder au contenu du répertoire (132 accès FH) et reçoit une réponse à la résolution de Lefty. Après cela, le nœud ensoleillé utilisant la procédure ReadDirPlus, lit le contenu complet du répertoire. Les appels de procédures à distance sont décrits dans le document RFC 1813 et nous sommes donnés au début de cet article.

Bien que la séquence de commandes pour accéder aux systèmes de fichiers distants soit très simple, un certain nombre de circonstances peuvent entraîner un système de montage incorrect. Avant de monter le répertoire, le point de montage doit déjà exister, sinon elle doit être créée à l'aide de la commande MKDIR. Habituellement, la seule cause d'erreurs du côté client est l'absence d'un catalogue local pour le montage. La plupart des problèmes liés à NFS sont obligés à leur incohérence d'origine entre le client et le serveur ou la configuration du serveur incorrect.

Le moyen le plus simple d'éliminer les problèmes sur le serveur à partir du nœud sur lequel fonctionne le serveur. Cependant, lorsque quelqu'un d'autre est engagé dans l'administration du serveur, il n'est pas toujours possible. Voie rapide Assurez-vous que les services de serveur concernés sont correctement configurés pour utiliser la commande RPCInfo avec le paramètre -P. Depuis le nœud Sunny Solaris, vous pouvez déterminer quels processus RPC sont enregistrés sur le nœud Linux:

# RPCInfo -P 192.168.1.254 Programme Vers Proto Port Service 100000 2 TCP 111 RPCBind 100000 2 UDP 111 RPCBind 100024 1 UDP 692 Statut 100024 1 TCP 694 Statut 100005 3 UDP 1024 Mountd / 100005 3 TCP 1024 2 UDP 2049 NFS 100003 3 UDP 2049 NFS 100021 1 UDP 1026 NLOCLGR 100021 3 UDP 1026 NLOCMGR 100021 4 UDP 1026 NLOCMGR #

Notez qu'il fournit également des informations sur les versions qu'il est suffisamment utile lorsque le système nécessite un support pour divers protocoles NFS. Si un service ne fonctionne pas sur le serveur, cette situation doit être corrigée. En cas de montage infructueux, la commande RPCInfo -P citée ci-dessous découvrira que le service MountD sur le serveur ne fonctionne pas:

# RPCInfo -P 192.168.1.254 Programme Vers Proto Port Service 100000 2 TCP 111 RPCBind ... ... 100021 4 UDP 1026 NLOCKMGR #

La commande RPCInfo est très utile pour clarifier si un ou plusieurs processus distants sont actifs. Le paramètre -p est le plus important des touches. Pour vous familiariser avec toutes les fonctionnalités RPCInfo, reportez-vous à la page de référence de l'homme.

La commande NFSSTAT est un autre outil utile. Avec cela, vous pouvez savoir si vous adressez des clients au système de fichiers exporté, ainsi que des informations statistiques de sortie conformément à la version du protocole.

Enfin, un autre outil assez utile pour déterminer les causes des défaillances du système est TCPDump:

# TCPDump Host Lefty and Host Sunny -S512 TCPDump: Écouter sur Eth0 06: 29: 51.773646 Sunny.2191984020\u003e Lefty.mcwrite.n.nfs: 140 lookup fh inconnu / 1 "Test.c" (DF) 06: 29: 51.773819 gauche.mcwrite.n.nfs\u003e Sunny.2191984020: Répondre OK 116 Erreur de recherche: Aucun fichier ou répertoire de ce type (DF) 06: 29: 51.774593 Sunny.2191984021\u003e Lefty.mcwrite.n.nfs: 128 getattr fh inconnu / 1 ( DF) 06: 29: 51.774670 Lefty.mcwrite.n.nfs\u003e Sunny.2191984021: Répondre OK 112 Getattr Dir 40755 IDS 0/0 SZ 0x000001000 (DF) 06: 29: 51.775289 Sunny.2191984022\u003e Lefty.mcwrite.n.nfs : 140 LOCKUP FH UNKNOWN / 1 "TEST.C" (DF) 06: 29: 51.775357 LEFTY.MCWRITE.N.NFS\u003e Sunny.2191984022: Répondre OK 116 Erreur de recherche: Aucun fichier ou répertoire (DF) 06:29: 51.776029 Sunny.2191984023\u003e Lefty.mcwrite.n.nfs: 184 Créer FH Unknown / 1 "Test.c" (DF) 06: 29: 51.776169 Lefty.mcwrite.n.nfs\u003e Sunny.2191984023: Répondre ok 120 Créer une erreur: Autorisation refusée (DF)

La liste ci-dessus obtenue après avoir exécuté l'instruction tactile test.c reflète la séquence d'actions suivante: la commande tactile tente d'accéder au fichier nommé test.c, puis il recherche le répertoire avec le même nom et après les tentatives infructueuses, essayez. Pour créer un fichier test.c, qui ne conduit pas non plus à la réussite.

Si le système de fichiers est monté, la plupart des erreurs typiques sont associées aux droits d'accès UNIX conventionnels. Utiliser UID ou NIS + au SUN aide à éviter les droits d'accès mondiaux à tous les systèmes de fichiers. Certains administrateurs pratiquent des annuaires «ouverts», lorsque les droits d'accès à leur lecture sont donnés au «monde entier». Cependant, cela devrait être évité pour des raisons de sécurité. Même enfiler le problème de la protection, il faut toujours reconnaître cette approche par la pratique vicieuse, car les utilisateurs créent rarement des données dans l'intention de les rendre accessibles à tout lire.

Les appels d'un utilisateur privilégié (racine) aux systèmes de fichiers NFS montés sont interprétés dans une spéciale. Pour éviter la fourniture d'un accès illimité à un utilisateur privilégié, les demandes sont interprétées comme si elles proviennent de l'utilisateur personne (personne). Ce mécanisme efficace limite l'accès d'un utilisateur privilégié est mondialement accessible aux fichiers en lecture et activés.

Server NFS, version Solaris

Configuration de Solaris Pour travailler en tant que serveur NFS aussi simple que dans le cas de Linux. Cependant, les commandes et l'emplacement des fichiers sont quelque peu différents. Lorsque le démarrage Solaris démarre pour atteindre le niveau de téléchargement 3 (niveau de course 3), les services NFS sont automatiquement lancés et tous les systèmes de fichiers sont exportés. Pour démarrer ces processus, entrez manuellement la commande:

# / Usr / lib / nfs / montd

Pour lancer le serveur de démon de montage et de NFS, entrez:

# / Usr / lib / nfs / nfsd

À partir de la version 2.6 à Solaris, le fichier d'exportation n'est plus utilisé pour spécifier des systèmes de fichiers exportés. Maintenant, les fichiers sont exportés à l'aide de la commande Share. Supposons que nous voulions permettre à des nœuds distants de monter / exporter / à la maison. Nous introduisons la commande suivante à ceci:

Share -f nfs / exportation / maison

Activités de sécurité

Sécurité à Linux

Certains services système NFS sur base de Linux Avoir un mécanisme supplémentaire pour limiter l'accès via des listes de contrôle ou des tables. Au niveau interne, ce mécanisme est mis en œuvre à l'aide de la bibliothèque TCP_WRApper, qui utilise deux fichiers pour former les listes de contrôle d'accès: /etc/hosts.allowond et / etc / hosts / nie. Un examen complet des règles de travail avec TCP_Wrapper va au-delà du cadre de cet article, le principe principal est le suivant: La cartographie est d'abord faite avec etc / host.allow, puis avec / etc / hôte. Refuser. Si la règle n'est pas trouvée, le service système demandé n'est pas soumis. Pour contourner les dernières exigences et fournir un niveau de sécurité très élevé, à la fin de /etc/hosts.Deny, vous pouvez ajouter l'entrée suivante:

Tout: tous.

Après cela, vous pouvez utiliser / etc / host.alland à définir un ou un autre mode de fonctionnement. Par exemple, fichier / etc / hosts. Autoriser, que j'ai utilisé lors de l'écriture de cet article contenait les lignes suivantes:

Lockd: 192.168.1.0/255.255.255.0 Mountd: 192.168.1.0/255.255.255.0 Portmap: 192.168.1.0/255.255.255.0 RQUOTAD: 192.168.1.0/255.255.255.0 Statd: 192.168.1.0/255.255.255.0

Cela résout un certain type d'accès aux nœuds avant que le niveau d'application soit fourni. Sous Linux, l'accès au niveau de l'application contrôle le fichier / etc / exports. Il consiste en enregistrements dans le format suivant:

Catalogue exporté (espace) Node | Réseau (options)

Le "catalogue exporté" est un répertoire, la demande auquel le démon NFSD est autorisé. "Node | Network" est un nœud ou un réseau qui ont accès au système de fichiers exporté et les «options» définissent les limitations que le démon NFSD impose à l'utilisation de cette ressource partagée - lecture seule lecture ou conversion de l'utilisateur de l'utilisateur (cartographie de l'utilisateur de l'utilisateur ).

Dans l'exemple suivant, l'ensemble du domaine McWrite.net est fourni en mode lecture seule à /home/mcwrite.net:

/Home/mcwrite.net * .mcwrite.net (ro)

Vous trouverez d'autres exemples sur la page de référence des exportations de l'homme.

Sécurité NFS à Solaris

À Solaris, les possibilités d'accès à NFS sont similaires à la Linux, cependant, dans ce cas, les restrictions sont spécifiées à l'aide de certains paramètres de la commande Share avec -O. L'exemple suivant montre comment permettre le montage en lecture seule /export/mcwrite.net sur n'importe quel noeud du domaine McWrite.net:

#Share -f nfs -o ro \u003d .mcwrite.net / export / mcwrite.net

La page de référence de l'homme pour Share_NFS décrit en détail la fourniture d'accès à l'aide des listes de contrôle à Solaris.

Ressources Internet

NFS et RPC n'ont pas coûté sans «trous». De manière générale, NFS ne doit pas être utilisé lors de votre travail sur Internet. Vous ne pouvez pas faire des "trous" dans des pare-feu, en fournissant un accès via NFS. Il est nécessaire de surveiller attentivement tous les paiements émergents pour RPC et NFS, quelles de nombreuses sources d'informations de sécurité peuvent aider. Deux sources les plus populaires - Bugtraq et Cert:

Le premier peut être consulté régulièrement à la recherche des informations nécessaires ou tirer parti de l'abonnement au bulletin périodique. La seconde dispose peut ne pas être aussi rapide que d'autres informations, mais dans une sensationnelle suffisamment complète et sans nuance de sensationnalité, caractéristique de certains sites de sécurité de l'information.

"Et j'ai déjà une idée du" système de fichiers réseau ", de ses capacités et de degré de protection. Cependant, dans l'article spécifié, tout a été compris principalement du point de vue du client ... mais comment être si vous vouliez faire votre propre serveur NFS? (Remarque: "Regarder" ne signifie pas "pause", ce qui signifie "installer et configurer").

Eh bien, et si vous avez un tel désir, vous avez, puis la première question que vous devez vous poser: "Et quoi pour la poutre de chèvre?". Pour mettre un serveur NFS à la maison
Pretty Signitait - personne n'appréciera, mais si vous avez eu la chance d'administrer au bureau de "personnes en noir", ou dans un "réseau domestique" neufs - alors c'est une autre chose ...

Démarrez le serveur lui-même est assez simple, si vous lisez l'article précédent, il sera parfaitement traité. Donc, vous aurez besoin des démons suivants:

  • nFSD - Protocole de service direct
    Nfs;
  • mount - Maintenance des opérations de montage;
  • rpc.portmap - ports RPC; Besoin comme des requêtes sur le serveur NFS sont transmises en paquets.
    RPC;

Comment faire? Très simple - aller au fichier "/etc/rc.d/rc.inet2" et réduisez les lignes correspondantes. Tout peut être supposé que le lancement principal est effectué, il sera un peu plus difficile de tout configurer ...
La première chose à résoudre est qui et quels droits ont à propos de cette information ou de cette information. Ceci est configuré à l'aide du fichier "/ etc / exports". Les autorisations «lisent» et «lire et écrire». Comment il est configuré, décrit dans "Fondations
Nfs.

La seconde est bien sûr la charge sur le serveur, c'est-à-dire Le nombre d'utilisateurs actifs et leurs demandes exemplaires. Les requêtes sur le serveur NFS sont généralement divisées en deux types: premièrement, lorsque le client fonctionne avec des attributs, le second - lorsque le client demande directement aux données. La requête du premier type est de rechercher un fichier, de lire une liste d'autorisations, etc., bien sûr, vous comprenez qu'ils chargent faiblement le réseau. Les demandes du deuxième type sont la transmission et la réception du client directement au contenu des fichiers; Et c'est ici que la question se pose: "Quoi et à quelle fréquence sera-t-il transmis?" Ceci est particulièrement pertinent si vous avez un réseau de 10 Mbps (bien, simplement parlez - le réseau russe standard). Si vous savez, 10 Mbps est un peu plus de 1 Mo par seconde; Naturellement, si les fichiers des dizaines de mégaoctets sont constamment transmis, le réseau est simplement en train de mourir. Si votre situation est précisément, vous devrez installer la mise en cache de données sur la machine cliente (biod Daemon). Ensuite, une fois en nécessitant un fichier et en référant à nouveau à nouveau, le client ne le "téléchargera pas" à nouveau sur le serveur et prend du cache; Dans ce cas, il sera vérifié régulièrement si le fichier a changé sur le serveur, si le fait de la modification est détecté, le fichier dans le cache sera remplacé par la "version nouvelle"
(Comme vous comprenez, le chèque "si le fichier a changé" est une demande "sur les attributs", qui est souvent des centaines de fois moins que le fichier lui-même).

Eh bien, dans: NFS-Server Nous avons lancé, les autorisations d'accès ont été déterminées, avec la charge traitée ... maintenant il reste à marquer la vis avec les informations nécessaires et utilisez
Capacités NFS sur une bobine complète ...

Au lieu de l'emprisonnement:

Si vous avez un problème d'organisation d'échange de données dans le réseau avant de vous, je ne pense pas que le NFS soit NFS dans trois têtes au-dessus de la tête supérieure à celle
FTP et la tête au-dessus des fenêtres "balles" et dans le réglage n'est pas si complexe ...

L'essence du problème: À une époque, Samsung a commencé à produire des téléviseurs prenant en charge la technologie DLNA développée par les principaux fabricants d'appareils ménagers basés sur le principe "Digital Home". Cette technologie a permis d'intégrer les téléviseurs à local réseau domestiquequi donnait la possibilité d'échanger du contenu multimédia entre la télévision et l'ordinateur, et en particulier, voir sur les films de télévision stockés sur l'ordinateur par réseau local Ou via wifi. Toutefois, la solution multimédia proposée par Samsung à mettre en œuvre cette technologie, de le mettre légèrement, laisse beaucoup à désirer. Ainsi, les films visionnés sur le réseau dans le lecteur multimédia intégré au téléviseur ne sont pas rembobinés dans la plupart des cas. Aussi tout en regardant des films sur le réseau, contrairement à regarder des films d'un lecteur flash ou portable disque durConnecté au téléviseur via un port USB n'est pas pris en charge par la fonction de lecture continue (bouton bleu sur la télécommande). Enfin, le besoin lui-même est de courir sur le mantre-cache Samsung PC partager sur l'ordinateur et corrigé après chaque suppression ou ajout de fichiers au disque, anniversaire informatique.

Non seulement éliminer problèmes existants Avec regarder des films à la télévision sur le réseau local, mais également pour augmenter le taux de transfert de données (qui peut servir de facteur important lors de la visualisation de grands films HD) nous aidera à activer le protocole réseau NFS (système de fichiers réseau). Après avoir produit l'installation et la configuration nécessaires du serveur NFS, notre ordinateur sera perçu par le téléviseur comme si nous avons connecté le disque dur portable au téléviseur via le port USB (la seule différence ne sera que dans le taux de change de données, lequel est déterminé par la largeur de bande maximale de votre réseau local ou une connexion WiFi).

Nfs est protocole réseau, organisé par le principe de «client serveur». Dans le rôle du serveur, nous aurons un ordinateur, en tant que client - TV. Activation de la prise en charge de NFS au téléviseur Nous avons déjà examiné dans la section précédente lors de la configuration et de l'installation d'applications Samygo Auto. Si vous vous en souvenez, dans les paramètres SamyGo Auto Configurator, nous avons installé la case en regard de la section NFS et également prescrit l'adresse IP du serveur NFS (192.168.xxx.xxx), c'est-à-dire l'adresse de notre ordinateur:
Dans cette section, nous examinerons l'installation et la configuration du serveur NFS à notre ordinateur. Sur Internet, de nombreux programmes d'installation et de configuration sont différents pour le serveur NFS. Nous allons utiliser l'application hanewin NFS Server (Il est conditionnellement gratuit et après une certaine période, cela nécessite l'enregistrement du numéro de série, mais comme vous le comprenez, il y a toujours des artisans capables de résoudre ce problème sur Internet). Donc, procédez:

Remarque: Parfois, l'antivirus intégré de pare-feu Windows ou de pare-feu peut bloquer l'opération du serveur NFS. Ce qui n'arriverait pas, dans Windows Firewall (ou si vous avez un autre pare-feu, il est nécessaire d'autoriser un accès réseau à deux applications: NFSD.EXE et PMAPD.EXE (ils se trouvent dans le dossier d'installation du serveur C: \\ Program Files \\ NFSD ).


Enfin, nous allons allumer la télévision et nous assurerons que notre serveur NFS fonctionne. Dans la section précédente, lorsque nous avons installé le programme Auto SamyGo au téléviseur, nous avons indiqué le paramètre Autorun. Par conséquent, lorsque le téléviseur est activé, il doit détecter automatiquement notre NFS (cela ne se produit pas immédiatement, mais environ 20 secondes après l'activation du téléviseur). Ainsi, allumez la télévision, puis allez sur le lecteur multimédia et nous y voyons un nouveau périphérique - NFS Server.

Si vous faites attention, alors en face de NFS est une icône de connexion USB. C'est ce que nous avons déjà parlé, votre téléviseur perçoit maintenant l'ordinateur en tant que disque dur ou clé USB. Vous pouvez aller à la section cinéma et profiter de films sur le réseau. Lancez Samsung PC Partager Mangeger sur votre ordinateur que vous n'aurez plus besoin. Ajoutez simplement un film au dossier avec des films sur l'ordinateur et il «chargez-vous automatiquement» dans le joueur de cuivre TV.

Dans la section suivante, nous vous dirons comment enregistrer des transferts de la télévision au lecteur flash USB ou, car nous avons maintenant NFS - puis dans le dossier avec les films sur l'ordinateur.


Avant de continuer à lire ce document, vous devrez effectuer avec succès l'opération Telnet entre les machines que vous utiliserez en tant que serveur et client. Si quelque chose ne fonctionne pas, vous devez lire le HOWTO NET-3 et configurer correctement le fonctionnement du réseau.

Premier pas

Avant de pouvoir faire quelque chose, nous devons configurer le serveur NFS. Si vous faites partie de la faculté ou du réseau universitaire, vous disposez probablement de plusieurs serveurs configurés NFS. Bien sûr, s'ils vous permettent d'y accéder et si vous lisez ce document pour accéder à l'un d'entre eux, vous ne pouvez pas lire cette section et vous pouvez simplement la sauter à la section Installation du client NFS.

Si vous devez configurer une machine non linux en tant que serveur, vous devez lire le manuel pour le système souhaitéPour déterminer comment activer le serveur NFS et exporter le système de fichiers via NFS. Une description de la façon de le faire sur différentes plates-formes Enlevé dans une section séparée. Une fois que vous avez identifié tout ce dont vous avez besoin, vous pouvez continuer à lire la section suivante de ce document. Ou lire sur cette section, car pour certaines choses que je dirai, peu importe le type de machine que vous utilisez comme serveur.

Si vous êtes pressé, veuillez vérifier la section Linux 2.2 avant de continuer à le lire.

Ce que vous avez lu aura besoin de configurer plusieurs programmes.

Portmapper

Portmapper sur Linux s'appelle Portmap ou RPC.PORTMAP. La page d'arrière-plan sur mon système indique qu'il s'agit d'un "convertisseur de numéro de port DARPA dans les appels des programmes RPC respectifs". C'est le premier trou de sécurité que vous allez ouvrir la lecture de ce document. Une description de la section de la fermeture de l'un de ces trous est dans la section Sécurité, ce que je vous conseille d'être sûr de lire.

Exécutez Portmapper. Il s'appelle Portmap ou RPC.PORTMAP et doit être dans le répertoire / usr / sbin (sur certaines machines, elle s'appelle RPCBind). Vous pouvez l'exécuter manuellement maintenant, mais il doit fonctionner à chaque démarrage de votre machine, vous devez donc créer / modifier des scripts RC. Le contenu de vos scripts RC est expliqué plus en détail dans la page de référence init. Ils sont généralement situés dans le /etc/rc.d, /etc/init.d ou /etc/rc.d/init.d répertoires. S'il y a un script appelé inet, nous le modifierons. Mais le fait qu'il soit nécessaire d'écrire ou de ce qui doit être fait est hors de la zone d'examen de ce document. Exécutez Portmap et vérifiez qu'il est exécuté à l'aide de la commande PS AUX, puis rpcinfo -p. C'est fait? D'accord.

Une chose. L'accès à distance à votre programme Portmapper est défini par le contenu de vos fichiers /etc/hosts.allowond et /etc/hosts.deny. Si RPCInfo -P ne fonctionne pas, mais votre portmapper est en cours d'exécution, veuillez vérifier les fichiers spécifiés. Voir la section Sécurité pour une description détaillée de ces fichiers.

Mount et NFSD.

Les programmes suivants que nous devons aller plus loin sont Mount et NFSD. Mais nous allons d'abord éditer un autre fichier. C'est le fichier / etc / exportations. Supposons que je souhaite que le système de fichiers / mn / ERIS / local, qui se trouve sur la machine ERIS était disponible pour la machine APOLLON. Ensuite, je dois mettre les lignes suivantes dans la machine ERIS sur / etc / exportations:

/ MN / ERIS / APOLLON LOCAL (RW)

Les lignes ci-dessus donnent à la machine Apollon le droit de lire / écrire au répertoire / mn / ERIS / local. Au lieu de rw, nous pouvons dire RO, ce qui signifie lire uniquement (si vous ne placez rien, la valeur par défaut est en lecture seule. Il existe d'autres options que vous pouvez poser ici, et je vais en examinerai plus tard certains d'entre eux relatifs à la problème à la sécurité. Ils sont tous énumérés dans la page de référence des exportations, que vous devriez lire au moins une fois dans ma vie. Il y a aussi les meilleurs moyensQue l'énumération de toutes les machines dans le fichier Exports. Par exemple, vous pouvez utiliser des groupes de réseau si vous utilisez le système NIS (ou NYYS) (NIS est également appelé YP), et utilisez toujours les modèles (cartes WILD) des domaines et des sous-réseaux IP comme des listes de machines autorisées à monter quelque chose. Mais vous devez prendre en compte qui peut accéder au serveur par une manière non autorisée si vous utilisez une autorisation aussi complète.

Remarque: ce fichier exportateur n'a pas la même syntaxe que d'autres systèmes UNIX utilisent. Ce document dispose d'une section distincte sur les fichiers d'exportation d'autres systèmes UNIX.

Nous sommes maintenant prêts à lancer des programmes Mountd (il peut également s'appeler RPC.Mountd) et NFSD (qui peut être appelé RPC.NFSD). Ces deux programmes lisent les données du fichier exportateur.

Si vous avez modifié des fichiers / etc / exportations, vous devez vous assurer que NFSD et Mountd savent que le fichier est modifié. Une manière traditionnelle de le faire; - il est de démarrer le programme Exportsfs. Dans de nombreuses distributions Programme Linux Exportsfs est manquant. Si tel est le cas, vous pouvez créer un tel script sur votre machine:

#! / bin / sh
killall -hup /usr/sbin/rpc.mountd.
killall -hup /usr/sbin/rpc.nfsd.
Écho Systèmes de fichiers réexportés

Enregistrez-le dans le fichier, dites / usr / sbin / exportfs et n'oubliez pas de remplir la commande chmod A + RX sur elle. Maintenant, après avoir changé votre fichier Exports, vous devez exécuter le programme ExportsFS, les droits d'administrateur.

Vous devez maintenant vérifier que Mount et NFSD fonctionnent correctement. Au début, cela est fait à l'aide de la commande rpcinfo -p. La production de programme devrait montrer quelque chose de similaire à ce qui suit:

programme 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

Comme vous le voyez, PortMapper a annoncé vos services et que Mount et NFSD fonctionnent.

Si vous avez reçu un message RPCInfo: CAN Message "T Contacter Portmapper: RPC: Erreur système distante - Connexion refusée, RPC_Prog_not_register ou quelque chose comme ça, alors cela signifie que PortMapper ne fonctionne pas. Ou vous pouvez avoir quelque chose enregistré dans les fichiers / etc / hosts. (Autoriser, refuser) qui interdit au programme Portmapper de répondre, veuillez regarder la section de sécurité pour description détaillée Ces fichiers. Si vous avez reçu un message, aucun programme distant enregistré., Alors Soit Portmapper ne veut pas vous parler ou quelque chose ne va pas. Complétez l'exécution de NFSD, Mountd et Portmapper et essayez de redémarrer la séquence de départ.

Après avoir vérifié que PortMapper a annoncé des services, vous pouvez également vérifier le travail à l'aide de la commande PS. Portmapper continuera d'annoncer ses services, même après que les programmes élargissent ses capacités ont terminé leurs travaux. Donc, la vérification avec PS peut être nécessaire si cela vous semble que quelque chose ne fonctionne pas.

Bien sûr, vous devrez résoudre vos fichiers System RC pour exécuter Mountd et NFSD lors du chargement. Il est très probable que ces scripts existent déjà sur votre voiture et vous n'aurez besoin de ne pas signaler la section souhaitée ou d'activer le script au niveau de lancement souhaité.

Pages de référence que vous devez déjà explorer: PortMap, Mountd, NFSD et Exportations.

Si vous avez tout fait comme je l'ai dit, vous avez dû installer tout ce dont vous avez besoin pour le serveur NFS.

Configuration du client NFS

Tout d'abord, vous avez besoin d'un noyau avec le support du système de fichiers NFS ou compilé dans le noyau, ou disponible en tant que module. Ceci est configuré pour compiler le noyau. Si vous n'avez jamais compilé le noyau, vous devrez peut-être lire le HOWTO Rernel et découvrir comment cela se fait. Si vous utilisez une bonne distribution (telle que REDHAT) et que vous n'avez jamais expérimenté avec un noyau ou des modules (et ainsi le détruisit ;-), il est probable que le support NFS est déjà dans le noyau.

Maintenant tu peux, dans ligne de commande Administrateur, entrez la commande de montage approprié et le système de fichiers apparaîtra. En poursuivant un exemple de la section précédente, nous voulons monter / mn / ERIS / local depuis la machine ERIS. Ceci est fait avec l'aide d'une telle équipe:

mont -o RSIZE \u003d 1024, WSIZE \u003d 1024 ERIS: / mn / ERIS / local / mnt

(Nous reviendrons sur les options RSIZE et WSIZE). Le système de fichiers est maintenant disponible dans / MNT et vous pouvez y aller et effectuer la commande LS en elle et consulter des fichiers individuels. Vous remarquerez que cette opération est effectuée non aussi rapidement que le système de fichiers local, mais plus pratique que FTP. Si, au lieu de monter le système de fichiers, la commande de montage affichera un message d'erreur Montez: ERIS: / mn / ERIS / Échec local, raison donnée par serveur: autorisation refusée, puis le fichier exportation est faux ou vous avez oublié de démarrer Exportsfs après Modification du fichier Exports. Si la commande est signalée par Mount Clntudp_Create: RPC: programme non enregistré Cela signifie que NFSD ou MountD ne s'exécute pas sur le serveur. Ou vous avez un problème avec les hôtes. (Autoriser, refuser), qui est mentionné ci-dessus.

Pour arrêter d'utiliser le système de fichiers, vous pouvez effectuer:

Pour monter automatiquement le système de fichiers NFS lors du chargement, vous devez modifier le fichier / etc / fstab comme d'habitude. Pour notre exemple, une telle chaîne est requise:


...
ERIS: / mn / ERIS / local / mnt nfs RSIZE \u003d 1024, WSIZE \u003d 1024 0 0
...

C'est presque tout ce dont vous avez besoin. S'il vous plaît lire plus loin.

Options de montage

Voici quelques options que vous devriez envisager immédiatement en les ajoutant au fichier de paramètres. Ils contrôlent la manière dont le client NFS exécute la résiliation du serveur ou la désactivation du réseau. L'une des propriétés de NFS est qu'il peut être manipulé élégamment ces problèmes si vous installez correctement le client. Il existe deux modes de traitement des erreurs différentes:

NFS Le client signalera un programme d'erreur qui tente d'accéder au fichier situé sur le système de fichiers monté via NFS. Certains programmes sont très bien gérés ce type d'erreur, mais la plupart des programmes ne le font pas. Je ne recommande pas d'utiliser cette option, cela peut conduire à l'apparition de fichiers gâtés et de données perdues. Vous n'utilisez pas particulièrement cette option pour les disques utilisés pour envoyer si votre courrier signifie quelque chose pour vous.

Le programme qui accède au fichier sur le système de fichiers monté sur la NFS fait simplement une pause de l'exécution lors de la rupture de la communication avec le serveur. Le processus ne peut pas être interrompu ou tué tant que vous spécifiez explicitement l'option intractée. Lorsque le serveur NFS est ré-mis à jour, le programme continuera de continuer à continuer de travailler à partir du lieu interrompu. C'est probablement ce dont vous avez besoin. Je recommande d'utiliser les options difficiles et intrigantes sur tous les systèmes de fichiers montés via NFS.

Poursuivre l'exemple précédent, maintenant dans notre fichier FSTAB ressemblera à ceci:

# Options FS-Type de montage de l'appareil FSCKorder
...
ERIS: / mn / ERIS / local / mnt NFS RSIZE \u003d 1024, WSIZE \u003d 1024, dur, intr 0 0
...

Optimisation NFS

Habituellement, si les options RSIZE et WSIZE ne sont pas spécifiées, les NFS liront et écrivent des blocs de 4096 ou 8192 octets. Certaines combinaisons de noyaux et de cartes réseau Linux ne peuvent pas gérer de tels blocages et ne peuvent pas être optimaux. Nous devons donc expérimenter et trouver les valeurs RSIZE et WSIZE qui fonctionnent si rapidement que possible. Vous pouvez tester le taux de transfert avec les options spécifiées à l'aide de plusieurs commandes simples. En remplissant la commande de montage ci-dessus et en accédant à la droite pour écrire sur un disque, vous pouvez tester les performances de l'enregistrement série:

time DD if \u003d / dev / zéro de \u003d / mnt / testfile BS \u003d 16k Nombre \u003d 4096

Cette commande crée un fichier de 64 Mo rempli de valeurs zéro (ce fichier doit être suffisamment grand, si gros de sorte que la mise en cache ne joue pas un rôle important dans la performance, utilisez une taille de fichier plus importante si vous avez beaucoup de mémoire). Faites cette opération plusieurs fois (5-10?) Et en moyenne les résultats. La valeur résultante; - C'est l'heure de «passage», c'est-à-dire la magnitude des plus intéressées par nous dans cette expérience. Ensuite, vous pouvez mesurer les performances de lecture en lisant le fichier à votre machine:

time DD if \u003d / mnt / testfile de \u003d / dev / null bs \u003d 16k

effectuez cette opération plusieurs fois et en moyenne le résultat. Découvrez ensuite le système de fichiers et la configurez à nouveau, avec des valeurs augmentées de RSIZE et WSIZE. Probablement ils doivent être multiples 1024 et pas plus de 16384 octets, comme il est taille maximum Bloc de données dans la version NFS 2. À droite après le montage avec des valeurs agrandies, accédez au système de fichiers monté et exécutez la commande LS similaire, explorez le système de fichiers pour vous assurer que tout est normal. Si les valeurs RSIZE / WSIZE sont trop volumineuses, les symptômes sont très inhabituels et non 100% évidents. Un symptôme typique est exprimé dans une liste incomplète de fichiers lors de l'exécution de la commande "LS" et du manque de messages d'erreur. Ou lire des fichiers disparaît mystérieusement sans message d'erreur. Une fois que vous avez défini que les valeurs RSIZE / WSIZE spécifiées fonctionnent, vous pouvez continuer à continuer à tester les performances. Diverses plates-formes de serveur ont probablement différentes tailles de blocs optimales. Sunos and Solaris Pour une opinion générale, travaillez assez rapidement à la taille du bloc égal à 4096 octets que d'autres valeurs.

Les nouveaux noyaux Linux (à partir de la version 1.3) effectuent la première lecture pour les valeurs RSIZE de taille large ou égale de la page de la machine. Sur les processeurs Intel, la taille de la page est de 4096 octets. La lecture anti-lecture pré-lecture augmente considérablement la performance de NFS lors de la lecture. Donc sur les machines avec processeur Intel Vous voudrez peut-être utiliser la valeur RSIZE égale à 4096 octets.

N'oubliez pas que vous devez modifier / etc / fstab pour utiliser les valeurs trouvées RSIZE / WSIZE.

La réception augmenter la performance de NFS lors de l'écriture consiste à interdire l'enregistrement synchrone au serveur. La spécification NFS nécessite des demandes NFS d'enregistrer non envisagées pour écrire des données sur le support (généralement du disque). Cela limite les performances d'enregistrement et l'enregistrement asynchrone augmentera considérablement la vitesse d'enregistrement NFS. Le démon NFSD pour Linux ne fait jamais un enregistrement synchrone, car la mise en œuvre du système de fichiers Linux lui permet de le faire, mais des serveurs travaillant sur différents systèmes à partir de systèmes Linux, vous pouvez accroître la productivité de cette manière en plaçant votre fichier d'exportation:

/ DIR -ASYNC, Access \u003d LinuxBox

ou quelque chose de similaire. Veuillez consulter la page de référence des exportations sur cette machine. N'oubliez pas non plus qu'il augmente le risque de perte de données.

NFS à travers des lignes lentes

Les lignes lentes comprennent les modems, le RNIS et d'autres connexions à de longues distances.

Cette section est basée sur la connaissance des protocoles utilisés et non sur ces expériences. S'il vous plaît laissez-moi savoir si vous essayez de le faire :-)

La première chose à laquelle vous devez vous rappeler que NFS; - Protocole lent. Utilisation de NFS pour la plupart comme à l'aide du protocole Kermit pour transférer des fichiers. Ceci est; - lent. Presque plus vite que NFS. FTP plus rapide. Http plus vite. RCP plus rapide. Ssh plus vite.

Voulez-vous toujours l'essayer dans votre travail? D'ACCORD.

Les paramètres par défaut pour NFS sont installés pour des lignes assez rapides avec un délai de retard faible. Si vous utilisez ces paramètres pour les lignes de retard de temps élevé, cela entraînera des messages d'erreur, une interruption des opérations, le système peut prétendre que les fichiers sont plus courts qu'ils ne sont effectivement et étranges de travailler dans d'autres cas.

La première chose à faire est de ne pas utiliser l'option de montage douce. Cela entraînera le retour du programme de renvoyer des signaux d'erreur lors des délais d'attente. Fondamentalement, le logiciel habituel ne traite pas trop de telles erreurs. C'est un bon moyen d'obtenir des échecs étranges. Utilisez plutôt l'option de montage dure. Lorsque l'option difficile est active, les délais d'attente entraînent des tentatives infinies de reprendre au lieu d'interrompre le travail de vos programmes. C'est ce dont vous avez vraiment besoin.

La prochaine chose que vous devez faire est d'expérimenter les options de montage du Timeo et de Retrans. Ils sont décrits dans la page de référence NFS (5), voici un extrait de celui-ci:

timeo \u003d n la valeur en dixièmes d'une seconde à la parcelle
Le premier relais après le délai d'attente RPC. Par
Par défaut, cette valeur est de 7 dixièmes
secondes. Après le premier délai d'attente, heure de taimaut
double après chaque délai d'attente jusqu'à ce que pas
La magnitude du délai maximum sera atteinte
égal à 60 secondes, ou se produira assez
Répéteurs, appelant le délai principal. Puis si
Le système de fichiers est monté avec l'option difficile,
Chaque nouveau délai d'attente est en cascade commence par
valeur initiale deux fois plus gros que lorsque
Cascade précédente, outre le double
Chaque relais. Le délai maximum est toujours
Égal à 60 secondes. Meilleur commun
La performance peut être atteinte
Augmenter le timaout lors du montage sur
réseau téléchargé, sur un serveur lent, ou
À travers plusieurs routeurs.

retrans \u003d n Cette valeur définit la quantité de non minière
Horaires et roulements qui devraient
Avant l'émergence du délai principal. Par
défaut cette valeur égale à 3. Quand il se produit
Délai principal, puis des opérations de fichier ou
Interrompu ou sur la console, un message est imprimé
"Le serveur ne répond pas".

En d'autres termes: si la requête n'est pas transmise d'un délai d'attente égale à 0,7 seconde (700ms), le client NFS répète la demande et augmente le délai d'attente deux fois, à 1,4 seconde. Si la réponse ne vient pas en 1,4 seconde, la demande se répète à nouveau et le délai d'attente sera augmenté à 2,8 secondes.

La vitesse de ligne peut être mesurée à l'aide de la commande ping avec une valeur égale de taille d'emballage, options établies RSIZE / WSIZE.

$ Ping -s 8192 Lugulbanda
Ping Lugulbanda.uio.no (129.240.222.99): 8192 Bytes de données
8200 octets à partir du 129.240.222.99: ICMP_SEQ \u003d 0 TTL \u003d 64 fois \u003d 15,2 ms
8200 octets à partir du 129.240.222.99: ICMP_SEQ \u003d 1 TTL \u003d 64 fois \u003d 15,9 ms
8200 octets à partir du 129.240.222.99: ICMP_SEQ \u003d 2 TTL \u003d 64 fois \u003d 14,9 ms
8200 octets à partir du 129.240.222.99: ICMP_SEQ \u003d 3 TTL \u003d 64 fois \u003d 14,9 ms
8200 octets à partir du 129.240.222.99: ICMP_SEQ \u003d 4 TTL \u003d 64 fois \u003d 15,0 ms

Lugulbanda.uio.no statistiques de ping ---
5 paquets transmis, 5 paquets reçus, 0% de perte de paquets
Aller-retour min / avg / max \u003d 14,9 / 15,1 / 15,9 ms

Ici, le moment montre combien de temps le package logiciel de ping va et retourne à la machine Lugulbanda. 15ms est assez rapide. Lorsque vous travaillez à travers un modem à une vitesse de 28 000 formes, vous pouvez vous attendre à environ 4000-5000 ms, et si la ligne est chargée par quelqu'un d'autre, le temps sera encore plus élevé, peut être deux fois. Quand cette fois est élevé, nous disons que c'est "retard élevé". En général, pour de grands paquets et pour des lignes de blanchiment plus chargées augmenteront. Augmentez le délai, respectivement, votre ligne et votre téléchargement. Et puisque le délai augmente lorsque vous utilisez une ligne pour d'autres choses: même si vous souhaitez utiliser FTP et NFS en même temps, vous devez essayer de mesurer le TIMEO PING lors de l'utilisation de FTP pour transférer des fichiers.

Sécurité et NFS

Je ne suis en aucun cas un expert en sécurité informatique. Mais j'ai un petit conseil pour le problème de sécurité conscient. Mais soyez averti: Cette liste n'est en aucun cas une liste complète des problèmes liés à NFS, et si vous pensez que vous avez obtenu une fois après avoir lu et rempli, tout ce que je donne ici, alors je veux vous avertir.

Cette section ne devrait pas vous déranger si vous êtes dans un réseau fermé, où vous faites confiance à tous les utilisateurs, et aucun de ceux qui ne font confiance à aucun ne peuvent accéder aux réseaux sur le réseau. Par exemple, il ne devrait y avoir aucune connexion à numérotation sur le réseau et il ne devrait pas y avoir de moyen de se connecter au réseau dans lequel vous êtes des personnes qui ne font pas confiance. Pensez-vous que je suis paranoïaque? Je ne suis pas paranoïaque. C'est le Conseil de sécurité de base. La sécurité nécessite un administrateur prudent et compétent qui sait où trouver des informations sur les problèmes de sécurité actuels et potentiels.

Le principal problème de NFS est que le client, sinon spécifié, fera confiance au serveur et inversement. Cela peut être mauvais. Cela signifie que si l'enregistrement du serveur NFS est piraté, il peut également être facilement piraté d'enregistrement de l'administrateur de la machine client. Et vice versa. Il existe un ensemble de stratégies de police pour cela, nous y reviendrons.

Ce que vous devez lire; - CERT Consulting Matériel relatif à NFS. La plupart des textes ci-dessous sont associés à des conseils écrits dans des problèmes de certification. Voir ftp.cert.org/01-Readme pour une liste mise à jour des matériaux consultatifs CERT. Voici quelques documents de conseil liés à la NFS:

CA-91: 21.Sunos.nfs.jumbo.and.fsirand 12/06/91
Vulnérabilité du système de fichiers réseau (NFS) Sun
Microsystems, Inc. (Soleil) et programmes FSIRAND. Cette vulnérabilité
possible dans les versions de Sunos 4.1.1, 4.1 et 4.0.3 du tout
Architectures. Patchworks (patchs) disponibles pour Sunos
4.1.1. Le patch initial pour Sunos 4.1 NFS est également disponible. Soleil.
Les correctifs complets pour Sunos 4.1 et Sunos 4.0.3 seront fournis plus tard.

CA-94: 15.nfs.Vulnérabilités 12/19/94
Ce matériel de conseil fournit une mesure.
Sécurité pour la protection contre certains trous en sécurité
Dans le système de fichiers réseau (NFS). Ce matériel est libéré en raison de
augmenter les cas de piratage de machines utilisant des utilitaires pour
piratage par des points vulnérables.

CA-96.08.PCNFSD 04/18/96
Ce matériel décrit les problèmes de sécurité dans le programme PCNFSD
(également appelé rpc.pcnfsd). Patch pour corriger l'erreur
attaché.

Sécurité du client

Du côté du client, nous pouvons décider que nous ne voulons pas trop faire confiance au serveur. Ceci est fait de plusieurs manières en utilisant les options de mont. Par exemple, nous pouvons interdire l'exécution de programmes avec le bit suid du fichier suid dans le système de fichiers NFS, ceci est effectué par l'option de montage NOSUID. C'est une bonne idée et vous devez considérer cela à l'aide de systèmes de fichiers montés via NFS. Cela signifie que l'administrateur du serveur ne sera pas en mesure de créer des programmes avec l'administrateur SUID installé sur le système de fichiers, puis entrez la machine cliente en tant qu'utilisateur régulier et à l'aide du programme Administrateur SUID pour acquérir également des droits d'administrateur sur la machine cliente. Nous pouvons également interdire l'exécution de fichiers sur le système de fichiers monté à l'aide de l'option NOEXEC. Mais il est appliqué moins fréquemment par rapport à l'option Nosuid, car le système de fichiers peut contenir au moins certains scripts ou programmes à effectuer. Vous pouvez entrer ces options dans la colonne Options ainsi que les options RSIZE et WSIZE, les séparant avec des virgules.

Sécurité du serveur: NFSD

Nous pouvons décider du côté du serveur que nous ne voulons pas faire confiance à l'administrateur du client. Nous pouvons le faire en spécifiant l'option root_squash dans le fichier Exports:

/ Mn / ERIS / Apollon local (RW, root_squash)

Maintenant, si un utilisateur avec UID 0 du côté du client, vous allez essayer d'accéder (lire, écrire, supprimer), le serveur de fichiers configurera l'utilisateur UID UID sur le serveur. Cela signifie que l'administrateur client ne sera pas capable. Pour accéder ou modifier des fichiers qui peut alternativement, seul l'administrateur du serveur peut modifier ou avoir accès à lequel vous devez utiliser l'option root_squash sur tous les systèmes de fichiers exportés. Vous direz que "l'administrateur client peut toujours exécuter la commande" su "à Allez comme n'importe quel autre utilisateur et accès et modifiez tous les fichiers utilisateur. "Sur ceci, il y a une réponse:" Oui, il existe une telle manière, et cela fonctionne dans UNIX et NFS. Il a une conclusion importante: tous les fichiers et programmes importants doivent avoir le propriétaire de l'utilisateur racine, pas l'utilisateur de la corbeille ou un autre utilisateur non administrateur, car seul l'administrateur client ne peut pas accéder en tant qu'administrateur de serveur. Avec la page de référence NFSD, il existe plusieurs autres options similaires, vous pouvez donc décider que vous (pas) faire confiance à une personne du client. Vous avez également des options pour dessécher les bandes UID et GID. Ceci est décrit dans la page de référence NFSD Linux.

L'option root_squash est la valeur par défaut pour NFSD sous Linux, pour transférer l'autorité administrative pour accéder au système de fichiers, utilisez l'option no_root_squash.

Une autre chose importante à faire est de vérifier que NFSD vérifie si toutes les demandes proviennent du port concerné. S'il faut des demandes d'un ancien port sur le client, l'utilisateur sans privilèges spéciaux peut exécuter un programme facile à obtenir sur Internet. Il sait comment "parler" dans la langue du protocole NFS et prétendre que l'utilisateur est un utilisateur qui qu'il veut être. NFSD ON Linux fait ce chèque par défaut, mais pour d'autres systèmes d'exploitation, vous devez résoudre ce chèque vous-même. Cela devrait être décrit dans la page de référence NFSD pour votre système d'exploitation.

Autre chose. Ne jamais exporter le système de fichiers pour la machine nommée "localhost" ou 127.0.0.1. Croyez-moi.

Sécurité du serveur: Portmapper

La base de Portmapper, en relation avec NFSD, a un problème de conception permettant d'obtenir des fichiers de serveurs NFS sans aucun privilège. Heureusement, Portmapper utilisé dans la plupart des distributions Linux utilise une sécurité relative contre une telle attaque et peut être rendu plus sécurisée de configurer la liste d'accès dans deux fichiers.

Pas tout distributions Linux Posséder l'égalité des chances. Certaines distributions qui semblent modernes, n'incluent pas de version sûre du programme Portmapper, même maintenant, après de nombreuses années après sa connaissance de ses vulnérabilités. Au moins une distribution est même une page de référence d'un Portmapper plus sûr, mais en fait, Portmapper n'est pas sûr. Le moyen le plus simple de vérifier si votre portmapper est bon ou non, est de démarrer le programme Strings (1) et d'afficher sa sortie pour les fichiers, /etc/hosts.deny et /etc/hosts.allow. En supposant que votre portmapper est / USR / SBIN / PORTMAP, vous pouvez vérifier cela en exécutant la commande suivante: Cordes / USR / SBIN / PORTMAP | Hôtes Grep. Sur ma voiture, il a été rempli avec les résultats suivants:

/etc/hosts.allond.
/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

D'abord, nous édions le fichier /etc/hosts.deny. Il doit contenir une chaîne

qui interdira l'accès à tous. Comme il a fermé l'accès à tout le monde, exécutez RPCInfo -P juste pour vérifier que votre PortMapper lit ce fichier et exécute ces instructions. La commande RPCInfo ne doit pas désactiver quoi que ce soit ou ne devrait émettre un message d'erreur. Redémarrer Portmapper n'est pas nécessaire.

La fermeture de Portmap pour tout le monde peut être trop drastique, nous aurons donc ré-accéder à l'accès en modifiant le fichier /etc/hosts.allow. Mais d'abord, nous devons déterminer ce que nous avons mis là. Dans ce fichier, toutes les machines pouvant accéder à votre portmapper sont répertoriées. Parmi les nombreux systèmes Linux opérant sous Linux, seules certaines machines nécessitent un accès complet pour tout travail. Portmapper sert des services NFSD, Mountd, YPBind / YPServ, PCNFSD et «R», tels que la rupture et les ruseurs. Parmi ceux-ci, seul NFSD, Mountd, YPBind / Ypserv et éventuellement PCNFSD ont une importance importante. Toutes les machines nécessitant un accès aux services de votre machine doivent être autorisées à le faire. Disons que l'adresse de la machine est le 129.240.223.254 et elle est dans le sous-réseau 129.240.223.0 et elle a besoin d'accéder aux services de votre machine (ces termes ont été introduits par HOWTO sur les réseaux, revenez-y et rafraîchissez vos connaissances si nécessaire). Pour ce faire, nous allons écrire dans le fichier hosts.allow

portmap: 129.240.223.0/255.255.255.0.

Ceci est identique à celui de l'adresse réseau que vous donnez la commande de route et le masque de sous-réseau que vous transmettez la commande ifconfig. Pour le périphérique ETH0 sur cette machine IFCONFIG devrait montrer

...
Eth0 Link Encap: 10Mbps Ethernet hwaddr 00: 60: 8c: 96: 56
Inet Addr: 129.240.223.254 BAST: 129.240.223.255 Masque: 255.255.255.0
MultiCast MTU MTU: 1500 Métrique: 1
RX Paysets: 360315 Erreurs: 0 Dressé: 0 Demandages: 0
Paquets TX: 179274 Erreurs: 0 Drophed: 0 dépassements: 0
Interruption: 10 Adresse de base: 0x320
...

et le programme NetStat -RN devrait montrer

Table de routage du noyau
Gateway Genmask Flags Metric Ref Utilisez iface
...
129.240.223.0 0.0.0.0 255.255.255.0 U 0 0 174412 ETH0
...

(L'adresse réseau est dans la première colonne).

Les fichiers hôtes.Deny et hôtes.alland sont décrits dans les pages de référence avec les mêmes noms.

Important: Ne placez rien dans ces fichiers, à l'exception des numéros de propriété intellectuelle dans les lignes pour configurer PortMap. La recherche de noms de machine peut entraîner une activité de PortMap qui provoquera la recherche des noms de la machine qui appellera PortMap, qui causera ...

Les éléments ci-dessus doivent appeler votre commutation de serveur. Le problème restant est que quelqu'un hacks Administrator (ou télécharger MS-DOS) sur une machine fiable et utilise ces privilèges pour envoyer des requêtes à un port sécurisé, comme tout utilisateur qu'il souhaite être.

NFS et pare-feu

Très bonne idée de protéger les ports NFS et Portmap à l'aide d'un pare-feu sur votre routeur. NFSD fonctionne sur le port 2049 à l'aide des deux protocoles; - UDP et TCP. Portmapper fonctionne sur le port 111, TCP et UDP, et Mount Travaux sur les ports 745 et 747, TCP et UDP. Défaut. Vous devez vérifier les numéros des ports utilisés à l'aide de la commande RPCInfo -P.

Si vous souhaitez utiliser NFS via un pare-feu, c'est-à-dire des options pour les nouvelles versions de NFSD et de Mountd, afin de les faire utiliser des ports non standard pouvant être ouverts dans le pare-feu.

Résumé

Si vous utilisez Hosts.allow / Deny, root_squash, nosuid et ports privilégiés dans logiciel Portmapper / nfs alors vous pouvez éviter des erreurs célèbres Dans NFS et vous pouvez vous sentir presque en sécurité. Mais tout de même: lorsque le piratage a accès à votre réseau, il / elle peut ajouter des commandes étranges à votre fichier.forward ou boites aux lettresQuand / home ou / var / spool / mail est monté via NFS. Pour la même raison, vous n'aurez jamais accès à vos clés personnelles PGP via NFS. Ou au moins vous devez savoir quel risque existe. Et à en savoir au moins un peu de lui.

NFS et PortMapper créent un système complet et il n'est donc pas complètement incroyable que de nouvelles erreurs seront trouvées, ou au cœur du projet, ou dans la mise en œuvre que nous utilisons. Il peut également y avoir des trous célèbres que quelqu'un utilise. Mais tel est la vie. Pour être conscient de telles choses, vous devez au moins lire les groupes de discussion comp.os.linux.anounce and comp.security.anounce.

Liste de contrôle de résolution de problème de montage

Cette section est basée sur la liste de contrôle de problèmes de montage, ce document est écrit dans IBM Corp. Je suis reconnaissant pour eux de la rendre disponible pour une utilisation dans ce document. Si vous avez un problème avec le système de fichiers monté via NFS, veuillez cocher cette liste avant d'envoyer un message d'erreur. Chaque élément décrit un problème spécifique et sa solution.

La commande Mount continue de signaler RPC: programme non enregistré LIAT Portmapper a commencé?

Correction: exécutez-le.

Est-ce que Mount a commencé?

Correction: exécutez-le.

NFSD a-t-il commencé?

Correction: exécutez-le.

N'est-il pas interdit par Portmapper de répondre à vos demandes par le fichier /etc/hosts.deny?

Correction: Supprimez la règle du fichier host.deny ou ajoutez une règle au fichier hosts.allow, de sorte que Portmapper sera autorisé à communiquer avec vous.

Le système de fichiers n'est pas exporté ou non exporté lors de la demande de client. Correction: Exportez-le

Le système de résolution du nom ne fournit pas de conformité à la liste des machines dans le fichier Exports. Par exemple: la liste des ressources exportées définit l'exportation de Johnmad, mais le nom Johnmad est autorisé comme Johnmad.austin.ibm.com et le mont est interdit.

Correction: Exportez une ressource pour les deux moules du nom de la machine.

Il se produit également si le client dispose de 2 interfaces avec des noms différents pour chacun d'eux et que le système de fichiers n'est exporté que vers un nom spécifié.

Correction: Exportez les deux interfaces.

Cela peut également se produire si le serveur ne peut pas effectuer les fonctions LookupHostByName ou LookUPHOSTBYADDR (voici les fonctions de la bibliothèque) sur le client. Assurez-vous que le client peut exécuter des commandes d'hôte ; Hôte. ; Et tous les deux pointent sur la même voiture.

Correction: ajustez le système de résolution de noms.

Le système de fichiers a été monté, après que NFS fonctionnait (sur ce serveur). Dans ce cas, le serveur exporte le point de montage lui-même, plutôt qu'un système de fichiers monté. Correction: Terminez NFSD, puis redémarrez-le.

Référence: les clients ayant déjà été montés sur le point de montage du système de fichiers auront des problèmes d'accès à celui-ci après le redémarrage du serveur.

La date de Namobum varie sur une ou les deux machines (elle peut confondre la marque). Correction: définissez la date correcte.

L'auteur HOWTO recommande d'utiliser NTP pour synchroniser des heures. Comme il existe des restrictions d'exportation sur NTP pour nous, vous pouvez obtenir NTP pour Debian, Red Hat ou Slackware avec FTP\u003e //ftp.hacktic.nl/pub/replay/pub/Linux ou à partir d'un miroir serveur.

Le serveur n'autorise pas le montage de l'utilisateur, qui compte plus de 8 groupes. Correction: Réduisez le nombre de groupes dans lesquels l'utilisateur entre ou monté sous le nom d'un autre utilisateur.

Foire aux questions (FAQ)

Cette section des questions fréquemment posées (FAQ). La majeure partie est basée sur l'ancienne FAQ écrite par Alan Cox.

Si vous rencontrez des problèmes avec le système de fichiers de montage, veuillez vous reporter s'il n'est pas décrit dans la «liste des chèques de contrôle du montage».

Je reçois des messages d'erreur `` Sale NFS Manipelle (descripteur NFS obsolète) "" lors de l'utilisation de Linux comme serveur NFS. Ceci est appelé par une erreur dans l'une des anciennes versions de NFSD. Ceci est fixé dans NFS-Server2.2Beta16 et ultérieurement.

Quand j'essaie de monter le système de fichiers, je reçois un message
Peut-on enregistrer avec PortMap: erreur système sur Envoyer
(Je ne peux pas m'inscrire à Portmap: erreur système Lors de l'envoi)

Vous utilisez probablement le système Caldera. Ceci est une erreur dans les scripts RC. Veuillez contacter Caldera pour la fixation.

Pourquoi ne puis-je pas exécuter le fichier après la copie sur le serveur NFS? La raison est que les descripteurs de caches NFSD ouvrir des fichiers Pour améliorer les performances (rappelez-vous qu'il fonctionne dans l'espace utilisateur). Alors que NFSD détient le fichier ouvert (comme dans ce cas, après l'avoir écrit), le noyau ne vous permettra pas de l'effectuer. NFSDS Newer que les versions de sortie de printemps 95 Tenir les fichiers Ouvrir pendant quelques secondes, plus vieux peut garder le fichier ouvert pendant plusieurs jours.

Mes fichiers sur NFS sont tous pris en compte avec le droit uniquement pour lire le serveur NFS par défaut pour Linux est tout aussi lisible. Relisez les `` Mountd et NFSD "" "et" Exportation de systèmes de fichiers "" "de ce document, ainsi que des pages" `exportations" et NFSD. Vous devez modifier le fichier / etc / exports.

Je montez le système de fichiers à partir du serveur NFS sous Linux et tandis que la commande LS fonctionne, je ne peux pas lire ou écrire des fichiers. Sur les anciennes versions de Linux, vous devez monter le serveur NFS avec les options RSIZE \u003d 1024, WSIZE \u003d 1024.

Je montez le système de fichiers du serveur NFS sous Linux avec une taille de bloc compris entre 3500 et 4000 et cela goutte régulièrement que la machine avec Linux ne le fait généralement pas. Cela n'arrive pas à des versions de versions 2.0 et 2.2. Il n'y a pas non plus de problème avec les 2,1 cœurs.

La Linux peut-elle effectuer NFS sur TCP no

Je reçois des erreurs étranges lors du montage de la machine de la machine sous Linux. Assurez-vous que votre utilisateur est en groupe de 8 ou plus petits. Les serveurs plus âgés l'exigent.

Lorsque je redémarre ma voiture, il se bloque parfois lorsque vous essayez de démonter de la suspension du serveur NFS. Ne déverrouillez pas des serveurs NFS lors du redémarrage ou du désactivez, ignorez-le, rien n'est endommagé si vous ne le déverrouillez pas. La commande ressemblera comme suit umount -avt nonfs.

Le client NFS pour Linux fonctionne très lentement lors de l'enregistrement Sun et BSD. Habituellement, NFS écrit en mode synchrones (vous pouvez l'interdire si vous pensez que vous ne risquez pas de perdre des données). Le pire de tout ce que les noyaux ont eu lieu de BSD ne peuvent pas fonctionner avec de petits blocs. Ainsi, lorsque vous écrivez des données 4K de la machine sous Linux dans des packages 1K, puis BSD l'effectue comme suit

lire la taille de la page 4K
Changer 1k.

Lire la taille de la page 4K
Changer 1k.
Écrivez une page Taille de la page 4K Retour au disque
etc...

Lorsque je connecte de nombreux clients au serveur NFS Linux, ses performances tombent soudainement. Le protocole NFS utilise à l'aide de paquets UDP fragmentés. Dans le noyau, il existe une limite sur le nombre de fragments ou de forfaits incomplets arriveront avant qu'il ne commence à supprimer les colis. Dans les noyaux de la série 2.2, il est configuré tout en travaillant via / proc: / proc / sys / net / IPv4 / ipfrag_high_thresh et ipfrag_High_thresh et IPFRAG_LOW_THESH. Dans les noyaux de la série 2.0, ces constantes sont déterminées pendant la compilation et sont définies dans le fichier ... / linux / net / ipv4 / ip_fragment.c, ipfrag_high_thresh et ipfrag_low_thresh. Ces paramètres signifient que lorsque la consommation de mémoire non collectée par les fragments de packages UDP atteint la valeur `'ipfrag_high_hresh" "en octets (par défaut 256k dans les noyaux 2.2.3 et 2.0.36), il diminuera la valeur`' ipfrag_low_treh". . Ceci est fait en rejetant des fragments. Il ressemblera à une perte de paquets presque complète et si la limite supérieure sera atteinte, les performances de votre serveur diminueront considérablement.

256k suffit à faire service jusqu'à 30 clients. Si vous avez 60 clients, augmentez cette valeur par 2 fois. Et augmenter également la valeur de la bordure inférieure.

J'utilise Linux 2.2 (ou plus tard) avec Knfsd et je ne peux pas faire mes voitures avec Aix, Irix, Solaris, Dec-Unix, ... Montez-y. KNFSD annonce cela implémentant la version NFS 3. Ce n'est pas le cas. Il y a une option qui lui interdit de l'annoncer. Utilise le. Ou vous pouvez placer le paramètre "Vers \u003d 2" dans la liste des options de montage sur le client.

Ma voiture avec AIX 4 ne peut pas monter mon serveur NFS sous Linux. Elle dit
Mont: 1831-011 Accès refusé pour serveur: / dir
Mont: 1831-008 abandonner:
Serveur: / dir
Les autorisations d'accès au fichier n'autorisent pas l'action spécifiée.

ou quelque chose de similaire. AIX 4.2 utilise des ports réservés (<1024) для NFS. AIX 4.2.1 и 4.3 не ограничены резервированными портами. Также AIX 4.2.1 и 4.3 пытаются произвести монтирование используя версию NFS3, затем NFS/TCP, и только потом NFS/UDP.

Ajouter une chaîne

nfso -o nfs_use_rerved_ports \u003d 1

À la fin du fichier RC.TCPIP le forcera à utiliser des ports réservés. (Ce conseil a été envoyé par Brian Gorka).

Exportation du système de fichiers

La méthode d'exportation de systèmes de fichiers avec NFS n'est pas entièrement compatible entre les plates-formes. Dans ce cas, Linux et Solaris sont distingués. Cette section superfette répertorie les moyens de faire cette opération sur la plupart des systèmes. Si votre système n'a pas été répertorié ici, voir Pages de référence sur votre système d'exploitation. Les mots-clés sont les suivants: NFSD, outil d'administration système (utilitaires d'administration système), scripts RC, scripts de démarrage, séquence de démarrage, / etc / exportations, exportsfs. Je vais utiliser un exemple pour toutes les partitions: Comment exporter le système de fichiers / mn / ERIS / local pour la machine APOLLON avec des droits de lecture / écriture.

IRIX, HP-UX, Digital-Unix, Ultrix, Sunos 4 (Solaris 1), AIX

Ces systèmes d'exploitation utilisent le format de soleil traditionnel pour l'exportation. Dans le fichier / etc / exports, écrivez:

/ Mn / eris / local -rw \u003d apollon

La documentation complète est dans la page de référence des exportations. Après avoir modifié le fichier, exécutez ExportFs -AV pour exporter des systèmes de fichiers.

La syntaxe exacte de la commande exportFS varie. Dans certains systèmes d'exploitation, vous pouvez constater que les lignes entrées sont lues comme suit:

/ Mn / ERIS / Apollon local

ou même comme ça:

Solaris 2.

Soleil complètement rétabli la roue lors du développement de Solaris 2. Il est donc complètement différent des autres systèmes d'exploitation. Ce que vous devez faire est d'éditer le fichier / etc / dfs / dfstab. En cela, vous devez placer les commandes d'organisation d'accès comme décrit dans la page de référence d'actions (1M). À propos de ces lignes:

share -O RW \u003d Apollon -D "ERIS local" / mn / ERIS / local

Après édition, exécutez le programme Shareall pour exporter le système de fichiers.

NFS à Linux 2.2

Comme je l'ai écrit, Linux 2.2.12 est la version actuelle du noyau et d'utiliser NFS y peut avoir besoin d'effectuer des travaux de routine. Ou pas besoin.

Quel sera le statut de NFS à Linux 2.4 Je ne sais pas.

Une innovation importante à Linux 2.2 est le soutien du démon NFS dans le noyau, appelé KNFSD. Cette méthode de mise en œuvre de NFSD présente certains avantages, dont le principal; - la vitesse du travail. La machine avec Linux 2.2 et KNFSD est un serveur NFS solide. Vous pouvez toujours utiliser l'ancien NFSD avec Linux 2.2, et il existe également plusieurs avantages, principalement la simplicité.

Si vous utilisez le code source du noyau ou des packages binaires créés par une personne comme Redhat (6,0 et tard), SUSE (6.0 et TARD), SUSE (6.1 ou la version ultérieure) ou un autre intégrateur de systèmes professionnel, ils seront probablement fournis avec l'intégration complète "KNFSD" Dans le noyau et vous n'aurez pas à vous inquiéter. Dans la plupart des cas. Tant que vous ne venez pas à compiler les noyaux eux-mêmes. Si vous utilisez le noyau Linux 2.2 habituel (au moins 2.2.12), KNFSD ne fonctionnera pas.

Pour que cela fonctionne vous-même, vous devez prendre le paquet KNFSD fait H.J. Lus. Ce forfait est un ensemble de patchs et les utilitaires nécessaires pour les noyaux de la série 2.2, que LU accompagne dans son temps libre. Vous pouvez le prendre à partir de votre miroir de serveur de noyau local ou du serveur principal, à ftp.kernel.org:/pub/linux/devel/gcc/. Il n'est pas destiné à une utilisation universelle. Si ce paquet vous est incompréhensible, n'essayez pas de l'utiliser vous-même. Attendez que les forfaits du noyau ne libèrent pas votre intégrateur de système préféré (par exemple, Red Hat, Suse ou ...).

De plus, veuillez ne pas m'envoyer des questions sur ce paquet, je ne peux pas vous aider. Je n'ai pas un seul serveur avec un emploi KNFSD. Si vous avez trouvé une erreur ou sautez dans la documentation, veuillez m'envoyer un courriel, je vais réparer ce document et le relâchera à nouveau.

Vous lisez-vous toujours? D'ACCORD. H.J.LU envoie des messages sur de nouvelles versions de son package dans la liste de diffusion de Linux-Kernel. D'autres messages liés à NFS dans la version 2.2 du noyau sont également envoyés là-bas. Lis-les.

Il y a une chose intéressante à dire sur le paquet KNFSD. Il annonce qu'il utilise la version 3. Cependant, elle ne prend toutefois pas en charge cette version. Vous pouvez utiliser une option pour interdire le package d'annonce NFS3, ou vous devez spécifier l'option "Vers \u003d 2" parmi les autres options de montage.

Client

Le client est très simple. Pour obtenir le blocage correct, vous devez disposer de compilé STATT (à partir de KNFSD), installé et décoller des scripts de démarrage. Fais-le. Vous avez besoin d'un répertoire / var / lib / nfs pour fonctionner, sinon elle cessera simplement de fonctionner sans aucun message d'erreur, vous devez donc créer un répertoire avant de démarrer le programme.

Lorsque STATTD est déjà en cours d'exécution, vous pouvez utiliser le programme testlk (dans le répertoire Outils / LocktTest) pour tester le fait que le blocage de fichier fonctionne sur les systèmes de fichiers montés par NFS. Cela devrait fonctionner bien. Si le programme signale Aucun verrouillage disponible (déverrouillage n'est pas disponible), STATD ne fonctionne pas.

En fait, vous pouvez également éviter de bloquer complètement (note que je ne vous recommande pas de le faire) à l'aide du paramètre "Nolock" dans la liste des options de montage.

Pour autant que je sache, tout ce qui est nécessaire pour travailler des clients.

Si vous avez un serveur SPARC ou ALPHA NFS, vous constaterez que le client NFS sous Linux 2.2 ne fonctionne pas parfaitement. Le taux de transfert de données sur et à partir du serveur est si mauvais qu'il est difficile d'imaginer. C'est pire même que sous Linux 2.0. Bien pire. Mais pour ce problème, il y a une correction. Série 2.2 Alan Cox (qui sont plus expérimentaux que les noyaux normaux 2.2, suivis de linus) incluent un patch qui permet à Linux 2.2 d'augmenter les performances lorsque vous travaillez avec des serveurs alpha et SPARC. Si vous souhaitez utiliser les noyaux fixés par Alan Cox, vous devez lire la liste de diffusion Linux-Kernel et vous devez déterminer où vous pouvez trouver le correctif nécessaire. Le serveur principal de ce correctif est le serveur http://www.uio.no/~trondmy/src/, si vous souhaitez essayer de l'appliquer au noyau normal 2.2 Series. Ce correctif n'est probablement pas inclus dans Linux 2.4, car il nécessite de faire trop de changements au cours du cycle de développement actuel. Attendez l'apparition de Linux 2.5.

trondmy a également des correctifs de sorte que Linux utilise NFS version 3, ils vous permettront également d'utiliser TCP comme mécanisme de transport au lieu d'UDP. NFSV3 est très bon pour les réseaux avec un grand nombre de transitions, ainsi que pour les réseaux où les pertes de paquets ne sont pas égales à zéro ou lorsque le temps d'attente est très élevé.

Vous devez lire la liste de diffusion Linux-Kernel si vous allez utiliser ces correctifs, car de temps en temps, ils trouvent des erreurs désagréables. Erreurs qui gâchent vos fichiers. Alors s'il vous plaît soyez prudent.

Serveur

Le démon de serveur NFS sous Linux 2.2 et ultérieur s'appelle "KNFSD". Il est plié dans l'installation. Vous pouvez le personnaliser vous-même ou mettre ce que vous offrez de la suuse, de Red Hat et d'autres sous la forme des forfaits de noyau de la série 2.2. Pardon. Bien que vous puissiez toujours utiliser l'ancien NFSD sous Linux 2.2. C'est lent, mais facile à installer.

Serveur NFS sur une disquette

Cette section a été écrite par Ron Peters, [Email protégé] Il explique comment configurer le serveur NFS lors du chargement d'une disquette. Au début, il a été inventé de fournir un accès NFS au CDROM sur une autre machine sans Linux / Unix pour installer Linux sur la machine sur laquelle il n'y a pas de CDROM.

N fs ( Système de fichiers réseau.) Fondamentalement conçu pour le partage Des dossiers et Dossiers entre / Unix Systèmes OT Sun Microsystems entreprises dans 1980.. Il vous permet de monter des systèmes de fichiers locaux sur le réseau et les hôtes distants, d'interagir avec eux comme s'ils étaient installés localement sur le même système. Passant par Nfs. , nous pouvons configurer le partage de fichiers entre Unix dans Linux Système I. Linux Pour le système Unix.

Avantages de NFS

  1. Nfs. Crée un accès local aux fichiers distants.
  2. Il utilise l'architecture standard client/serveur Pour échanger des fichiers entre toutes les machines de la base de données * Rien..
  3. Passant par Nfs. Pas besoin de travailler sur le même OS..
  4. Passant par Nfs. Nous pouvons personnaliser la décision stockage centralisé.
  5. Les utilisateurs obtiennent leur propre les données Indépendamment de leur emplacement physique.
  6. Automatique mettre à jour Pour les nouveaux fichiers.
  7. Une version plus récente Nfs. Prend en charge le montage acl, pseudo. sous racine.
  8. Peut être protégé pare-feu et Kerberos..

Services NFS

Serveur Système V-lancé. Paquet de serveur Nfs. Comprend trois produits faisant partie des packages. portmap. et nFS-Utils..

  1. portmap.: Affiche les appels fabriqués à partir d'autres machines au bon service. RPC. (non requis avec Nfsv4.).
  2. nfs.: Convertit les demandes supprimées partage de fichiers Dans les demandes sur un système de fichiers local.
  3. rpc.mountd.: Ce service est responsable de montage et démontage Systèmes de fichiers.

Fichiers de configuration importants pour NFS

  1. / etc / exportations: Son fichier de configuration principal Nfs.Tous exportés des dossiers et cataloguesqui sont définis dans ce fichier et sur Le serveur final NFS..
  2. / etc / fstab: Afin de monter catalogue NFS sur votre système sans redémarrerNous devons enregistrer dans / etc / fstab.
  3. / etc / sysconfig / nfs: Fichier de configuration Nfs. Pour le contrôle sur lequel le port RPC. et d'autres services Écoute.

Configuration et montez NFS sur Linux Server

Pour configurer le montage Nfs.Nous aurons besoin au moins dans deux voitures Linux/Unix. Ici dans ce tutoriel, nous utiliserons deux serveurs.

  1. Serveur NFS: nfsserver.example.ru avec IP - 192.168.0.55
  2. Client NFS: nfsclient.example.ru avec IP - 192.168.0.60

Installation du serveur NFS et du client NFS

Nous devons installer des packages Nfs. sur notre serveur NFSainsi que sur la voiture client NFS. Nous pouvons la définir avec "" ( Chapeau rouge. Linux) et package d'installation " apt-get.” (Debian. et Ubuntu.).

# Yum Installez NFS-UTILS NFS-UTILS-LIB # Yum Installez Portmap (non requis avec NFSV4) # apt-get Installer nfs-utils nfs-utils-lib

Maintenant courir prestations de service Sur les deux machines.

# /etc/init.d/porTmap Start # /etc/init.d/nfs Démarrer # Chkconfig --level 35 Portmap sur # chkconfig -level 35 nfs sur

Après avoir installé les packages et démarrer les services sur les deux machines, nous devons configurer les deux machines pour partager des fichiers.

Configuration du serveur NFS

Premier configuration du serveur Nfs..

Configuration du catalogue d'exportation

# mkdir / nfshare

Maintenant, nous devons enregistrer dans " / etc / exportations"JE. redémarrer Services pour rendre notre catalogue divisé sur le réseau.

# VI / etc / Exportations / NFSSHARE 192.168.0.60 (RW, Sync, no_root_squash)

Dans l'exemple ci-dessus, il y a un répertoire dans la section / intitulé " nfshare.", Actuellement avec le client IP" 192.168.0.60 "Avec des privilèges en train de lire et entrées (Rw) vous pouvez aussi utiliser nom d'hôte Client à la place IP. Dans l'exemple ci-dessus.

Paramètres NFS

Quelques autres options que nous pouvons utiliser dans des fichiers " / etc / exportations«Cela ressemble à partager des fichiers comme suit.

  1. ro.: Avec cette option, nous pouvons fournir accès en lecture seule aux fichiers partagés, c'est-à-dire client sera seulement capable lis.
  2. rw: Cette option permet serveur client Accès pour les deux pour en train de lire et entrées Dans le catalogue commun.
  3. synchroniser.: La synchronisation confirme les demandes d'un catalogue commun qu'après changer ont été commis.
  4. no_subtree_check: Cette option empêche la vérification subphandre. Lorsque le répertoire général est un sous-répertoire d'un système de fichiers plus grand, Nfs. Effectue une analyse de chaque répertoire sur elle pour vérifier vos autorisations et vos détails. Désactiver les chèques subphandre peut augmenter la fiabilité Nfs., mais réduire sécurité.
  5. no_root_squash: Cette phrase permet racine, relier À un dossier spécifique.

Pour plus d'options avec " / etc / exportations"Recommandé à lire pages Manuels pour exportation.

Configuration du client NFS

Après avoir défini Nfs.-Server, nous avons besoin smonimit Ce répertoire ou section partagée sur client Serveur.

Montage des répertoires généraux sur le client NFS

Maintenant sur client NFS, nous avons besoin smonimit Ce répertoire pour y accéder au niveau local. Pour cela, premièrement, nous devons savoir quelles ressources sont disponibles sur un serveur distant ou un serveur NFS.

# Showmount -e 192.168.0.55 Liste d'exportation pour 192.168.0.55: / NFSSHARE 192.168.0.60

Montage d'un catalogue accessible dans NFS

Afin de smonimit commun Nfs. Catalogue, nous pouvons utiliser la commande de menthe suivante.

# Mont -T NFS 192.168.0.55:/NFSSHARE / MNT / NFSSHARE

La commande ci-dessus établira un catalogue général dans " / Mnt / nfshare"Sur le serveur client. Vous pouvez le vérifier avec la commande suivante.

# Mont | Grep nfs sunrpc on / var / lib / nfs / rpc_pipefs Type RPC_Pipefs (RW) NFSD ON / PROC / FS / NFSD Type NFSD (RW) 192.168.0.55:/NFSShare On / MNT Type NFS (RW, Addr \u003d 192.168.0.55)

Au-dessus de la commande de montage monte sur Catalogue partagé NFS sur le Client NFS temporairement pour monter le catalogue NFS constamment Sur votre système, quels que soient les redémarrages, nous devons enregistrer dans " / etc / fstab“.

# VI / etc / fstab

Ajoutez la prochaine nouvelle chaîne comme indiqué ci-dessous.

192.168.0.55:/NFSSHARE / MNT NFS DEFAULS 0 0

Test de mode d'installation NFS

Nous pouvons tester notre installation du serveur NFS En créant fichier de test. du côté serveur et vérifiez-le sur Client NFS côté ou vice versa.

Sur le côté du serveur NFSSERVER

Nous avons créé un nouveau fichier texte nommé " nfstest.txt"Dans ce catalogue général.

# Cat\u003e /nfsshare/nfstsest.txt Il s'agit d'un fichier de test pour tester le fonctionnement de la configuration du serveur NFS.

Sur le côté client nfsclient

Accédez à l'annuaire général sur serveur client Et vous détecterez un fichier commun sans aucune mise à jour manuelle ni aucun service de redémarrage.

# LL / MNT / NFSSHARE TOTAL 4 -RW-R - R-- 1 RACINE RACINE 61 SEP 21 21:44 NFSTEST.TXT [Email protégé] ~] # Cat /mnt/nfsshare/nfstsest.txt Il s'agit d'un fichier de test pour tester le fonctionnement de la configuration du serveur NFS.

Suppression du montage NFS

Si tu veux démonter Ce répertoire partagé du serveur après avoir terminé avec Exchange de fichiers, vous pouvez simplement démonter Ce répertoire particulier à l'aide de la commande " monte.". Voir cet exemple ci-dessous.

[Email protégé] ~] # umount / mnt / nfshare

Vous pouvez voir que la montagne a été supprimée dans le système de fichiers.

# df -h -f nfs

Vous verrez que ces annuaires généraux ne sont plus disponibles.

Commandes importantes pour NFS

Quelques commandes plus importantes pour Nfs. .

  1. showmount -e. : Montre l'accès à objets partagés Sur un ordinateur local
  2. showmount -e. : Liste disponible objets partagéssur le supprimé Serveur
  3. showmount -d. : Liste de tous subdirectoriel
  4. exportsfs -v. : Affiche une liste de partagée des dossiers et option sur le serveur
  5. exporterfs -a. : Exporter tous les objets disponibles énumérés dans / etc / exportations, ou nom
  6. exporterfs -u. : Réexportation de tous les objets disponibles énumérés dans / etc / exportations, ou nom
  7. exportsfs -r. : Mettre à jour la liste des serveurs après le changement / etc / exportations

C'est tout pro montage NFS Pour le moment, si vous êtes intéressé, vous pouvez lire le guide. Quitter votre propre

Avez-vous aimé l'article? Partager avec des amis: