Next Previous Contents

3. Στήνοντας έναν NFS server

3.1 Προαπαιτούμενα

Πριν συνεχίσετε την ανάγνωση αυτού εδώ του HOWTO, θα χρειαστεί να γνωρίζετε πώς να κάνετε telnet μεταξύ server και client, και προς τις δύο κατευθύνσεις. Αν το telnet δεν δουλεύει, ξανακοιτάξτε το Networking/NET-3 HOWTO, και στήστε τη δικτύωση σωστά.

3.2 Πρώτο βήμα

Πριν μπορέσουμε να κάνουμε ο,τιδήποτε, χρειαζόμαστε ένα στήσιμο γιά τον NFS server. Αν είσαστε μέλος ενός εταιρικού ή πανεπιστημιακού δικτύου, πιθανότατα θα βρείτε κάμποσους NFS servers ήδη στημένους. Αν οι SysAdmins σας αφήσουν να έχετε πρόσβαση σ' αυτούς τους Η/Υ, ή αν διαβάζετε αυτό το HOWTO γιά ν' αποκτήσετε πρόσβαση σ' έναν τέτοιο Η/Υ, προφανώς δεν χρειάζεται να διαβάσετε αυτό το κομμάτι, και μπορείτε απλά να πάτε πιο κάτω, στο Ρυθμίζοντας τον NFS client .

Αν θέλετε να στήσετε έναν Η/Υ που δεν βασίζεται στο Linux σαν server, πρέπει να διαβάσετε τα εγχειρίδιά του, γιά ν' ανακαλύψετε πώς ενεργοποιείται το NFS serving και το export των filesystems μέσω του NFS. Υπάρχει μιά χωριστή ενότητα σ' αυτό εδώ το HowTo, γιά το πώς γίνεται αυτή η δουλειά σε διαφορετικά ΛΣ. Αφού, λοιπόν, έχετε ξεκαθαρίσει όλα τα παραπάνω, μπορείτε να συνεχίσετε με την ανάγνωση της επόμενης ενότητας του παρόντος HowTo. 'Η να διαβάσετε περισσότερα σ' αυτό το κομμάτι, αφού κάποια από τα πράγματα που θα πω είναι σχετικά με το θέμα, αδιάφορο τί Η/Υ χρησιμοποιείτε γιά server.

Αν βιάζεστε, παρακαλώ διαβάστε το Το NFS στο Linux 2.2 , πριν συνεχίσετε να διαβάζετε εδώ.

Όσοι συνεχίζετε το διάβασμα, θα χρειαστεί να ρυθμίσετε μερικά προγράμματα.

3.3 Ο portmapper

Ο portmapper στο Linux ονομάζεται είτε portmap , ή rpc.portmap. Η σχετική σελίδα της εντολής man στον Η/Υ μου λέει ότι πρόκειται γιά έναν "χάρτη θυρών DARPA προς αριθμούς προγραμμάτων RPC". Είναι η πρώτη τρύπα ασφάλειας που θ' ανοίξετε μ' αυτό εδώ το HowTo. Η περιγραφή γιά το πώς θα την κλείσετε, βρίσκεται στο Ασφάλεια και NFS. Το οποίο και σας παροτρύνω ξανά να διαβάσετε.

Ξεκινήστε τον portmapper. Ονομάζεται είτε portmap , ή rpc.portmap , και πρέπει να βρίσκεται μέσα στο directory /usr/sbin (που σε μερικούς Η/Υ λέγεται rpcbind). Μπορείτε να τον ξεκινήσετε με το χέρι τώρα, αλλά πρέπει να τον ξεκινάτε και κάθε φορά που bootάρετε τον Η/Υ σας, άρα πρέπει να φτιάξετε ή να διορθώσετε τα rc scripts. Αυτά τα scripts εξηγούνται λεπτομερέστερα στη σελίδα man γιά την εντολή init, και συνήθως βρίσκονται στα dirs /etc/rc.d, /etc/init.d , ή /etc/rc.d/init.d. Εάν υπάρχει ένα script με όνομα κάτι σαν inet , είναι πιθανότατα το script που ζητάτε γιά διόρθωση. Αλλά, όσα θα γράψετε ή θα κάνετε, βρίσκονται έξω από τα όρια του παρόντος HowTo. Ξεκινήστε τον portmap, και ελέγξτε ότι δουλεύει, τρέχοντας : ps aux και μετά rpcinfo -p. Δουλεύει; Καλώς.

Α, κάτι ακόμη : Η από μακριά πρόσβαση στον portmapper σας ρυθμίζεται από τα περιεχόμενα των αρχείων /etc/hosts.allow και /etc/hosts.deny . Αν αποτύχει το rpcinfo -p , αλλά ο portmapper σας τρέχει, παρακαλώ εξετάστε τα συγκεκριμένα αρχεία. Δες το Ασφάλεια και NFS , γιά λεπτομέρειες επάνω σ' αυτά τα αρχεία.

3.4 Οι mountd και nfsd

Τα επόμενα προγράμματα που πρέπει να βάλουμε να τρέχουν είναι οι mountd και nfsd. Αλλά πρώτα, θα διορθώσουμε ένα άλλο αρχείο, αυτή η φορά το /etc/exports . Ας πούμε ότι θέλω το filesystem /mn/eris/local , το οποίο υπάρχει επάνω στον Η/Υ eris , να είναι διαθέσιμο στον Η/Υ apollon. Τότε, θα έβαζα την εξής γραμμή στο αρχείο /etc/exports της eris :


/mn/eris/local  apollon(rw)

