NFS kasutamine Debianiga
Sisukord
Sissejuhatus
Debian Lenny paketihaldus sisaldab NFSv3 ja NFSv4 tarkvara.
Tööpõhimõte
NFS (Network File System) võimaldab ühe arvuti failisüsteemi kasutada teisest arvutist. NFS serveri ülesanne on jagada võrgus olevatele NFS klientidele serveri failisüsteemi sealjuures kontrollitakse, millisele osale NFS serveri failisüsteemist millised kliendid ligi pääsevad ja milliste privileegidega.
NFS tarkvara paigaldamine
Kasutajal ei ole vaja midagi ise seadistama asuda, aga infoks, et Debian Lenny tuum on seadistatud NFS osas selliselt
# grep NFS /boot/config-2.6.26-1-686 CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_NCPFS_NFS_NS=y
NFS server
NFS serveri tarkvara esineb kahel kujul, nfs-user-server ja nfs-kernel-server, antud juhtumil tutvustatakse nfs-kernel-serveri kasutamist. Serveri tarkvara paigaldamiseks tuleb öelda
# apt-get install nfs-kernel-server
NFS klient
NFS kliendile vajaliku tarkvara paigaldamiseks tuleb öelda
# apt-get install nfs-common
NFSv3 kasutamine
NFSv3 võimaldab ühe arvuti failisüsteemi kasutada teisest arvutist, kusjuures kliendi autentimine toimub ip aadressi ja kasutaja UID põhiselt.
NFSv3 server
NFS serveri seadistusfailis /etc/exports kirjeldatakse, milliseid katalooge oma failisüsteemist NFS server võrku jagab ja milliste ligipääsupiirangutega. Nt selline rida
# cat /etc/exports /srv/home 192.168.10.0/24(rw,no_root_squash,async,no_subtree_check)
jagab välja selliste omadustega ressursi
- /srv/home - milline kataloog võrku jagatakse
- 192.168.10.0/24 - võrgu arvutid saavad kasutada
- rw - kataloog on kasutajatele loetav ja kirjutatav
- no_root_squash - nfs kliendi juurkasutajal on nfs ressursi suhtes nö tavalised juurkasutaja privileegid
- async - nfs failisüsteemi kasutatakse asünkroonselt, st nfs klient ei oota nfs serverilt kinnitust, et muudatused on jõudnud serveri failisüsteemi
NFSv3 klient
Ressursi monteerimiseks sobib öelda
# mount 10.0.9.19:/srv/home /srv/home
või lisada /etc/fstab faili rida
10.0.9.19:/srv/home /srv/home nfs defaults 0 0
NFSv4 kasutamine ilma Kerberoseta
NFSv4 kasutamisel võrrelded varasema versiooniga on iseloomulik
- kliendi ja serveri poolel peab töötama idmapd deemon
- väljajagatud ressursi poole pöördumisel kasutatakse nö virtuaalset juurikat, mida seadistusfailis tähistab fsid=0
NFSv4 server
Seadistusfailis /etc/default/nfs-common peab sisalduma rida
NEED_IDMAPD=yes
Seadistusfailis /etc/exports näidatakse, millised ressursid kuidas välja jagatakse, nt
/srv 192.168.10.0/24(rw,fsid=0,insecure,no_subtree_check,async) /srv/home 192.168.10.0/24(rw,nohide,insecure,no_subtree_check,async)
Muudatuste kehtestamiseks tuleb öelda
# /etc/init.d/nfs-kernel-server restart
NFSv4 klient
Seadistusfailis /etc/default/nfs-common peab sisalduma rida
NEED_IDMAPD=yes
Serveri ressursi monteerimiseks tuleb öelda nt
# mount -t nfs4 nfs-server:/home /home
NFSv4 kasutamine Kerberosega
NFSv4 üks oluline eelis varasemate versioonide ees on võimalus kasutada teda koos Kerberosega ja korraldada nii oluliselt turvalisem andmevahetus.
Eesmärk
Olgu skeemis kolm osalist
- Kerberose server
- Failiserver nfs-server.loomaaed
- Failiserveri klient nfs-klient.loomaaed
kerberos.loomaaed ___ | | krb5kdc - 88/tcp |___| kadmind - 749/tcp | /etc/krb5kdc/principal | ----|----------|-------------------------|--- | | __|__ __|__ | | /tmp/krb5cc_1000 | | /etc/krb5.keytab |_____| |_____| nfs-klient.loomaaed nfs-server.loomaaed
Kerberose ettevalmistamine
Eeldame, et käesoleva teksti kasutajal on üldiselt on Kerberose kasutamisest ettekujutus olemas, nt teksti MIT Kerberose kasutamine Debianiga põhjal, ja Kerberose server on juurutatud.
Lisaks tuleb Kerberose serveri seadistusfaili /etc/krb5.conf sektsiooni [libdefaults] lisada rida
[libdefaults] .... allow_weak_crypto = true
ja muudatuste kehtestamiseks öelda
# /etc/init.d/krb5-admin-server restart # /etc/init.d/krb5-kdc restart
NFSv4 server
NFSv4 serverisse tuleb lisaks paigaldada paketid
# apt-get install nfs-kernel-server krb5-config krb5-user libkadm55
ning seadistada /etc/krb5.conf faili sisu nt nii nagu Kerberose serveris. Lisaks tuleb registreerida Kerberose andmebaasis NFS teenusele vastav osapool öeldes NFS serveris
# kadmin -p root/admin -q "addprinc -randkey nfs/nfs-server.loomaaed"
Seejärel tuleb kopeerida NFS serveri failisüsteemi NFS serverile vastav saladus
# kadmin -p root/admin -q "ktadd -e des-cbc-crc:normal -k /etc/krb5.keytab nfs/nfs-server.loomaaed"
NFS serveri seadistusfailis /etc/default/nfs-kernel-server peab sisalduma rida
NEED_SVCGSSD=yes
ja seadistusfailis /etc/default/nfs-common rida
NEED_IDMAPD=yes
NFS tuleb ressurss välja jagada nt selliselt
# cat /etc/fstab /srv/nfs4 gss/krb5p(rw,sync,fsid=0,insecure,no_subtree_check) /srv/nfs4/homes gss/krb5p(rw,nohide,sync,insecure,no_subtree_check)
kusjuures gss/krb5p kohal saab kasutada selliseid väärtusi
- gss/krb5 - autentimine
- gss/krb5i - terviklikkus
- gss/krb5p - privaatsus
Seadistuste kehtestamiseks tuleb restartida nfs-kernel-server öeldes
# /etc/init.d/nfs-kernel-server restart ... Exporting directories for NFS kernel daemon.... Starting NFS kernel daemon: nfsd svcgssd.
NFSv4 klient
NFSv4 klienti tuleb lisaks paigaldada paketid
# apt-get install nfs-kernel-common krb5-config krb5-user libkadm55
ning seadistada /etc/krb5.conf faili sisu nt nii nagu Kerberose serveris. Lisaks tuleb registreerida Kerberose andmebaasis NFS teenusele vastav osapool öeldes NFS serveris
# kadmin -p root/admin -q "addprinc -randkey nfs/nfs-klient.loomaaed"
Seejärel tuleb kopeerida NFS kliendi failisüsteemi NFS kliendile vastav saladus
# kadmin -p root/admin -q "ktadd -e des-cbc-crc:normal -k /etc/krb5.keytab nfs/nfs-klient.loomaaed"
NFS kliendi seadistusfailis /etc/default/nfs-common peavad sisalduma read
NEED_IDMAPD=yes NEED_GSSD=yes
Muudatuste kehtestamiseks tuleb uuesti startida nfs-commons öeldes
# /etc/init.d/nfs-common restart ... Starting NFS common utilities: statd idmapd gssd.
Ressursi kasutamiseks sobib juurkasutajal öelda
# mount -t nfs4 -o sec=krb5p nfs-server.loomaaed:/home /srv/home
või kasutada NFS kliendi /etc/fstab failis rida
nfs-server.loomaaed:/home /srv/home nfs4 rw,sec=krb5p 0 0
Ja seejärel saab kasutaja oma TGT pileti olemasolul pääseda juurde oma nfs andmetele kataloogi /srv/home/priit
Alternatiiviks on, et kasutaja ise ühendab oma ressurssi külge nfs serverist
$ mount -t nfs4 -o sec=krb5p,users nfs-server.loomaaed:/home/priit /home/priit/nfs
Kasulikud lisamaterjalid
- http://wiki.debian.org/NFS/Kerberos
- NFS
- http://en.wikipedia.org/wiki/Network_File_System_(protocol)
- https://help.ubuntu.com/community/NFSv4Howto
- http://nfsv4.bullopensource.org/doc/kerberosnfs/krbnfs_howto.pdf
- http://www.cs.rug.nl/~jurjen/ApprenticesNotes/ch29s08.html
- MIT Kerberose kasutamine Debianiga