Administration NFS : portmap et les RPC (Remote Procedure Call)Date de publication : 05/01/2005 , Date de mise a jour : 05/01/2005
Par
david.d (Coredump) 1. Les RPC 2. XDR 3. Portmap 3.1. Rôle 3.2. Fonctionnement 3.3. Activation de portmap sous Linux
Page 1 : Portmap et les RPC (Remote Procedure Call) Page 2 : Principes de NFS (Network File System) Page 3 : Configuration du serveur Page 4 : Configuration du client Page 5 : Sécurisation 1. Les RPCLes RPC (développées par sun) permettent lexécution de procédures sur une machine distante. Autrement dit, elles permettent de concevoir des programmes répartis en fournissant un mécanisme dappel de procédures distantes. Nombreuses sont les applications ayant recours aux RPC. On trouve notamment NFS, NIS mais également la plupart des r-commandes rusers, rwall, etc ... Les procédures (ou fonctions) RPC sont regroupées en programmes et identifiées par des numéros. Les programmes se voient aussi attribuer un numéro ainsi quun numéro de version. Cest par le biais de ce triplet quun client peut appeler une procédure particulière. Les numéros sont attribués dune façon stricte (idem ports TCP et UDP). Ainsi mountd se voit attribuer le numéro 100005. 2. XDR
Conjointement aux RPC et au-dessus (dans le modèle OSI), on utilise le protocole XDR (eXternal Data Representation). XDR gère la mise en forme des données: cryptage, conversion EBCDIC/ASCII. Il définit un standard de représentation des types sur le réseau, afin notamment de palier la multiplicité des représentations utilisées (big endien, little endien, ...).
3. PortmapLes RPC se trouvent au niveau 5 du modèle OSI au dessus de TCP/UDP, tandis quXDR se trouve au niveau 6. Ces appels sont gérés par un standard (le processus portmap) via les numéros vus plus haut. Ces numéros sont recensés dans le fichier /etc/rpc. Ce fichier contient les services constructeurs, ce nest pas un fichier de configuration, il joue le même rôle que /etc/services dans la correspondance nom dapplication/port associé pour la programmation RPC. On aura sous Linux : [bob@matrox /]$ more /etc/rpc # ident "@(#)rpc 1.11 95/07/14 SMI" /* SVr4.0 1.2 */ # # rpc # portmapper..100000 portmap sunrpc rpcbind rstatd......100001 rstat rup perfmeter rstat_svc rusersd.....100002 rusers nfs.........100003 nfsprog ypserv......100004 ypprog mountd .100005 mount showmount < --------- mountd 1000005 ypbind 100007 walld .100008 rwall shutdown yppasswdd 100009 yppasswd etherstatd..100010 etherstat rquotad ..100011 rquotaprog quota rquota 3.1. RôleLe programme serveur RPC contenant les procédures distantes utilise les ports éphémères, pas les ports bien connus. Ceci nécessite lexistence dun standard conservant trace des ports éphémères utilisés. Le processus assurant cette fonction, cest portmap, le translateur de ports. Le translateur de ports est aussi un programme serveur RPC de numéro 100000, de version 2 et écoutant sur les ports 111 TCP et UDP. 3.2. FonctionnementPour quun serveur usant des RPC fonctionne, il est nécessaire au préalable que portmap soit lancé :
3.3. Activation de portmap sous LinuxLa commande rpcinfo permet de connaître les translations en cours : [bob@matrox /]$ rpcinfo -p (équivalent à rpcinfo -p localhost) program.no_version.protocole.no_port 100000......2.........tcp......111 portmapper 100000......2.........udp......111 portmapper ... (éventuellement) Si la commande rpcinfo -p donne : [bob@matrox /]$ rpcinfo -p rpcinfo: ne peut contacter l'aiguilleur de ports: RPC: erreur système sur l'hôte cible - Connexion refusée Il faut alors activer portmap. Sous RedHat, cest le script portmap du répertoire /etc/rc.d/init.d qui gère le lancement avec les arguments habituels start et stop : [bob@matrox /]$ su [root@matrox /]# /etc/rc.d/init.d/portmap start Démarrage de portmapper : [ OK ]
Page 1 : Portmap et les RPC (Remote Procedure Call) Page 2 : Principes de NFS (Network File System) Page 3 : Configuration du serveur Page 4 : Configuration du client Page 5 : Sécurisation
Copyright (c) 2004 david d. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license here : http://www.gnu.org/licenses/fdl.txt
|