Πριν συνεχίσετε την ανάγνωση αυτού εδώ του HOWTO, θα χρειαστεί να γνωρίζετε πώς να κάνετε telnet μεταξύ server και client, και προς τις δύο κατευθύνσεις. Αν το telnet δεν δουλεύει, ξανακοιτάξτε το Networking/NET-3 HOWTO, και στήστε τη δικτύωση σωστά.
Πριν μπορέσουμε να κάνουμε ο,τιδήποτε, χρειαζόμαστε ένα στήσιμο γιά τον NFS server. Αν είσαστε μέλος ενός εταιρικού ή πανεπιστημιακού δικτύου, πιθανότατα θα βρείτε κάμποσους NFS servers ήδη στημένους. Αν οι SysAdmins σας αφήσουν να έχετε πρόσβαση σ' αυτούς τους Η/Υ, ή αν διαβάζετε αυτό το HOWTO γιά ν' αποκτήσετε πρόσβαση σ' έναν τέτοιο Η/Υ, προφανώς δεν χρειάζεται να διαβάσετε αυτό το κομμάτι, και μπορείτε απλά να πάτε πιο κάτω, στο Ρυθμίζοντας τον NFS client .
Αν θέλετε να στήσετε έναν Η/Υ που δεν βασίζεται στο Linux σαν server, πρέπει να διαβάσετε τα εγχειρίδιά του, γιά ν' ανακαλύψετε πώς ενεργοποιείται το NFS serving και το export των filesystems μέσω του NFS. Υπάρχει μιά χωριστή ενότητα σ' αυτό εδώ το HowTo, γιά το πώς γίνεται αυτή η δουλειά σε διαφορετικά ΛΣ. Αφού, λοιπόν, έχετε ξεκαθαρίσει όλα τα παραπάνω, μπορείτε να συνεχίσετε με την ανάγνωση της επόμενης ενότητας του παρόντος HowTo. 'Η να διαβάσετε περισσότερα σ' αυτό το κομμάτι, αφού κάποια από τα πράγματα που θα πω είναι σχετικά με το θέμα, αδιάφορο τί Η/Υ χρησιμοποιείτε γιά server.
Αν βιάζεστε, παρακαλώ διαβάστε το Το NFS στο Linux 2.2 , πριν συνεχίσετε να διαβάζετε εδώ.
Όσοι συνεχίζετε το διάβασμα, θα χρειαστεί να ρυθμίσετε μερικά προγράμματα.
Ο 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 , γιά λεπτομέρειες
επάνω σ' αυτά τα αρχεία.
Τα επόμενα προγράμματα που πρέπει να βάλουμε να τρέχουν είναι οι 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.