Η παραπάνω γραμμή δίνει στον apollon πρόσβαση read/write στο /mn/eris/local. Αντί γιά rw , θα μπορούσε και να λέει ro, που σημαίνει "μόνο γιά διάβασμα" (read only - αν δεν γράψετε τίποτε, το default είναι read only). Υπάρχουν κι άλλες επιλογές που μπορείτε να δώσετε, και παρακάτω θα συζητήσω μερικές σχετιζόμενες με την ασφάλεια. Πάντως, όλες απαριθμούνται στη σελίδα man γιά το exports , την οποία πρέπει να διαβάσετε τουλάχιστον μία φορά στη ζωή σας. Επίσης, υπάρχουν καλύτεροι τρόποι, από το να γράψετε στο αρχείο exports ολόκληρη τη λίστα των hosts. Πχ μπορείτε να χρησιμοποιήσετε ομάδες (groups) στο δίκτυο, αν τρέχετε το NIS (ή NYS - το NIS ήτανε γνωστό ως "Κίτρινες Σελίδες", Yellow Pages, YP), και πάντα να βάλετε wildcards γιά τα domains και τα υποδίκτυα (subnets) των IP's, περιγράφοντας τους hosts που επιτρέπεται να φορτώσουν κάτι. Αλλά πρέπει και να σκεφθείτε ποιός είναι πιθανό να αποκτήσει μη εξουσιοδοτημένη πρόσβαση στον server, σε περίπτωση που χρησιμοποιείτε ομαδικές εξουσιοδοτήσεις.

Σημείωση : Το αρχείο exports δεν συντάσσεται με τον ίδιο τρόπο, όπως σε άλλα *nix's. Υπάρχει ξεχωριστή ενότητα στο παρόν HOWTO σχετικά με τα αρχεία exports των άλλων *nix's.

Τώρα, πρέπει να ξεκινήσουμε τον mountd (που ίσως λέγεται και rpc.mountd), και μετά τον nfsd (ίσως λέγεται και rpc.nfsd). Και οι δύο θα διαβάσουν το αρχείο exports.

Αν διορθώσετε το /etc/exports , θα πρέπει να βεβαιωθείτε ότι οι nfsd και mountd γνωρίζουν ότι το αρχείο άλλαξε. Ο παραδοσιακός τρόπος είναι να τρέξετε το exportfs, όμως πολλές διανομές του Linux δεν διαθέτουν πρόγραμμα exportfs. Αν ούτε η δική σας διανομή διαθέτει, μπορείτε να εγκαταστήσετε το εξής script στον Η/Υ σας :


#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exported file systems

Σώστε το πχ στο /usr/sbin/exportfs, και μην ξεχάσετε να δώσετε chmod a+rx . Τώρα, κάθε φορά που αλλάζετε το exports αρχείο σας, μετά τρέξτε το exportfs ως root.

Τώρα, ελέγξτε ότι οι mountd και nfsd τρέχουν σωστά. Πρώτα με το rpcinfo -p. Αυτό πρέπει να δείξει κάτι, όπως το παρακάτω :


   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp    745  mountd
    100005    1   tcp    747  mountd
    100003    2   udp   2049  nfs
    100003    2   tcp   2049  nfs

Όπως βλέπετε, ο portmapper έχει αναγγείλει τις υπηρεσίες (services) του, όπως και οι mountd και nfsd.

Αν λάβετε μήνυμα rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused, RPC_PROG_NOT_REGISTERED, ή κάτι παρόμοιο, τότε ο portmapper δεν τρέχει. 'Η, έχετε κάποιες γραμμές στα αρχεία /etc/hosts.{allow,deny} , που απαγορεύουν στον portmapper ν' απαντήσει. Παρακαλώ διαβάστε το Ασφάλεια και NFS γιά λεπτομέρειες επάνω σ' αυτά τα αρχεία. Αν λάβετε το μήνυμα No remote programs registered. , τότε είτε ο portmapper δεν θέλει κουβέντα με σας, ή κάποια σύνδεση έσπασε. Κάντε kill στους nfsd και mountd, καθώς και στον portmapper, και ξαναπροσπαθήστε απ' την αρχή.

Αφού ελέγξετε το ότι ο portmapper αναφέρει τις υπηρεσίες (services) του, μπορείτε να δοκιμάσετε και με το ps. Ο portmapper θα συνεχίσει ν' αναφέρει υπηρεσίες, ακόμη και αφού έχουν κρασάρει τα προγράμματα που τις επεκτείνουν. Αρα, ένας έλεγχος στο ps είναι κάτι απαραίτητο, αν φανεί ότι κάποια σύνδεση δεν δουλεύει.

Φυσικά, πρέπει να τροποποιήσετε τα αρχεία rc του Η/Υ σας, γιά να ξεκινήσουν με το bootάρισμα οι mountd και nfsd, καθώς και ο portmapper. Είναι πολύ πιθανό ότι τα σχετικά scripts ήδη υπάρχουν στον Η/Υ σας, απλά πρέπει να βγάλετε τα σχόλια από τις σημαντικές γραμμές, ή να ενεργοποιήσετε τον Η/Υ στα σωστά επίπεδα init run.

Οι σελίδες man, με τις οποίες πρέπει να είσαστε εξοικειωμένοι σ' αυτό το σημείο : portmap, mountd, nfsd, και exports.

Λοιπόν, αν τα κάνατε όλα ακριβώς όπως σας τα είπα, είσαστε έτοιμοι να ξεκινήσετε τον NFS client.


Next Previous Contents