NFSv4 hutoa ufikiaji wa mtandao wa umoja. Unda sehemu ya NFS kwa kutumia kiweko cha Kidhibiti cha Seva. Inaweka NFS ya mbali

NFS hukuruhusu kushiriki saraka kwenye mashine ya Unix. Ukosefu wa usalama wa NFS, na haswa NIS, unahusishwa na RPC - kwa suala la idadi ya ushujaa mbalimbali, RPC inaonekana kuwa kiongozi asiye rasmi (isipokuwa kwa Sendmail). Kwa kuwa itifaki hizi zimekusudiwa kwa mitandao ya ndani, italazimika kulindwa kutoka kwa watumiaji "wao". Ingawa kabla ya kuzitumia unahitaji kuamua ikiwa zinahitajika.

Kwenye mtandao wa nyumbani, wanaweza kuwa na manufaa kabisa, lakini kwenye mtandao wa ushirika, kwa sababu za usalama, ni bora kupata mbadala salama zaidi.

Mfumo wa faili wa NFS.

Mfumo wa Faili za Mtandao Mfumo wa Faili, NFS) ilitengenezwa na Sun kama njia ya kupata faili zilizo kwenye mashine zingine za Unix ndani mtandao wa ndani. NFS haikuundwa kwa kuzingatia usalama hata kidogo, ambayo imesababisha udhaifu mwingi kwa miaka mingi.

NFS inaweza kutumia TCP au UDP na kutumia mfumo wa RPC, kumaanisha kuwa ni lazima programu zifuatazo zinazoweza kuathiriwa ziwe zinaendeshwa: portmapper, nfs, nlockmgr (lockd), rquotad, statd na mountd.

Hakuna haja ya kuendesha NFS - unahitaji kupata suluhisho mbadala. Ikiwa NFS bado inahitajika, hapa tutazungumzia jinsi ya kupunguza hatari ya kuitumia.

/etc/exports

Hatua ya kwanza ni kuchagua mashine ambazo zitasafirisha mifumo yao ya faili. Kisha unaweza kuamua ni mashine gani zinazoruhusiwa kuunganisha kwenye seva za NFS (au seva, ikiwa kuna moja) kwenye mtandao. Hakuna haja ya kutumia NFS kwenye mashine moja kwa moja (moja kwa moja) iliyounganishwa kwenye mtandao. Baada ya mashine kuchaguliwa, unahitaji kuchagua saraka kwenye mashine hizi ambazo zitasafirishwa.

Saraka za usafirishaji zimefafanuliwa katika faili ya /etc/exports. Umbizo la kila kiingilio ni rahisi: jina la saraka, orodha ya watumiaji wanaoruhusiwa ufikiaji na hali ya ufikiaji. Mfano:

Ufikiaji kamili (kusoma/kuandika) kwa saraka ya nyumbani/ya mtumiaji inaruhusiwa kwa mashine yenye anwani ya IP 10.0.0.6. Jambo bora sio kutoa ufikiaji kamili, lakini kuiweka kikomo kwa ufikiaji wa kusoma tu (ro). Kwa kuongeza hii, unaweza pia kutaja chaguzi zifuatazo:

  • Salama- ombi la mlima lazima litoke kwenye bandari ya upendeleo (iliyohesabiwa hadi 1024). Hii inamaanisha kuwa amri ya kuweka iliingizwa na mtumiaji aliye na haki za mizizi.
  • Mzizi_boga- ombi kutoka kwa mtumiaji wa mizizi litazingatiwa kama ombi kutoka kwa mtumiaji asiyejulikana. Hii hukuruhusu kusababisha madhara kidogo kwa mfumo. Chaguo hili lazima liwezeshwe.
  • Boga_yote- maombi yote (sio tu kutoka kwa mtumiaji wa mizizi) yatazingatiwa kuwa yanatoka kwa mtumiaji asiyejulikana. Inafaa kwa saraka zinazohamishwa hadharani.

Ikiwa kiboreshaji chenye ufikiaji wa mizizi kitapata ufikiaji wa mashine ambayo imepewa ufikiaji wa rw kwa saraka iliyoainishwa katika /etc/exports, itapata udhibiti kamili wa mfumo wa faili, kwa hivyo haiwezi kusafirisha saraka ya mizizi (/), na mfumo- saraka muhimu, kwa mfano /usr, /bin, /sbin, /lib, /opt na /etc. Saraka za nyumbani za watumiaji ni nzuri kwa kusafirisha nje.

Kwa upande wa mteja, kuweka mfumo wa faili ulioshirikiwa lazima ufanywe kwa kubainisha -o nosuid chaguo:

# mount -t nfs -o nosuid 10.0.0.3:/home/user/files /mnt/home/frank

Hii itazuia cracker ambayo inaweza kufikia seva ya NFS kupata ufikiaji wa mizizi kwa wateja.

Kizuizi cha ufikiaji.

Bila kujali huduma, IPTables lazima zitumike kuzuia ufikiaji wa mashine. Katika kesi ya seva ya NFS, hii ni muhimu sana. Unapotumia IPTables, lazima ukumbuke kuwa daemoni ya NFS hutumia bandari 2049/TCP/UDP.

Baadhi ya huduma za RPC, kama vile portmapper na NFS, hutumia bandari zinazoendelea (113 na 2049/tcp/udp, mtawalia), lakini huduma zingine za RPC zina bandari zisizodumu, ambayo inafanya kuwa vigumu kuchuja pakiti kwa kutumia IPTables. Kitu pekee kinachojulikana ni kwamba RPC hutumia bandari katika anuwai 32768-65535.

Ikiwa unatumia kernel 2.4.13 au mpya zaidi, basi tumia -p chaguo<порт>unaweza kutaja bandari halisi kwa kila huduma ya RPC.

Wacha tuangalie kitendakazi cha start() kutoka /etc/rc.d/init.d/nfslock, ambacho kinatumika kuanzisha nsflock:

anza()(

#. Anza demons.

ikiwa [ "$USERLAND_LOCKD" ]; basi

echo -n $"Kuanza kufunga NFS: "

daemon rpc.lockd

echo -n $"Kuanzisha takwimu za NFS: "

daemon rpc.statd

echo [ $RETVAL -eq 0 ] && touch /var/touch/lock/subsys/nfslock

rudisha $RETVAL)

Ili kulazimisha daemon ya statd kutumia mlango maalum, unaweza kutumia -p chaguo, kwa mfano daemon rpc.statd -p 32800 (au nyingine yoyote - chochote unachopenda zaidi). Kwa njia hiyo hiyo, unahitaji kuweka bandari kwa mountd, nfsd, rquotad - zote zimezinduliwa kutoka kwa hati /etc/rc.d/init.d/nfs:

anza()(

#Anzisha demons.

action -n $"Kuanzisha huduma za NFS: " /usr/sbin/exportfs -r

ikiwa t _x /usr/sbin/rpc.quotad ] ; kisha mwangwi -n $"Kuanzisha upendeleo wa NFS: " daemon rpc.rquotad echo

fi echo -n $"Inaanza NFS iliyowekwa: "

daemon rpc.iliyopanda 3RPCMOUNTDOPTS

echo -n $"Kuanzisha daemoni ya NFS: " daemon rpc.nfsd $RPCNFSDOPTS echo touch /var/lock/subsys/nfs

Teknolojia ya kubadilisha bandari kwa lockd (nlockmgr) inatofautiana na hapo juu (hakuna haja ya kujaribu kubadilisha faili /etc/rc.d/init.d/nfslock - hakuna kitakachofanya kazi).

Lockd inatekelezwa kama moduli ya kernel au inakusanywa kwa utulivu kwenye kernel. Ili kubadilisha nambari ya bandari, unahitaji kufungua /etc/modules faili na kupata chaguzi zilizopitishwa kwa moduli:

chaguzi zimefungwa nlm_udpport=33000 nlm_tcpport=33000

Kwa kuwa sasa huduma za RPC zinatumia bandari tuli ambazo zinajulikana, IPTables lazima zitumike. Seti ifuatayo ya sheria inachukulia kuwa NFS ndiyo seva pekee inayoendesha kwenye mashine, na ni mashine tu zilizoorodheshwa katika /usr/local/etc/nfsexports.hosts faili zinazoruhusiwa kuipata:

IPX = "/usr/sbin/iptables"

# Futa minyororo yote

$IPT --flush

$IPT -t nat --flush $IPT -t mangle --flush $IPT -X

# Ruhusu trafiki ya nyuma $IPT -A INPUT -i lo -j KUBALI $IPT -A OUTPUT -o lo -j KUBALI

# Sheria chaguomsingi $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP

$IPT -PEMBEJEO -m hali -hali IMEANZISHWA,INAYOHUSIANA -j KUBALI $IPT -A OUTPUT -m hali -jimbo MPYA, IMEANZISHWA,INAYOHUSIANA -j KUBALI

# Ruhusu ufikiaji wa kila kompyuta

# imebainishwa katika /usr/local/etc/nfsexports.hosts

kwa mwenyeji katika "paka /usr/local/etc/nfsexports.hosts"; fanya $IPT -I INPUT -s $host -p tcp -dport 111 -j KUBALI

$IPT -I INPUT -s $host -p udp -dport 111 -j KUBALI

$IPT -I INPUT -s $host -p udp -dport 2049 -j KUBALI

$IPT -I INPUT -s $host -p tcp --dport 32800 -j KUBALI

$IPT -I INPUT -s $host -p tcp --dport 32900 -j KUBALI

$IPT -I INPUT -s $host -p tcp -dport 33000 -j KUBALI

$IPT -I INPUT -s $host -p tcp --dport 33100 -j KUBALI

Kwa kweli, hii ni mifupa tu; sheria nyingi zaidi zitahitaji kuongezwa: angalau ruhusu SSH na uweke vigezo vya kernel kwa kutumia /proc.

Inabadilisha NFS juu ya SSH.

Kifupi NFS wakati mwingine husimama kwa "Hakuna Usalama wa Faili" - maneno haya matatu yanajieleza yenyewe. Kwa hiyo, ni muhimu sana kulinda trafiki ya NFS. Hii ni rahisi kufanya kwa kutumia ssh.

Hatua ya kwanza ni kuhariri /etc/exports faili kwenye seva ya NFS ili mifumo ya faili isafirishwe kwa nodi ya ndani:

Kisha unahitaji kutumia SSH kusambaza NFS na bandari zilizowekwa. NFS hutumia bandari 2049/udp, na kuwekwa, kama ilivyoonyeshwa, hutumia nambari ya bandari 33000:

#ssh [barua pepe imelindwa]-L 200: localhost:2049 -f kulala 120m

#ssh [barua pepe imelindwa]-L 200: mwenyeji:33000 -f kulala 120m

Amri hizi mbili humpa mtumiaji ganda linaloingiliana, lakini kwa kuwa halihitajiki, SSH inatoa amri ya kulala 120: kurudi kwa mstari wa amri, lakini usambazaji wa bandari utachukua saa 2 nyingine.

Kuweka mfumo wa faili kutoka kwa upande wa mteja inaonekana isiyo ya kawaida sana:

mount -t nfs -o nosuid port=200 mountport=210 nfsserver.test.net:/home/user /mnt/another

Ikiwa hila za ssh ni ngumu sana, unaweza kutumia mradi wa SHFS (Shell Filesystem) ( http://shfs.sourceforge.net/ ), ambayo inafanya uwezekano wa kubinafsisha utaratibu huu wote.

Baada ya usakinishaji, lazima ufikie SHFS ukitumia ama mount -t shfs amri au amri mpya ya shfsmount. Syntax ya amri hii ni sawa na ile iliyotangulia:

shfsmount [barua pepe imelindwa]:/home/user/mnt/user

CFS na TCFS

Mfumo wa Faili wa Cryptographic hutumia usimbaji fiche wa uwazi na usimbuaji wa trafiki ya NFS kwa kutumia Algorithm ya DES. Kwa kuongeza, inasaidia usimamizi wa ufunguo wa moja kwa moja, ambayo hufanya mchakato kuwa wazi iwezekanavyo kwa mtumiaji.

Ingawa CFS iliundwa kwa ajili ya SunOS na BSD, inavutia sana kwa sababu inaonekana kuwa jaribio la kwanza la kusimba faili zilizoshirikiwa kwa uwazi. Mfumo wa Uwazi wa Faili za Cryptographic (TCFS) hutoa njia iliyo wazi zaidi ya kusimba trafiki ya NFS.

Mbali na usimbaji data, mfumo huu wa faili unaunga mkono ukaguzi wa uadilifu wa data.

N FS ( Mfumo wa Faili za Mtandao) iliyoundwa kimsingi kwa kushirikiwa mafaili Na folda kati/ Unix mifumo kutoka Mifumo midogo ya jua V 1980. Inakuruhusu kupachika mifumo ya faili za ndani juu ya mtandao na seva pangishi za mbali ili kuingiliana nazo kana kwamba zimewekwa kwenye mfumo sawa. Kwa kutumia NFS, tunaweza kusanidi kushiriki faili kati ya Unix V Linux mfumo na Linux kwa mfumo Unix.

Faida za NFS

  1. NFS huunda ufikiaji wa ndani Kwa faili zilizofutwa.
  2. Inatumia usanifu wa kawaida mteja/seva kushiriki faili kati ya mashine zote za msingi NIX.
  3. Kwa kutumia NFS hakuna haja ya mashine zote mbili kukimbia sawa Mfumo wa Uendeshaji.
  4. Kwa kutumia NFS tunaweza kubinafsisha suluhisho hifadhi ya kati.
  5. Watumiaji hupokea yao data bila kujali eneo lao la kimwili.
  6. Otomatiki sasisha kwa faili mpya.
  7. Toleo jipya zaidi NFS inasaidia kuweka acl, pseudo chini ya mizizi.
  8. Inaweza kulindwa firewalls Na Kerberos.

Huduma za NFS

Huduma Mfumo V-umezinduliwa. Kifurushi cha seva NFS inajumuisha bidhaa tatu zilizojumuishwa kwenye vifurushi ramani ya bandari Na nfs-Utils.

  1. ramani ya bandari: Inaonyesha simu zinazopigwa kutoka kwa mashine zingine hadi kwa huduma sahihi RPC(haitaji na NFSv4).
  2. nfs: hubadilisha maombi ya mbali ufikiaji wa umma kwa faili kwa maombi kwenye mfumo wa faili wa ndani.
  3. rpc.iliyowekwa: huduma hii inawajibika kuweka Na kuteremka mifumo ya faili.

Faili muhimu za usanidi kwa NFS

  1. /etc/exports: faili yake kuu ya usanidi NFS, zote zimesafirishwa mafaili Na katalogi, ambazo zimefafanuliwa katika faili hii na kuendelea Seva lengwa ya NFS.
  2. /etc/fstab: Kupanda Saraka ya NFS kwenye mfumo wako bila huwasha upya, tunahitaji kurekodi ndani /etc/fstab.
  3. /etc/sysconfig/nfs: Faili ya usanidi NFS kwa udhibiti wa bandari gani RPC na huduma zingine ukaguzi.

Kuweka na kuweka NFS kwenye seva ya Linux

Ili kusanidi mlima NFS, tutahitaji angalau magari mawili Linux/Unix. Hapa katika somo hili, tutatumia seva mbili.

  1. Seva ya NFS: nfsserver.example.ru na IP - 192.168.0.55
  2. Mteja wa NFS: nfsclient.example.ru na IP - 192.168.0.60

Kufunga Seva ya NFS na Mteja wa NFS

Tunahitaji kufunga vifurushi NFS kwenye yetu Seva ya NFS na pia kwa gari Mteja wa NFS. Tunaweza kuisakinisha kwa kutumia “ ” ( Kofia Nyekundu Linux) na kifurushi cha usakinishaji " apt-kupata” (Debian Na Ubuntu).

# yum kusakinisha nfs-utils nfs-utils-lib # yum kusakinisha portmap (si required na NFSv4) # apt-get kusakinisha nfs-utils nfs-utils-lib

Sasa kukimbia huduma kwenye mashine zote mbili.

# /etc/init.d/portmap anza # /etc/init.d/nfs anza # chkconfig --level 35 portmap kwenye # chkconfig --level 35 nfs imewashwa

Baada ya kusakinisha vifurushi na huduma zinazoendesha kwenye mashine zote mbili, tunahitaji kusanidi mashine zote mbili ili kushiriki faili.

Kuanzisha seva ya NFS

Kwanza, hebu tusanidi seva NFS.

Kuweka saraka ya usafirishaji

#mkdir/nfsshare

Sasa tunahitaji kuingia katika " /etc/exports"Na Anzisha tena huduma ili kufanya saraka yetu ishirikiwe kwenye wavuti.

# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)

Katika mfano hapo juu, kuna saraka chini / yenye kichwa " nfsshare", imeshirikiwa kwa sasa na mteja wa IP" 192.168.0.60 ” na mapendeleo kusoma Na kumbukumbu (RW), unaweza pia kutumia jina la mwenyeji mteja badala yake IP katika mfano hapo juu.

Mipangilio ya NFS

Chaguzi zingine ambazo tunaweza kutumia kwenye faili " /etc/exports” kushiriki faili kunaonekana kama hii.

  1. ro: Kwa chaguo hili tunaweza kutoa ufikiaji wa kusoma tu kwa faili zilizoshirikiwa, yaani mteja itaweza tu soma.
  2. rw: Chaguo hili linaruhusu mteja kwa seva upatikanaji kwa wote wawili kusoma Na kumbukumbu ndani ya saraka ya jumla.
  3. kusawazisha: Usawazishaji hukubali maombi kwa saraka iliyoshirikiwa tu baada ya mabadiliko zilijitolea.
  4. no_subtree_check: Chaguo hili linazuia kuangalia mti mdogo. Wakati saraka iliyoshirikiwa ni saraka ndogo ya mfumo mkubwa wa faili, NFS huchanganua kila saraka iliyo juu yake ili kuangalia ruhusa na maelezo yake. Inalemaza uthibitishaji mti mdogo inaweza kuboresha kuegemea NFS, lakini kupunguza usalama.
  5. hakuna_mizizi_boga: Kifungu hiki cha maneno kinaruhusu mzizi, kuunganisha kwa folda maalum.

Kwa chaguzi zaidi na " /etc/exports"Usomaji uliopendekezwa kurasa miongozo kwa kuuza nje.

Kuanzisha mteja wa NFS

Baada ya kuanzisha NFS-server, tunahitaji mlima saraka hii iliyoshirikiwa au kizigeu kimewashwa mteja seva.

Kuweka saraka zilizoshirikiwa kwenye mteja wa NFS

Sasa endelea Mteja wa NFS, Tunahitaji mlima saraka hii ili kuipata ndani ya nchi. Ili kufanya hivyo, kwanza, tunapaswa kujua ni rasilimali gani zinazopatikana kwenye seva ya mbali au seva ya NFS.

# showmount -e 192.168.0.55 Orodha ya kuuza nje ya 192.168.0.55: /nfsshare 192.168.0.60

Kuweka saraka inayoweza kupatikana kwenye NFS

Ili mlima jumla NFS saraka, tunaweza kutumia amri ifuatayo ya mlima.

# weka -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

Amri hapo juu itaweka saraka iliyoshirikiwa kuwa " /mnt/nfsshare” kwenye seva ya mteja. Unaweza kuiangalia kwa amri ifuatayo.

#mlima | grep nfs sunrpc kwenye /var/lib/nfs/rpc_pipefs andika rpc_pipefs (rw) nfsd kwenye /proc/fs/nfsd aina nfsd (rw) 192.168.0.55:/nfsshare kwenye /mnt.19 aina22.5.

Juu ya mlima amri huwekwa kwa Saraka iliyoshirikiwa ya NFS juu Mteja wa NFS kwa muda kuweka saraka ya NFS daima kwenye mfumo wako, bila kujali kuwasha upya, tunahitaji kuingia katika " /etc/fstab“.

# vi /etc/fstab

Ongeza mstari mpya ufuatao kama inavyoonyeshwa hapa chini.

192.168.0.55:/nfsshare /mnt nfs chaguo-msingi 0 0

Kujaribu hali ya usakinishaji wa NFS

Tunaweza kupima yetu Ufungaji wa seva ya NFS kwa kuunda faili ya mtihani kwenye upande wa seva na uangalie uwepo wake Mteja wa NFS upande au kinyume chake.

Kwa upande wa seva nfsserver

Tumeunda faili mpya ya maandishi inayoitwa " nfstest.txt” katika saraka hii iliyoshirikiwa.

# cat > /nfsshare/nfstest.txt Hili ni faili la majaribio la kujaribu kufanya kazi kwa usanidi wa seva ya NFS.

Kwa upande wa mteja nfsclient

Nenda kwenye saraka iliyoshirikiwa seva ya mteja na utapata faili iliyoshirikiwa bila sasisho lolote la mwongozo au huduma ya kuwasha upya.

# ll /mnt/nfsshare jumla 4 -rw-r--r-- 1 mzizi 61 Sep 21 21:44 nfstest.txt root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt Hili ni faili la majaribio jaribu kufanya kazi kwa usanidi wa seva ya NFS.

Inaondoa kipaza sauti cha NFS

Ukitaka ondoa saraka hii iliyoshirikiwa kutoka kwa seva baada ya kumaliza na kushiriki faili unaweza kwa urahisi ondoa saraka hiyo maalum kwa kutumia amri " panda“. Tazama mfano huu hapa chini.

Root@nfsclient ~]# panda /mnt/nfsshare

Unaweza kuona kwamba mlima umeondolewa kwenye mfumo wa faili.

# df -h -F nfs

Utaona kwamba saraka hizi zilizoshirikiwa hazipatikani tena.

Amri muhimu za NFS

Amri zingine muhimu zaidi kwa NFS .

  1. showmount -e: Maonyesho yanapatikana vitu vilivyoshirikiwa kwenye kompyuta yako ya ndani
  2. showmount -e : Orodha ya inapatikana vitu vilivyoshirikiwa juu kijijini seva
  3. showmount -d: Orodha ya wote saraka ndogo
  4. usafirishaji nje -v: Inaonyesha orodha ya zilizoshirikiwa mafaili Na chaguzi kwenye seva
  5. usafirishaji nje -a: Huuza nje vitu vyote vinavyopatikana vilivyoorodheshwa ndani /etc/exports, au jina
  6. usafirishaji nje -u: Hamisha upya vitu vyote vinavyopatikana vilivyoorodheshwa ndani /etc/exports, au jina
  7. usafirishaji nje -r: Sasisha orodha ya seva baada ya mabadiliko /etc/exports

Yote ni kuhusu NFS mlima juu wakati huu, ikiwa una nia, unaweza kusoma mwongozo kuhusu hilo. Acha zako

#image.jpgKuwa na wakati mzuri, wasomaji na wageni wa blogu yangu. Kulikuwa na mapumziko marefu sana kati ya machapisho, lakini nimerudi kwenye vita). Katika makala ya leo nitaangalia Uendeshaji wa itifaki ya NFS, na kusanidi seva ya NFS na mteja wa NFS kwenye Linux.

Utangulizi wa NFS

NFS (Mfumo wa Faili za Mtandao- mfumo wa faili wa mtandao) kwa maoni yangu - suluhisho kamili kwenye mtandao wa ndani, ambapo unahitaji haraka (haraka ikilinganishwa na SAMBA na rasilimali ndogo zaidi ikilinganishwa na mifumo ya faili ya mbali na encryption - sshfs, SFTP, nk ...) kubadilishana data na usalama wa habari iliyopitishwa sio mstari wa mbele. . Itifaki ya NFS hukuruhusu kuweka mifumo ya faili ya mbali juu ya mtandao kwenye mti wa saraka ya ndani, kana kwamba ni mfumo wa faili uliowekwa wa diski.

Kwa hivyo, programu za ndani zinaweza kufanya kazi na mfumo wa faili wa mbali kana kwamba ni wa ndani. Lakini unahitaji kuwa makini (!) na kuanzisha NFS, kwa sababu kwa usanidi fulani inawezekana kufungia mfumo wa uendeshaji wa mteja kusubiri I/O isiyo na mwisho.

Itifaki ya NFS kazi kulingana Itifaki ya RPC, ambayo bado ni zaidi ya ufahamu wangu)) kwa hivyo nyenzo katika kifungu hicho zitakuwa wazi kidogo ... Kabla ya kutumia NFS, iwe seva au mteja, lazima uhakikishe kuwa kernel yako ina msaada kwa faili ya NFS. mfumo. Unaweza kuangalia ikiwa kernel inasaidia mfumo wa faili wa NFS kwa kutafuta uwepo wa mistari inayolingana kwenye /proc/filesystems faili:

ARCHIV ~ # grep nfs /proc/filesystems nodev nfs nodev nfs4 nodev nfsd

Ikiwa mistari iliyoonyeshwa haiko kwenye /proc/filesystems faili, basi unahitaji kusakinisha vifurushi vilivyoelezwa hapa chini. Hii itakuruhusu kusakinisha moduli za kernel tegemezi ili kusaidia mifumo inayofaa ya faili.

Ikiwa, baada ya kufunga vifurushi, usaidizi wa NFS hauonyeshwa kwenye faili iliyopangwa, basi utahitaji kurejesha kernel ili kuwezesha kazi hii.

Hadithi Mfumo wa Faili za Mtandao

Itifaki ya NFS iliyotengenezwa na Sun Microsystems na ina matoleo manne katika historia yake. NFSv1 ilitengenezwa mnamo 1989 na ilikuwa ya majaribio, ikitumia itifaki ya UDP. Toleo la Kwanza limefafanuliwa katika RFC 1094.

NFSv2 ilitolewa mwaka huo huo wa 1989, ilielezewa na RFC1094 sawa na pia ilizingatia itifaki ya UDP, wakati huo huo kuruhusu kusoma angalau 2GB kutoka kwa faili. NFSv3 ilikamilishwa mnamo 1995 na inaelezewa katika RFC 1813.

Ubunifu kuu wa toleo la tatu ulikuwa msaada kwa faili kubwa, msaada ulioongezwa kwa itifaki ya TCP na pakiti kubwa za TCP, ambazo ziliharakisha sana utendaji wa teknolojia. NFSv4 ilikamilishwa mnamo 2000 na kuelezewa katika RFC 3010, kusahihishwa mnamo 2003 na kuelezewa katika RFC 3530.

Toleo la 4 lilijumuisha uboreshaji wa utendakazi, usaidizi wa njia mbalimbali za uthibitishaji (haswa, Kerberos na LIPKEY kwa kuanzishwa kwa itifaki ya RPCSEC GSS) na orodha za udhibiti wa ufikiaji (aina zote mbili za POSIX na Windows). NFS v4.1 iliidhinishwa na IESG mnamo 2010 na ikapokea RFC 5661.

Ubunifu wa kimsingi wa toleo la 4.1 ni ubainifu wa pNFS - Sambamba NFS, utaratibu wa ufikiaji sambamba wa mteja wa NFS kwa data kutoka kwa seva nyingi za NFS zilizosambazwa. Uwepo wa utaratibu huo katika mfumo wa faili wa sampuli wa mtandao utasaidia kujenga "wingu" iliyosambazwa ya hifadhi na mifumo ya habari.

Seva ya NFS

Kwa kuwa tunayo NFS-Hii mtandao mfumo wa faili, unahitaji kusanidi wavu katika Linux. (Unaweza pia kusoma makala dhana kuu ya mitandao). Ifuatayo, unahitaji kusanikisha kifurushi kinachofaa. Kwenye Debian hii ndio nfs-kernel-server na nfs-common kifurushi, kwenye RedHat hiki ndio kifurushi cha nfs-utils.

Na pia, unahitaji kuruhusu pepo kukimbia katika viwango vinavyofaa vya utekelezaji (amri katika RedHat - /sbin/chkconfig nfs on, katika Debian - /usr/sbin/update-rc.d nfs-kernel-server defaults).

Vifurushi vilivyowekwa kwenye Debian vinazinduliwa kwa utaratibu ufuatao:

ARCHHIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx Mzizi mmoja 20 Okt Kumi na Nane 15:02 S15nfs-kawaida -> ../init.d/nfs-common lrwxrwxrwx Mzizi mmoja 20 saba Okt 20 mbili 01:23 S.kernel-servers> .d/nfs-kernel-server

Kwa maneno mengine, huanza kwanza nfs-ya kawaida, baadaye seva yenyewe seva ya nfs-kernel.

Katika RedHat hali ni sawa, isipokuwa tu kwamba hati ya kwanza inaitwa nfslock, na seva inaitwa kwa urahisi nfs. Kuhusu nfs-ya kawaida Tovuti ya debian inatuambia yafuatayo: faili zilizoshirikiwa za mteja na seva ya NFS, kifurushi hiki lazima kisakinishwe kwenye mashine ambayo itafanya kazi kama mteja wa NFS au seva.

Kifurushi kinajumuisha programu: lockd, statd, showmount, nfsstat, gssd na idmapd. Kwa kutazama yaliyomo kwenye hati ya kuanza /etc/init.d/nfs-common unaweza kufuatilia mlolongo ufuatao inafanya kazi: hati hukagua uwepo wa faili ya binary inayoweza kutekelezwa /sbin/rpc.statd, hukagua uwepo katika faili /etc/default/nfs-common, /etc/fstab na /etc/exports ya vipengele vinavyohitaji kuendeshwa. pepo idmapd Na gssd, huanza daemon /sbin/rpc.statd, kisha kabla ya kuanza /usr/sbin/rpc.idmapd na /usr/sbin/rpc.gssd hukagua uwepo wa utekelezaji huu. faili za binary, basi kwa pepo /usr/sbin/rpc.idmapd huangalia uwepo wa moduli za kernel sunrpc, nfs na nfsd, na vile vile usaidizi wa mfumo wa faili wa rpc_pipefs kwenye kernel (kwa maneno mengine, uwepo wake kwenye /proc/ faili za mifumo), ikiwa kila kitu kimefanikiwa, inazindua /usr/sbin/rpc.idmapd. Zaidi ya hayo, kwa pepo /usr/sbin/rpc.gssd huangalia moduli ya rpcsec_gss_krb5 kernel na kuanza pepo.

Ukitazama yaliyomo Hati ya kuanzisha seva ya NFS kwenye Debian (/etc/init.d/nfs-kernel-server), basi unaweza kufuata mlolongo ufuatao: mwanzoni, hati hukagua uwepo wa /etc/exports faili, uwepo wa moduli ya nfsd kernel, uwepo wa usaidizi wa mfumo wa faili wa NFS kwenye kernel ya Linux (maneno mengine kwenye /proc/filesystems faili), ikiwa kila kitu kiko mahali, basi pepo huanza. /usr/sbin/rpc.nfsd, kisha huangalia ikiwa parameta ya NEED_SVCGSSD imewekwa (iliyowekwa kwenye faili ya chaguzi za seva /etc/default/nfs-kernel-server) na, ikiwa imewekwa, huanza pepo. /usr/sbin/rpc.svcgssd, wa mwisho kuzindua pepo /usr/sbin/rpc.mountd. Kutoka ya hati hii ni wazi kwamba Uendeshaji wa seva ya NFS inajumuisha mapepo rpc.nfsd, rpc.mountd na ikiwa uthibitishaji wa Kerberos unatumiwa, basi pepo rcp.svcgssd. Katika kofia nyekundu, pepo rpc.rquotad na nfslogd bado wanaendesha (Kwa sababu fulani katika Debian sikupata habari kuhusu pepo hii na sababu za kutokuwepo kwake, inaonekana ilifutwa ...).

Kutokana na hili inakuwa wazi kuwa Seva ya Mfumo wa Faili ya Mtandao ina michakato ifuatayo (soma - pepo), iliyoko katika saraka za /sbin na /usr/sbin:

  • rpc.statd- Ufuatiliaji usiowezekana wa hali ya mtandao (aka Network Status Monitor, aka NSM). Inakuruhusu kufuta kwa usahihi kufuli baada ya ajali / kuwasha tena. Ili kuarifu kuhusu ukiukaji, tumia programu ya /usr/sbin/sm-notify. Imp ya statd inafanya kazi kwenye seva na wateja. Hapo awali, seva hii ilihitajika kwa rpc.lockd kufanya kazi, lakini kernel sasa inawajibika kwa kufunga (kumbuka: ikiwa sijakosea #image.jpg). (Mpango wa RPC 100 elfu 20 moja na 100 elfu 20 nne - katika matoleo mapya)
  • rpc.imefungwa- Lockd lock imp (aka meneja wa kufuli wa NFS (NLM)) hushughulikia maombi ya kufuli faili. Imp ya kuzuia inafanya kazi kwenye seva na wateja. Wateja wanaomba kufungwa kwa faili, na seva huruhusu. (iliyopitwa na wakati na haitumiki katika usambazaji mpya kama pepo. Kazi zake katika usambazaji wa kisasa (yenye punje ya zaidi ya 2.2.18) hufanywa na punje, kwa usahihi zaidi na moduli ya kernel (iliyofungwa).) (Mpango wa RPC 100024)
  • rpc.nfsd- Pepo kuu ya seva ya NFS ni nfsd (katika matoleo mapya wakati mwingine huitwa nfsd4) Imp hii hutumikia maombi ya mteja wa NFS. Kigezo cha RPCNFSDCOUNT katika faili ya /etc/default/nfs-kernel-server kwenye Debian na NFSDCOUNT katika faili ya /etc/sysconfig/nfs kwenye RedHat huamua idadi ya mashetani kuendesha (chaguo-msingi ni 8). (Mpango wa RPC 100003)
  • rpc.iliyowekwa- Bila kupachika NFS iliyopachikwa hushughulikia maombi ya mteja ya kuweka saraka. Imp iliyowekwa hufanya kazi kwenye seva za NFS. (Mpango wa RPC 100005)
  • rpc.idmapd- IDmapd ya NFSv4 kwenye seva hubadilisha uid/gid ya ndani ya watumiaji kuwa umbizo la jina@kikoa, na huduma kwenye mteja inabadilisha majina ya mtumiaji/kikundi cha aina ya jina@kikoa kuwa vitambulishi vya mtumiaji na kikundi cha ndani (kulingana na usanidi. faili /etc/idmapd.conf, maelezo zaidi katika man idmapd.conf):.
  • Kwa kuongeza, matoleo ya zamani ya NFS yalitumia imps: nfslogd- Shughuli ya kumbukumbu za kumbukumbu za NFS kwa mifumo ya faili iliyosafirishwa, inafanya kazi kwenye seva za NFS na rquotad- Seva ya sehemu ya mbali hutoa taarifa kuhusu upendeleo wa watumiaji katika mifumo ya faili ya mbali, inaweza kufanya kazi kwenye seva na wateja. (Mpango wa RPC 100011)

Katika NFSv4, unapotumia Kerberos, mapepo yanazinduliwa zaidi:

  • rpc.gssd- Bes NFSv4 hutoa mbinu za uthibitishaji kupitia GSS-API (uthibitishaji wa Kerberos). Inafanya kazi kwa mteja na seva.
  • rpc.svcgssd- seva ya NFSv4 imp, ambayo hutoa uthibitishaji wa mteja wa upande wa seva.

itifaki ya portmap na RPC (Sun RPC)

Kando na vifurushi vilivyoonyeshwa hapo juu, NFSv2 na v3 zinahitaji kifurushi cha ziada ramani ya bandari(imebadilishwa kwa usambazaji mpya zaidi na jina lake kuwa rpcbind) Kifurushi hiki kwa kawaida husakinishwa kiotomatiki na NFS kama kifurushi tegemezi na hutekeleza utendakazi wa seva ya RPC, kwa maneno mengine, inawajibika kwa ugawaji wa nguvu wa bandari kwa baadhi ya huduma zilizosajiliwa katika seva ya RPC.

Kwa kweli, kwa mujibu wa nyaraka, hii ni seva inayobadilisha nambari za programu za RPC (Remote Procedure Call) kuwa nambari za bandari za TCP/UDP. portmap hufanya kazi kwenye vyombo kadhaa: simu au maombi ya RPC, bandari za TCP/UDP, toleo la itifaki (tcp au udp), nambari za programu na matoleo ya programu. Pepo ya portmap imezinduliwa na hati /etc/init.d/portmap kabla ya kuanza kwa huduma za NFS.

Kwa kifupi, kazi ya seva ya RPC (Simu ya Utaratibu wa Mbali) ni kuchakata simu za RPC (kinachojulikana kama taratibu za RPC) kutoka kwa michakato ya ndani na ya mbali.

Kwa kutumia simu za RPC, huduma hujisajili au kujiondoa kwenye/kutoka kwa ramani ya bandari (aka portmapper, aka portmapper, aka, katika matoleo mapya, rpcbind), na wateja hutumia simu za RPC kutuma maombi kwa msimamizi wa bandari kupokea taarifa muhimu. Majina ya kirafiki ya huduma za programu na nambari zao zinazolingana zimefafanuliwa kwenye faili ya /etc/rpc.

Kama huduma yoyote ilituma ombi linalolingana na kujiandikisha kwenye seva ya RPC kwenye ramani ya bandari, seva ya RPC inapeana, ramani kwa huduma hiyo bandari za TCP na UDP ambazo huduma ilianza na kuhifadhi kwenye kernel habari inayolingana juu ya huduma inayoendesha. (jina), nambari ya kipekee huduma (kwa mujibu wa /etc/rpc), kuhusu itifaki na bandari ambayo huduma inafanya kazi na kuhusu toleo la huduma na hutoa taarifa iliyoonyeshwa kwa wateja juu ya ombi. Kibadilishaji cha bandari yenyewe kina nambari ya programu (100000), nambari ya toleo la 2, bandari ya TCP 100 kumi na moja na bandari ya UDP 111.

Hapo juu, wakati wa kuonyesha muundo wa mapepo ya seva ya NFS, nilionyesha nambari kuu za programu ya RPC. Labda nilikuchanganya kidogo na aya hii, kwa hivyo nitasema kifungu kikuu ambacho kinapaswa kuiweka wazi: kazi kuu ya ramani ya bandari ni kurudi, kwa ombi la mteja ambaye alitoa nambari ya programu ya RPC (au mpango wa RPC). nambari) na toleo kwake (mteja) bandari ambayo programu iliyoombwa inaendesha. Ipasavyo, ikiwa mteja anahitaji kufikia RPC iliyo na nambari maalum ya programu, lazima kwanza awasiliane na mchakato wa portmap kwenye mashine ya seva na atafute nambari ya bandari ya mawasiliano na huduma ya RPC inayohitaji.

Uendeshaji wa seva ya RPC inaweza kuwakilishwa na hatua zifuatazo:

Ili kupata taarifa kutoka kwa seva ya RPC, tumia matumizi ya rpcinfo. Unapobainisha sifa ya -p mwenyeji, programu inaonyesha orodha ya programu zote za RPC zilizosajiliwa kwenye seva pangishi. Bila kubainisha mwenyeji, programu itaonyesha huduma kwenye localhost. Mfano:

ARCHIV ~ # rpcinfo -p prog-ma vers proto port elfu 100 Tcp mbili 100 kumi na moja portmapper 100 elfu mbili udp 100 kumi na moja portmapper 100 elfu 20 nne Udp 50 elfu tisa mia nne 50 hadhi moja 100 elfu 20 elfu nne mia nane tcp 70 hadhi mbili elfu 100 20 moja udp 40 elfu nne mia tatu 10 nlockmgr elfu 100 20 moja tatu udp 40 elfu nne mia tatu 10 nlockmgr elfu 100 20 moja udp nne 40 elfu nne mia tatu 10 nlockmgr elfu 100 tcp moja 40 moja 40 elfu mia nane 50 moja nlockmgr 100 elfu 20 moja Tatu tcp 40 elfu nne mia nane 50 moja nlockmgr 100 elfu 20 moja Nne tcp 40 elfu nne mia nane 50 moja nlockmgr 100 elfu tatu Tcp Elfu mbili 40 tisa nfs elfu 100 tcp elfu tatu tcp elfu tatu elfu 40 tisa nfs 100 elfu tatu Nne tcp Elfu mbili 40 tisa nfs 100 elfu tatu Udp Elfu mbili 40 tisa nfs 100 elfu tatu tatu udp Elfu mbili 40 tisa nfs 100 elfu tatu Nne udp Elfu mbili 40 tisa nfs 100 elfu 50 elfu moja mia tatu 6 imepanda elfu 100 5 Tcp moja 40 elfu moja mia nne 5 imepanda elfu 100 5 Udp mbili 50 elfu moja mia tatu 6 imepanda 100 elfu 5 Tcp mbili 40 elfu moja mia nne 5 imepanda 100 elfu 5 Udp tatu 50 elfu moja mia tatu 6 iliyopanda 100 elfu 5 Tatu tcp 40 elfu moja mia nne 5 iliyopanda

Kama unavyoona, rpcinfo inaonyesha (katika safu wima kutoka kushoto kwenda kulia) nambari ya programu iliyosajiliwa, toleo, itifaki, bandari na jina.

Kwa kutumia rpcinfo unaweza kuondoa usajili wa programu au kupata taarifa kuhusu huduma mahususi ya RPC (chaguo zaidi katika man rpcinfo). Kama unaweza kuona, toleo la portmapper pepo mbili zimesajiliwa kwenye udp na bandari za tcp, toleo la rpc.statd Moja kwenye bandari za udp na tcp, matoleo ya msimamizi wa kufuli ya NFS 1,3,4, matoleo ya seva yasiyo ya NFS 2,3,4, pamoja na matoleo yasiyopachika 1,2,3.

Seva ya NFS (kwa usahihi zaidi, rpc.nfsd) inapokea maombi kutoka kwa mteja kwa namna ya datagrams za UDP kwenye bandari 2049. Licha ya ukweli kwamba NFS inafanya kazi na msuluhishi wa bandari, ambayo inaruhusu seva kutumia bandari zilizowekwa kwa nguvu, bandari ya UDP. Elfu mbili 40 tisa wamepewa NFS katika utekelezaji mwingi.

Uendeshaji wa Itifaki ya Mfumo wa Faili za Mtandao

Inaweka NFS ya mbali

Mchakato wa kuweka mfumo wa faili wa NFS wa mbali unaweza kuwakilishwa na mchoro ufuatao:

Maelezo ya itifaki ya NFS wakati wa kuweka saraka ya mbali:

  1. Seva ya RPC inazinduliwa kwenye seva na mteja (kawaida huwashwa), inayohudumiwa na mchakato wa portmapper na kusajiliwa kwenye tcp/111 na udp/111 bandari.
  2. Huduma zinazinduliwa (rpc.nfsd, rpc.statd, nk), ambazo zimesajiliwa kwenye seva ya RPC na kusajiliwa kwenye bandari za mtandao za random (ikiwa bandari ya tuli haijainishwa katika mipangilio ya huduma).
  3. amri ya kuweka kwenye kompyuta ya mteja hutuma kernel ombi la kuweka saraka ya mtandao inayoonyesha aina ya mfumo wa faili, mwenyeji na kivitendo saraka, kernel hutuma na kutoa ombi la RPC kwa mchakato wa portmap kwenye seva ya NFS kwenye bandari udp/ 111 (ikiwa kazi ya kufanya kazi kupitia tcp haijawekwa kwenye mteja)
  4. Seva ya NFS kernel inaulizia RPC juu ya uwepo wa rpc.mountd imp na kurudisha kwa kernel ya mteja mlango wa mtandao ambao imp inaendeshwa.
  5. mount hutuma ombi la RPC kwenye mlango ambao rpc.mountd inaendeshwa. Katika hatua hii, seva ya NFS inaweza kuhalalisha mteja kulingana na anwani yake ya IP na nambari ya bandari ili kuona ikiwa mteja anaweza kupachika mfumo wa faili ulioteuliwa.
  6. Mountless inarudisha maelezo ya mfumo wa faili ulioombwa.
  7. Amri ya kupachika ya mteja hutoa simu ya mfumo wa kupachika ili kuhusisha mpini wa faili unaopatikana katika hatua ya 5 na sehemu ya kupachika ya ndani kwenye seva pangishi ya mteja. Ncha ya faili imehifadhiwa katika msimbo wa mteja wa NFS, na kuanzia sasa ufikiaji wowote wa michakato ya mtumiaji kwa faili kwenye mfumo wa faili wa seva utatumia mpini wa faili kama mahali pa kuanzia.

Ubadilishanaji wa data kati ya mteja na seva ya NFS

Ufikiaji wa kawaida wa mfumo wa faili wa mbali unaweza kuelezewa na mpango ufuatao:

Maelezo ya mchakato wa kupata faili iliyo kwenye seva ya NFS:

Kuanzisha seva ya NFS

Urekebishaji wa Seva kwa ujumla inajumuisha kubainisha saraka za ndani zinazoruhusiwa kuwekwa mifumo ya mbali kwenye faili /etc/exports. Kitendo hiki kinaitwa safu ya saraka ya usafirishaji. Vyanzo vikuu vya habari kuhusu saraka zilizosafirishwa ni faili zifuatazo:

  • /etc/exports- faili kuu ya usanidi ambayo huhifadhi usanidi wa saraka zilizosafirishwa. Inatumika wakati wa kuanzisha NFS na shirika la usafirishaji.
  • /var/lib/nfs/xtab- ina orodha ya saraka zilizowekwa na wateja wa mbali. Inatumiwa na rpc.mountd imp mteja anapojaribu kuweka safu (rekodi ya kupachika imeundwa).
  • /var/lib/nfs/etab- orodha ya saraka ambazo zinaweza kuwekwa na mifumo ya mbali, inayoonyesha vipengele vyote vya saraka zilizosafirishwa.
  • /var/lib/nfs/rmtab- orodha ya saraka ambazo hazijasafirishwa kwa sasa.
  • /proc/fs/nfsd- mfumo maalum wa faili (kernel 2.6) kwa ajili ya kusimamia seva ya NFS.
    • mauzo ya nje- orodha ya viwango vya kazi vilivyosafirishwa na wateja ambao walisafirishwa kwao, pamoja na mali. Kernel hupata habari hii kutoka /var/lib/nfs/xtab.
    • nyuzi- ina idadi ya nyuzi (pia inaweza kubadilishwa)
    • kwa kutumia filehandle unaweza kupata pointer kwa faili
    • na nk...
  • /proc/net/rpc- ina takwimu "mbichi", ambazo zinaweza kupatikana kwa kutumia nfsstat, pamoja na cache mbalimbali.
  • /var/run/portmap_mapping- habari kuhusu huduma zilizosajiliwa katika RPC

Kumbuka: Kwa ujumla, kwenye mtandao kuna tafsiri nyingi na uundaji wa madhumuni ya faili xtab, etab, rmtab, sijui niamini nani #image.jpg Hata kwenye http://nfs.sourceforge.net/ tafsiri haiko wazi.

Kuanzisha /etc/exports faili

Katika hali ya kawaida, faili ya /etc/exports ndiyo faili pekee inayohitaji kuhaririwa kwa kazi ya seva ya NFS. Faili hii inadhibiti sifa zifuatazo:

  • Wateja wa aina gani inaweza kufikia faili kwenye seva
  • Madaraja gani? saraka kwenye seva zinaweza kufikiwa na kila mteja
  • Majina ya wateja maalum yatakuwaje kuonyeshwa juu majina ya mitaa watumiaji

Haijalishi ni safu gani ya faili ya usafirishaji iliyo na umbizo lifuatalo:

export_point mteja1(kazi) [mteja2(kazi) ...]

Wapi export_point njia kamili ya safu ya saraka iliyosafirishwa, mteja1 - n jina la mteja 1 au zaidi au anwani za IP, zikitenganishwa na nafasi, zinazoruhusiwa kupachikwa export_point. Kazi onyesha sheria za uwekaji kwa mteja zilizoonyeshwa kabla ya chaguzi.

Hapa kuna kawaida usafirishaji wa mfano wa usanidi wa faili:

ARCHIV ~ # paka /etc/exports /archiv1 files(rw,sync) 10.0.0.1(ro,sync) 10.0.230.1/24(ro,sync)

Katika mfano huu, faili za kompyuta na 10.0.0.1 zinaruhusiwa kufikia sehemu ya kutuma /archiv1, wakati faili za seva pangishi zina ufikiaji wa kusoma/kuandika, na mwenyeji 10.0.0.1 na subnet 10.0.230.1/24 wana ufikiaji wa kusoma tu.

Maelezo ya mwenyeji katika /etc/exports yanaruhusiwa katika umbizo lifuatalo:

  • Majina ya nodi mahususi yanafafanuliwa kama faili au faili.DOMAIN.local.
  • Maelezo ya barakoa ya kikoa yametengenezwa kwa umbizo lifuatalo: *DOMAIN.local inajumuisha nodi zote za kikoa cha DOMAIN.local.
  • Nyanda ndogo zimebainishwa kama anwani ya IP/jozi za barakoa. Kwa mfano: 10.0.0.0/255.255.255.0 inajumuisha nodes zote ambazo anwani zake huanza na 10.0.0.
  • Kubainisha jina la kikundi cha mtandao cha @myclients ambacho kinaweza kufikia rasilimali (wakati wa kutumia seva ya NIS)

Utendakazi wa jumla wa kusafirisha safu za saraka

Vitendo vifuatavyo vya kawaida vinatumika katika faili ya usafirishaji:(kwanza, kazi zinazotumiwa na chaguo-msingi katika mifumo mingi zinaonyeshwa, kwenye mabano - isiyo ya chaguo-msingi):

  • auth_nlm (no_auth_nlm) au kufuli_salama (kufuli_salama)- inabainisha kuwa seva inapaswa kutafuta uthibitishaji wa maombi ya kufuli (kwa kutumia itifaki ya Meneja wa NFS Lock).
  • nohide (ficha)- ikiwa seva itasafirisha safu mbili za saraka, wakati moja imewekwa (imewekwa) ndani ya nyingine. Mteja lazima, bila shaka, aweke daraja la pili (mtoto), vinginevyo sehemu ya kupanda ya uongozi wa mtoto itaonekana kama saraka tupu. Chaguo za kukokotoa za nohide husababisha safu ya saraka ya 2 bila kupachika kidogo. (kumbuka: I chaguo hili Sikuweza kuifanya ifanye kazi ...)
  • ro(rw)- Inaruhusu tu kusoma (kuandika) maombi. (Mwishowe, ikiwa inaweza kusoma / kuandikwa au la imedhamiriwa kulingana na haki za mfumo wa faili, na haya yote, seva haiwezi kutofautisha ombi la kusoma faili kutoka kwa ombi la kutekeleza, kwa hivyo inaruhusu kusoma ikiwa mtumiaji amesoma au kutekeleza haki.)
  • salama (si salama)- maombi kwamba maombi ya NFS yatoke kwenye bandari salama (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (no_subtree_check)- Ikiwa orodha ndogo ya mfumo wa faili imetumwa, lakini si mfumo mzima wa faili, seva hukagua ikiwa faili iliyoombwa iko katika saraka ndogo iliyosafirishwa. Kuzima uthibitishaji kunapunguza usalama lakini huongeza kasi ya uhamishaji data.
  • kusawazisha (async)- inabainisha kuwa seva inapaswa kujibu maombi tu baada ya kuandika usanidi uliofanywa na maombi hayo kwa diski. Kitendaji cha async huambia seva isingojee habari kuandikwa kwa diski, ambayo huongeza utendaji lakini inapunguza kuegemea, kwa sababu. Katika tukio la kuvunja uhusiano au kushindwa kwa vifaa, habari inaweza kupotea.
  • kuchelewa (hakuna_kuchelewa)- huamuru seva kuchelewesha kutekeleza maombi ya uandishi ikiwa ombi la uandishi linalofuata linasubiri, kuandika data katika vizuizi vikubwa. Hii inaboresha utendakazi wakati wa kutuma foleni kubwa za amri za uandishi. no_wdelay inabainisha kutochelewesha utekelezaji wa amri ya kuandika, ambayo inaweza kuwa muhimu ikiwa seva itapokea idadi isiyo na kikomo ya amri zisizohusiana.

Hamisha viungo vya ishara na faili za kifaa. Wakati wa kusafirisha safu ya saraka ambayo ina viungo vya ishara, kitu cha kumbukumbu lazima kiweze kupatikana kwa mfumo wa mteja (wa mbali), kwa maneno mengine, moja ya sheria zifuatazo lazima zifikiwe:

  • kitu cha kiungo lazima kiwepo kwenye mfumo wa faili wa mteja
  • haja ya kuuza nje na kuweka kitu cha kumbukumbu

Faili ya kifaa inahusu kiolesura Kernels za Linux. Unapohamisha faili ya kifaa, kiolesura hiki kinahamishwa. Ikiwa mfumo wa mteja hauna kifaa cha aina sawa, kifaa kilichosafirishwa hakitafanya kazi.

Kwenye mfumo wa mteja, unapoweka vitu vya NFS, unaweza kutumia chaguo la nodev ili faili za kifaa kwenye saraka zilizowekwa hazitumiwi.

Chaguo-msingi za kukokotoa zinaweza kutofautiana kati ya mifumo na zinaweza kupatikana katika /var/lib/nfs/etab. Baada ya kuelezea saraka iliyosafirishwa katika /etc/exports na kuanzisha tena seva ya NFS, vitendaji vyote vilivyokosekana (soma: vitendaji chaguo-msingi) vitaonyeshwa kwenye /var/lib/nfs/etab faili.

Kazi za kuonyesha (kulingana) vitambulisho vya mtumiaji

Kwa ufahamu bora wa yafuatayo, ningekushauri usome makala Kusimamia Watumiaji wa Linux. Kila Mtumiaji wa Linux ina UID yake mwenyewe na GID kuu, ambayo imeelezewa katika faili za /etc/passwd na /etc/group.

Seva ya NFS inadhani kuwa mfumo wa uendeshaji wa seva pangishi ya mbali umethibitisha watumiaji na kuwapa UID na GID sahihi. Kuhamisha faili huwapa watumiaji wa mfumo wa mteja ufikiaji sawa wa faili hizo kana kwamba zimeingia moja kwa moja kwenye seva. Ipasavyo, mteja wa NFS anapotuma ombi kwa seva, seva hutumia UID na GID kutambua mtumiaji kwenye mfumo wa ndani, ambayo inaweza kusababisha shida kadhaa:


Vipengele vifuatavyo vinaweka sheria za kuonyesha watumiaji wa mbali katika za ndani:

Mfano wa kutumia faili ya ramani ya mtumiaji:

ARCHIV ~ # paka /etc/file_maps_users # Kuchora ramani ya mtumiaji # maoni ya ndani ya kijijini uid 0-50 Watumiaji elfu moja na wawili # wa kuchora ramani wenye UID ya mbali 0-50 hadi UID ya ndani gid elfu moja na mbili 0-50 elfu moja mbili # watumiaji wa ramani wenye /span GID ya mbali 0-50 hadi GID 1002 ya ndani

Usimamizi wa Seva ya NFS

Seva ya NFS inasimamiwa kwa kutumia huduma zifuatazo:

  • nfsstat
  • showmsecure (insecure)mount
  • usafirishaji nje

nfsstat: takwimu za NFS na RPC

Huduma ya nfsstat hukuruhusu kutazama takwimu za seva za RPC na NFS. Kazi za amri zinaweza kupatikana katika man nfsstat.

showmount: onyesha habari kuhusu hali ya NFS

showmount shirika maswali rpc.mountd kwenye seva pangishi ya mbali kuhusu mifumo ya faili zilizopachikwa. Kwa chaguo-msingi, orodha iliyopangwa ya wateja inarudishwa. Funguo:

  • --wote- orodha ya wateja na pointi za mlima huonyeshwa kuonyesha ambapo mteja aliweka saraka. Habari hii inaweza kuwa ya kuaminika.
  • --saraka- orodha ya pointi za mlima huonyeshwa
  • --uza nje- orodha ya mifumo ya faili iliyosafirishwa inatolewa kulingana na imani za nfsd

Unapoendesha showmount bila hoja, maelezo kuhusu mifumo ambayo inaruhusiwa kupachika yatachapishwa kwenye kiweko mtaa makusanyo. Kwa mfano, seva pangishi ya ARCHHIV hutupatia orodha ya saraka zilizohamishwa zilizo na anwani za IP za wapangishi ambazo zinaruhusiwa kuweka mikusanyiko iliyoteuliwa:

FILES ~ # showmount --exports archive Orodha ya kuuza nje kwa ajili ya kumbukumbu: /archiv-big 10.0.0.2 /archiv-small 10.0.0.2

Ukibainisha jina la mpangishi/IP katika hoja, taarifa kuhusu mwenyeji huyu itaonyeshwa:

ARCHIV ~ # showmount files clnt_create: RPC: Mpango haujasajiliwa # ujumbe huu unatuambia kuwa NFSd haifanyi kazi kwenye seva pangishi ya FILES

exportfs: dhibiti saraka zilizosafirishwa

Amri hii hutumikia makusanyo yaliyohamishwa, data katika faili /etc/exports, itakuwa sahihi zaidi kuandika kuwa haitumiki, lakini inasawazisha na faili /var/lib/nfs/xtab na huondoa zile ambazo hazipo kutoka kwa xtab. exportfs hufanywa wakati wa kuendesha pepo ya nfsd na -r hoja. Huduma ya usafirishaji katika modi ya kernel 2.6 huzungumza na rpc.mountd imp kupitia faili kwenye saraka ya /var/lib/nfs/ na haizungumzi na kernel moja kwa moja. Bila sifa, huonyesha orodha ya mifumo ya faili inayosafirishwa kwa sasa.

mali ya exportfs:

  • [mteja: directory-name] - ongeza au ondoa mfumo wa faili ulioteuliwa kwa mteja aliyeteuliwa)
  • -v - onyesha habari zaidi
  • -r - kuuza nje tena makusanyo yote (sawazisha /etc/exports na /var/lib/nfs/xtab)
  • -u - ondoa kwenye orodha ya zilizosafirishwa
  • -a - ongeza au ondoa mifumo yote ya faili
  • -o - vitendaji vilivyotenganishwa na koma (sawa na chaguzi zinazotumika katika /etc/exports; yaani unaweza kubadilisha kazi za mifumo ya faili iliyowekwa tayari)
  • -i - usitumie /etc/exports wakati wa kuongeza, tu mali ya mstari wa amri ya sasa
  • -f - kuweka upya orodha ya mifumo iliyosafirishwa katika kernel 2.6;

Mteja wa NFS

Kabla ya kupata faili kwenye mfumo wa faili wa mbali, mteja lazima weka na kupokea kutoka kwa seva pointer kwake. Mlima wa NFS inaweza kufanyika kwa kutumia weka amri au kutumia mojawapo ya vipachikaji otomatiki vinavyoongezeka (amd, autofs, automount, supermount, superpupermount). Mchakato wa ufungaji unaonyeshwa kikamilifu katika mchoro hapo juu.

Washa Wateja wa NFS hakuna haja ya kuachilia mapepo yoyote, kazi za mteja hutengeneza moduli ya kernel kernel/fs/nfs/nfs.ko, ambayo hutumika wakati wa kuweka mfumo wa faili wa mbali. Mikusanyiko iliyosafirishwa kutoka kwa seva inaweza kusakinishwa kwa mteja kwa njia zifuatazo:

  • kwa mikono kwa kutumia amri ya mlima
  • kiotomatiki kwenye buti, wakati wa kuweka mifumo ya faili iliyoainishwa ndani /etc/fstab
  • kwa kutumia kiotomatiki pepo ya otomatiki

Sitazingatia njia ya 3 na autofs katika nakala hii, kwa sababu ya idadi kubwa ya habari. Labda kutakuwa na maelezo tofauti katika makala zifuatazo.

Kuweka Mfumo wa Faili za Mtandao kwa amri ya kuweka

Mfano wa kutumia amri ya kupachika umewasilishwa kwenye chapisho la Amri za Kudhibiti Kifaa. Hapa nitaangalia mfano wa mount amri ya kuweka mfumo wa faili wa NFS:

FAILI ~ # mount -t nfs archiv:/archiv-small /archivs/archiv-small FAILI ~ # mount -t nfs -o ro archiv:/archiv-big /archivs/archiv-big FAILI ~ # weka ..... .. kumbukumbu:/archiv-ndogo kwenye /archivs/archiv-ndogo aina nfs (rw,addr=10.0.0.6) archiv:/archiv-big on /archivs/archiv-big nfs (ro,addr=10.0.0.6)

Amri ya 1 huweka saraka iliyosafirishwa /archiv-ndogo kwenye seva ya kumbukumbu hadi mahali pa kupachika /archivs/archiv-small na chaguo-msingi (kwa maneno mengine, soma-andika).

Ingawa amri ya mlima katika usambazaji wa hivi karibuni inaweza kufikiria juu ya aina gani ya mfumo wa faili inatumika hata bila kutaja aina; Walakini, ni bora kutaja -t nfs paramu. Amri ya 2 huweka saraka iliyosafirishwa /archiv-big kwenye seva ya kumbukumbu hadi saraka ya ndani /archivs/archiv-big na chaguo la kusoma-pekee (ro). amri ya mlima bila vipengele hutuonyesha wazi matokeo ya kuweka. Mbali na chaguo za kukokotoa za kusoma pekee (ro), zingine zinaweza kubainishwa kazi kuu wakati wa kuweka NFS:

  • nosuid - Kazi hii inakataza utekelezaji wa programu za setuid kutoka kwa saraka iliyowekwa.
  • nodev(hakuna kifaa - si kifaa) - Chaguo hili la kukokotoa linakataza matumizi ya herufi na kuzuia faili maalum kama vifaa.
  • lock (nolock)- Inaruhusu kufungwa kwa NFS (chaguo-msingi). nolock huzima ufungaji wa NFS (haifanyiki kufuli) na inafaa wakati wa kufanya kazi na seva za zamani ambazo haziauni ufungaji wa NFS.
  • mounthost=jina- Jina la mwenyeji ambaye NFS mountless inaendesha - imewekwa.
  • mountport=n - Bandari inayotumiwa na imp iliyowekwa.
  • bandari=n- lango linalotumika kuunganisha kwenye seva ya NFS (chaguo-msingi ni 2049 ikiwa rpc.nfsd haijasajiliwa kwenye seva ya RPC). Ikiwa n=0 (chaguo-msingi), basi NFS hutuma ombi kwa portmap kwenye seva ili kupata lango.
  • rsize=n(soma ukubwa wa kuzuia - soma ukubwa wa kuzuia) - Idadi ya byte zilizosomwa kwa wakati mmoja kutoka kwa seva ya NFS. Kawaida - 4096.
  • wsize=n(andika ukubwa wa kuzuia - andika ukubwa wa kuzuia) - Idadi ya byte iliyoandikwa kwa wakati kwa seva ya NFS. Kawaida - 4096.
  • tcp au udp- Ili kuweka NFS, tumia itifaki ya TCP au UDP, mtawaliwa.
  • bg- Ukipoteza ufikiaji wa seva, rudia majaribio chinichini ili usisumbue mchakato wa kuwasha mfumo.
  • fg- Ukipoteza ufikiaji wa seva, rudia majaribio katika hali ya kipaumbele. Chaguo hili linaweza kuzuia mchakato wa kuwasha mfumo kwa kurudia majaribio ya kuweka. Kwa sababu hii, parameter ya fg hutumiwa hasa kwa utatuzi.

Kazi zinazoathiri uakibishaji wa sifa kwenye milipuko ya NFS

Sifa za faili, iliyohifadhiwa kwenye inod ( ingizo), kama vile wakati wa kurekebisha, saizi, viungo ngumu, mmiliki, kwa kawaida hubadilika mara kwa mara kwa faili za kawaida na hata mara chache zaidi kwa saraka. Programu nyingi, kama vile ls, hufikia faili zinazosomwa tu na hazibadilishi sifa za faili au yaliyomo, lakini hupoteza rasilimali za mfumo kwenye utendakazi ghali wa mtandao.

Ili kuepuka kupoteza rasilimali zisizohitajika, unaweza cache sifa hizi. Kernel hutumia muda wa urekebishaji wa faili ili kubaini ikiwa kache imepitwa na wakati kwa kulinganisha muda wa urekebishaji kwenye kache na muda wa urekebishaji wa faili yenyewe. Akiba ya sifa husasishwa mara kwa mara kwa mujibu wa vigezo hivi:

  • ac (noac)(attrebute cache - attribute caching) - Inaruhusu uhifadhi wa sifa (kwa chaguo-msingi). Ingawa noac inapunguza kasi ya seva, inaepuka kudumaa kwa sifa wakati wateja wengi wanaandika kwa bidii habari kwa uongozi wa kawaida.
  • acdirmax=n(upeo wa faili ya saraka ya kashe - kuakibisha sifa ya juu kwa faili ya saraka) - Nai kiasi kikubwa sekunde ambazo NFS inasubiri kabla ya kusasisha sifa za saraka (chaguo-msingi: Sekunde sitini)
  • acdirmin=n(faili ya saraka ya kache ya sifa ya chini - uhifadhi wa sifa wa chini kwa faili ya saraka) - Idadi ndogo ya sekunde ambazo NFS husubiri kabla ya kusasisha sifa za saraka (chaguo-msingi 30 sec.)
  • acregmax=n(akiba ya kashe ya kawaida ya faili - upeo wa uakibishaji wa sifa kwa faili ya kawaida) - Idadi ya juu zaidi ya sekunde ambazo NFS husubiri kabla ya kusasisha sifa za faili ya kawaida (chaguo-msingi: Sekunde sitini)
  • acregmin=n(sifa ya kashe ya kawaida ya faili - kiwango cha chini cha uhifadhi wa sifa kwa faili ya kawaida) - Idadi ndogo ya sekunde ambazo NFS hungoja kabla ya kusasisha sifa za faili ya kawaida (sekunde tatu chaguomsingi)
  • acttimeo=n(sifa kuisha kwa akiba - kuisha kwa akiba ya sifa) - Hubadilisha maadili kwa chaguzi zote zilizo hapo juu. Ikiwa acttimeo haijabainishwa, basi maadili yaliyo hapo juu huchukua maadili ya msingi.

Hitilafu za NFS Kushughulikia

Vipengele vifuatavyo vinadhibiti kile ambacho NFS hufanya wakati hakuna jibu kutoka kwa seva au makosa ya I/O yanapotokea:

  • fg(bg)(mbele - mbele, usuli - usuli) - Unda vichunguzi vya kupachika vya NFS vilivyoshindwa katika mandhari ya mbele/ usuli.
  • ngumu (laini)- huonyesha ujumbe "seva haijibu" kwenye kiweko wakati muda wa kuisha umefikiwa na kuendelea na majaribio ya kupachika. Pamoja na kazi hii laini- wakati wa kuisha, huripoti hitilafu ya I/O kwa programu iliyoita operesheni. (inapendekezwa kutotumia chaguo laini)
  • nointr (intr)(hakuna kukatiza - usikatishe) - Hairuhusu ishara kukatiza shughuli za faili katika safu ya saraka iliyowekwa ngumu wakati muda mwingi wa kuisha umefikiwa. intr- huwezesha usumbufu.
  • retrans=n(thamani ya utumaji upya) - Baada ya n kuisha kwa muda kidogo, NFS hutoa muda mwingi wa kuisha (chaguo-msingi 3). Muda mwingi wa kuisha husimamisha utendakazi au kuchapisha ujumbe wa "seva haijibu" kwa kiweko, kulingana na kama kitendakazi kigumu/laini kimebainishwa.
  • jaribu tena=n(jaribu tena thamani) - Idadi ya dakika huduma ya NFS itarudia shughuli za kupachika kabla ya kuacha (chaguo-msingi 10000).
  • muda=n(thamani ya muda umekwisha) - Idadi ya 10 ya sekunde ambayo huduma ya NFS husubiri kabla ya kutuma tena iwapo RPC itaisha au muda umeisha kidogo (chaguomsingi 7). Thamani hii huongezeka kwa kila muda kuisha hadi thamani kubwa zaidi ya sekunde Sitini au hadi muda mwingi utokee. Ikiwa mtandao una shughuli nyingi, seva inafanya kazi polepole, au ombi linapitia vipanga njia au lango nyingi, kuongeza thamani hii kunaweza kuboresha utendakazi.

Weka NFS otomatiki kwenye buti (maelezo ya mifumo ya faili katika /etc/fstab)

Niligusa maelezo ya /etc/fstab faili kwenye nakala inayolingana. Katika mfano wa sasa, nitaangalia mifano kadhaa ya kuweka mifumo ya faili ya NFS na maelezo ya chaguzi:

FAILI ~ # paka /etc/fstab | grep nfs archiv:/archiv-small /archivs/archiv-small nfs rw,timeo=4,rsize=16384,wsize=16384 Null Null nfs-server:/archiv-big /archivs/orchiv-big nfs=50time, ,ngumu,fg Sifuri 0

Mfano wa 1 huweka mfumo wa faili /archiv-small kutoka kwa mwenyeji wa kumbukumbu hadi sehemu ya kupachika /archivs/archiv-small, aina ya mfumo wa faili imebainishwa kama nfs (lazima ibainishwe kila wakati kwa aina hii), mfumo wa faili umewekwa na chaguo la kusoma-kuandika (rw) .

Kipangishi cha kumbukumbu kimeunganishwa kupitia chaneli ya ndani ya haraka, kwa hivyo ili kuongeza utendaji, kigezo cha timeo kimepunguzwa na maadili ya rsize na wsize yameongezwa kwa kiasi kikubwa. Sehemu za programu za kutupa na fsck zimewekwa hadi sifuri ili programu hizi zisitumie mfumo wa faili uliowekwa na NFS.

Mfano wa 2 huweka /archiv-big mfumo wa faili kutoka kwa seva pangishi ya nfs. Kwa sababu Tumeunganishwa na mwenyeji wa seva ya nfs kupitia muunganisho wa polepole, parameta ya timeo imeongezeka hadi sekunde 5 (50 10th ya sekunde), na paramu ngumu pia imewekwa kwa bidii ili NFS iendelee kuweka tena mfumo wa faili baada ya muda mrefu. timeout, fg parameter pia imewekwa, ili wakati boti za mfumo na seva ya nfs-server haipatikani, haina kufungia.

Kabla ya kuhifadhi usanidi katika /etc/fstab, hakikisha kujaribu kuweka kwa mikono na uhakikishe kuwa kila kitu kinafanya kazi !!!

Utendaji ulioboreshwa wa NFS

Utendaji wa NFS unaweza kuathiriwa na mambo kadhaa, hasa wakati wa kuendesha miunganisho ya polepole. Wakati wa kufanya kazi na viunganisho vya polepole na vilivyojaa sana, ni bora kutumia parameter ngumu ili kuisha kwa muda kusisababisha programu kuacha kufanya kazi. Lakini unahitaji kufikiria juu ya nini ikiwa utaweka mfumo wa faili kupitia NFS na paramu ngumu kupitia fstab, na mwenyeji wa mbali inageuka kuwa haipatikani, mfumo utafungia wakati wa kupakia.

Pia, mojawapo ya njia rahisi zaidi za kuongeza utendaji wa NFS ni kuongeza idadi ya baiti zinazohamishwa kwa wakati mmoja. Ukubwa wa baiti elfu nne tisini na sita ni ndogo sana kwa miunganisho ya kisasa ya haraka, kuongeza thamani hii hadi elfu Nane 100 tisini na mbili au zaidi inaweza kupatikana kwa majaribio ili kupata kasi bora zaidi.

Pia, mtu haipaswi kupoteza kazi za kuisha. NFS husubiri jibu la uhamishaji data ndani ya muda uliobainishwa katika kipengele cha kukokotoa cha timeo; ikiwa jibu halipokewi ndani ya muda huu, basi uhamisho unaorudiwa hufanywa.

Lakini kwenye miunganisho yenye shughuli nyingi na polepole, wakati huu unaweza kuwa chini ya muda wa kujibu wa seva na uwezo wa chaneli ya mawasiliano, hivyo kusababisha utumaji upya usiohitajika ambao unapunguza kasi ya kazi. Kwa chaguo-msingi, timeo ni sekunde 0.7 (milliseconds 700). baada ya kukosa jibu kwa ms mia Saba, seva itatuma tena na mara mbili ya muda wa kusubiri hadi sekunde 1.4, kuongeza muda kutaendelea hadi thamani ya juu ya sekunde Sitini. Ifuatayo, kulingana na parameter ngumu / laini, hatua fulani itatokea (tazama hapo juu).

Unaweza kuchagua saa bora zaidi kwa thamani maalum ya pakiti iliyopitishwa (thamani za rsize/wsize) kwa kutumia amri ya ping:

FILES ~ # ping -s 30 elfu mbili mia saba sitini na nane archiv PING archiv.DOMAIN.local (10.0.0.6) 32768(32796) bytes za data. 30 elfu mbili mia saba 70 6 byte kutoka archiv.domain.local (10.0.0.6): icmp_req=1 ttl=64 time=0.931 ms 30 elfu mbili mia saba 70 6 byte kutoka archiv.domain.local (10.0.0.6): icmp_req= 2 ttl=64 muda=0.958 ms 30 elfu mbili mia saba 70 6 byte kutoka archiv.domain.local (10.0.0.6): icmp_req=3 ttl=64 muda=1.03 ms 30 elfu mbili mia saba 70 6 baiti kutoka arch .domain.local (10.0.0.6): icmp_req=4 ttl=64 time=1.00 ms 30 elfu mbili mia saba 70 6 byte kutoka archiv.domain.local (10.0.0.6): icmp_req=5 ttl=64 time=1.08 ms ^C --- archiv.DOMAIN.takwimu za ping za ndani --- Pakiti 5 zimetumwa, 5 zimepokelewa, 0% kupoteza pakiti, muda 4006ms rtt min/avg/max/mdev = 0.931/1.002/1.083/0.061 ms

Kama unavyoona, wakati wa kutuma pakiti ya saizi 30 elfu mbili mia saba sitini na nane (32Kb), wakati wake wa kusafiri kutoka kwa mteja hadi kwa seva na kurudi nyuma huelea karibu na milisekunde Moja. Ikiwa wakati huu unazidi ms mia mbili, basi unapaswa kufikiri juu ya kuongeza thamani ya timeo ili kuzidi thamani ya kubadilishana kwa mara tatu hadi nne. Kwa mtiririko huo, mtihani huu bora kufanya wakati wa mzigo mkubwa wa mtandao

Inazindua NFS na kusanidi Firewall

Ujumbe huo ulinakiliwa kutoka kwa blogi http://bog.pp.ru/work/NFS.html, ambayo shukrani nyingi !!!

Endesha seva ya NFS, weka, zuia, kiasi na hali na bandari "sahihi" (kwa ngome)

  • ni bora kwanza kushusha rasilimali zote kwa wateja
  • simamisha na uzime rpcidmapd kuanza ikiwa NFSv4 haijapangwa: chkconfig --level mia tatu 40 5 rpcidmapd off service rpcidmapd stop
  • ikiwa ni lazima, ruhusu huduma za portmap, nfs na nfslock kuanza: chkconfig --levels mia tatu 40 5 portmap/rpcbind kwenye chkconfig --levels mia tatu 40 5 nfs kwenye chkconfig --levels mia tatu 40 5 nfslock kwenye
  • ikiwa ni lazima, simamisha huduma za nfslock na nfs, anza portmap/rpcbind, pakua huduma ya moduli nfslock stop service nfs stop service portmap start # service rpcbind start umount /proc/fs/nfsd service rpcidmapd stop rmmod nfsd service autofs stop # mahali fulani baadaye lazima iendeshwe rmmod nfs rmmod nfs_acl rmmod imefungwa
  • fungua bandari katika iptables
    • kwa RPC: UDP/111, TCP/111
    • kwa NFS: UDP/2049, TCP/2049
    • kwa rpc.statd: UDP/4000, TCP/4000
    • kwa imefungwa: UDP/4001, TCP/4001
    • kwa vyema: UDP/4002, TCP/4002
    • kwa rpc.rquota: UDP/4003, TCP/4003
  • kwa seva ya rpc.nfsd, ongeza mstari RPCNFSDARGS="--port 2049" kwa /etc/sysconfig/nfs
  • kwa seva ya mlima, ongeza laini MOUNTD_PORT=4002 kwa /etc/sysconfig/nfs
  • kwa kazi ya rpc.rquota kwa matoleo mapya unahitaji kuongeza mstari RQUOTAD_PORT=4003 hadi /etc/sysconfig/nfs
  • kwa utendakazi wa rpc.rquota ni muhimu kwa matoleo ya zamani (baada ya yote, lazima uwe na kifurushi cha upendeleo 3.08 au mpya zaidi) kuongeza kwa /etc/services rquotad 4003/tcp rquotad 4003/udp
  • itaangalia utoshelevu wa /etc/exports
  • endesha huduma rpc.nfsd, mountd na rpc.rquota (rpcsvcgssd na rpc.idmapd zinazinduliwa kwa wakati mmoja, kama unakumbuka kuzifuta) huduma nfsd start au katika matoleo mapya huduma nfs kuanza
  • kwa seva ya kuzuia kwa mifumo mipya, ongeza mistari LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 hadi /etc/sysconfig/nfs
  • kwa seva ya kufuli kwa mifumo ya zamani, ongeza moja kwa moja kwa /etc/modprobe[.conf]: chaguzi zimefungwa nlm_udpport=4001 nlm_tcpport=4001
  • funga seva ya hali ya rpc.statd kwenye bandari elfu nne (kwa mifumo ya zamani, endesha rpc.statd na kitufe cha -p 4000 ndani /etc/init.d/nfslock) STATD_PORT=4000
  • anzisha huduma iliyofungwa na rpc services.statd nfslock start
  • hakikisha kuwa bandari zote zimefungwa kwa kawaida kwa kutumia "lsof -i -n -P" na "netstat -a -n" (baadhi ya bandari hutumiwa na moduli za kernel ambazo lsof haioni)
  • ikiwa kabla ya "kujenga upya" seva ilitumiwa na wateja na haikuweza kupunguzwa, basi itabidi uanze upya huduma za uwekaji kiotomatiki kwa wateja (am-utils, autofs)

Mfano seva ya NFS na usanidi wa mteja

Usanidi wa seva

Ikiwa ungependa kufanya saraka yako iliyogawanywa ya NFS kuwa ya umma na iweze kuandikwa, unaweza kutumia chaguo la all_squash pamoja na chaguzi za anonuid na anongid. Kwa mfano, kuweka ruhusa kwa mtumiaji "hakuna mtu" katika kikundi "hakuna mtu", unaweza kufanya yafuatayo:

ARCHIV ~ # paka /etc/exports # Mfikio wa kusoma na kuandika kwa mteja kwenye 192.168.0.100, na ufikiaji rw kwa mtumiaji Tisini na tisa na gid Tisini na tisa /files 192.168.0.100(rw,sync,all_squash,anonuid=99, = 99)) # Mfikio wa kusoma na kuandika kwa mteja mnamo 192.168.0.100, na ufikiaji rw kwa mtumiaji Tisini na tisa na gid Tisini na tisa /files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

Hii pia inamaanisha kuwa ikiwa ungependa kuruhusu ufikiaji wa saraka iliyoteuliwa, nobody.nobody lazima awe mmiliki wa saraka iliyoshirikiwa:

# chown -R hakuna mtu.hakuna mtu /faili

Usanidi wa Mteja

Kwenye mteja, unahitaji kuweka saraka ya mbali kwa njia rahisi, kwa mfano na amri ya mlima:

FILES ~ # mount -t nfs jalada:/files /archivs/files

Muhtasari

Phew... Makala imekamilika. Hivi sasa tumesoma Mfumo wa Faili wa Mtandao ni nini na jinsi ya kula, katika makala inayofuata nitajaribu kufanya HOWTO na uthibitishaji wa Kerberos. Natumai nyenzo zilieleweka na zinahitajika.

Nitafurahi kuona nyongeza na maoni yako!

NFS JINSI, nfs.sourceforge, man nfs? man mlima, mtu mauzo ya nje

RFC Elfu moja tisini na nne - NFSv1, v2
RFC elfu moja mia nane kumi na tatu - NFSv3
RFC Elfu tatu 500 30 - NFSv4
RFC 5 elfu 600 sitini na moja - NFSv4.1
JINSI YA NFS
nfs.sourceforge.net
mtu mlima
mauzo ya nje ya mtu

Suluhisho rahisi la kupata mfumo wa faili uliosambazwa

Mfumo wa faili ni jambo la lazima. Tunafanya kazi kwenye kompyuta zinazotoa ufikiaji wa vichapishi, kamera, hifadhidata, sensorer za mbali, darubini, compilers na simu za mkononi. Vifaa hivi havina uhusiano mdogo - haswa, vingi vilikuja kuwa ukweli baada ya mtandao kuwa karibu kila mahali (kwa mfano, kamera za elektroniki na vifaa vya rununu ambavyo hufanya kama kompyuta ndogo). Hata hivyo, wote wanahitaji mfumo wa faili ili kuhifadhi na kupata taarifa kwa usalama.

Kwa ujumla hatujali jinsi data, programu tumizi zinazoitumia, na violesura vinavyowasilisha kwetu zinavyohifadhiwa kwenye kompyuta zenyewe. Watumiaji wengi wangependa kutazama (na ni sawa) mfumo wa faili kama ukuta unaowatenganisha na chuma tupu ambacho huhifadhi biti na ka. Kwa hivyo, rafu za itifaki zinazounganisha mifumo ya faili huwa zinabaki kuwa visanduku vyeusi kwa watumiaji wengi na, kwa kweli, watayarishaji programu. Hatimaye, hata hivyo, shirika mitandao Vifaa hivi vyote vinakuja chini ili kuruhusu kubadilishana data kati ya mifumo ya faili.

Mifumo ya faili za mtandao na ibada zingine takatifu

Kwa njia nyingi, kubadilishana data si kitu zaidi ya kunakili habari kwa umbali mrefu. Itifaki za mtandao hazikuwa njia pekee ambazo ubadilishanaji wa data kwa wote uliwezekana. Baada ya yote, kila mfumo wa kompyuta lazima ubadilishe datagrams katika kitu kinachoeleweka na mfumo wa uendeshaji kwa upande mwingine. TCP ni itifaki ya uhamishaji bora sana, lakini haijaboreshwa kwa ufikiaji wa haraka wa faili au kwa udhibiti wa mbali wa programu ya utumaji.

Imesambazwa dhidi ya Mtandao wa Kompyuta

Itifaki za kitamaduni za mtandao zina kidogo cha kutoa kwa kuandaa hesabu zinazosambazwa kati ya kompyuta na, haswa, kati ya mitandao. Watayarishaji programu wazembe pekee ndio wangetegemea itifaki za uhamishaji data na kebo za macho ili kuwezesha kompyuta sambamba. Kwa kawaida tunategemea muundo wa mfululizo, ambapo muunganisho unapoanzishwa, itifaki huanza kufanya kazi safu ya kiungo, kufanya utaratibu tata wa salamu kati ya kadi za mtandao. Kompyuta sambamba na mifumo ya faili iliyosambazwa haitegemei tena IP au Ethaneti. Hivi sasa, tunaweza kuwapuuza tu tunapozungumza juu ya utendaji. Hata hivyo, masuala ya ulinzi ni suala tofauti.

Sehemu moja ya fumbo ni jinsi faili zinavyofikiwa kwenye mfumo wa kompyuta. Siku hizi, kwa mfumo wa kupata faili, sio muhimu ikiwa faili muhimu zinapatikana kwenye kompyuta moja, au ikiwa ziko kwenye kompyuta kadhaa kwa sababu fulani. Hivi sasa, semantiki za mfumo wa faili na miundo ya data ya mfumo wa faili ni mbili sana mada tofauti. Semantiki za mfumo wa faili wa Plan 9 au mfumo wa faili uliosambazwa wa mtindo wa AFS (Andrew File System) huficha jinsi faili zinavyopangwa au jinsi mfumo wa faili unavyopangwa kwa maunzi na msaada wa mtandao. NFS haifichi jinsi faili na saraka zinavyohifadhiwa kwenye mifumo ya faili ya mbali, lakini pia haifichui njia halisi ya mifumo ya faili, saraka na faili za maunzi.

NFS: Kutatua Tatizo la UNIX

Kufikia mfumo wa faili uliosambazwa, hata hivyo, kunahitaji kidogo zaidi ya amri kadhaa ili kuruhusu watumiaji kuweka saraka ambayo iko kwenye kompyuta nyingine kwenye mtandao. Sun Microsystems iliingia kwenye tatizo hili miaka kadhaa iliyopita ilipoanza kusambaza kitu kinachoitwa Simu za Utaratibu wa Mbali(RPCs), na NFS.

Shida kuu ambayo Sun ilikuwa ikijaribu kusuluhisha ilikuwa njia ya kuunganisha kompyuta nyingi za UNIX ili kuunda mazingira ya kazi moja iliyosambazwa bila kulazimika kuandika upya semantiki za mfumo wa faili wa UNIX na kuongeza miundo mingi ya data maalum kwa mifumo ya faili iliyosambazwa - uadilifu wa kila mfumo ulipaswa kuhifadhiwa , huku kuruhusu watumiaji kufanya kazi na katalogi kwenye kompyuta nyingine bila kusababisha ucheleweshaji usiohitajika au vizuizi katika mtiririko wao wa kazi.

Kwa kweli, NFS hufanya zaidi ya kutoa ufikiaji wa faili za maandishi. Unaweza pia kusambaza programu za "kuendesha" juu ya NFS. Taratibu za usalama hutumiwa kulinda mtandao kutokana na kuingiliwa kwa nia mbaya na faili zinazoweza kutekelezwa. Lakini hii hutokeaje hasa?

NFS ni RPC

NFS kwa kawaida hufafanuliwa kama programu ya RPC inayohitaji TCP kwa seva ya NFS na ama TCP au itifaki nyingine ya mtandao rafiki kwa mteja wa NFS. Kikosi Kazi cha Uhandisi wa Mtandao (IETF) kilichapisha Ombi la Maoni (RFC) kwa RPC katika RFC 1832. Kiwango kingine muhimu cha utendakazi wa utekelezaji wa NFS kinafafanua miundo ya data inayotumiwa na NFS; ilichapishwa katika RFC 1831 kama hati ya "Uwakilishi wa Data ya Nje" (XDR).

RFC zingine hushughulikia kanuni za usalama na usimbaji fiche zinazotumiwa kubadilishana maelezo ya uthibitishaji wakati wa vipindi vya NFS, lakini tutashughulikia mbinu za kimsingi kwanza. Moja ya itifaki tunayopendezwa nayo ni Weka itifaki, iliyofafanuliwa katika Kiambatisho 1 cha RFC 1813.

RFC hii inaeleza ni itifaki gani huwezesha NFS kufanya kazi, lakini haielezi jinsi NFS inavyofanya kazi wakati uliopo. Tayari umejifunza jambo muhimu, ambalo ni kwamba itifaki za NFS zimeandikwa kama viwango vya IETF. Baada ya toleo la hivi punde la NFS kukwama saa 3, itifaki za RPC hazikubadilika zaidi ya awamu ya habari ya RFC na zilionekana kwa kiasi kikubwa nje ya maslahi ya (inadaiwa) kikundi kikubwa cha kazi cha uhandisi cha Sun Microsystems na ladha za wamiliki wa UNIX. Tangu 1985, Sun imetoa matoleo kadhaa ya NFS, ambayo hutangulia mifumo ya kisasa ya faili kwa miaka kadhaa. Mifumo midogo ya jua ilihamisha udhibiti wa NFS kwa IETF mnamo 1998, na kazi nyingi kwenye toleo la 4 la NFS (NFSv4) ilifanywa chini ya usimamizi wa IETF.

Hiyo ni, unapofanya kazi na RPC na NFS leo, unafanya kazi na toleo ambalo linaonyesha maslahi ya makampuni na vikundi nje ya Sun. Hata hivyo, wahandisi wengi wa Jua wanabakia kupendezwa sana na maendeleo ya NFS.

Toleo la 3 la NFS

NFS katika umwilisho wake kama toleo la 3 (NFSv3) haihifadhi hali yake (si ya hali), lakini NFSv4 inafanya. Usemi huu wa kimsingi haushangazi mtu yeyote leo, ingawa ulimwengu wa TCP/IP ambao NFS imejengwa kwa kiasi kikubwa hauna uraia—ukweli ambao husaidia uchanganuzi wa trafiki na kampuni za programu za usalama kujisikia vizuri sana.

Itifaki ya NFSv3 ilibidi kutegemea itifaki kadhaa za ziada ili kuweka saraka kwa uwazi kwenye kompyuta za mbali, ili isitegemee mifumo ya mfumo wa faili inayotumiwa kwao. NFS haijafanikiwa kila wakati kwa hili. Mfano mzuri- Itifaki ya Mount inaitwa Kitambulisho cha faili cha awali, wakati itifaki ya Kidhibiti cha Kufunga Mtandao ilishughulikia kufunga faili. Operesheni zote mbili zinahitajika hali ya sasa, ambayo itifaki ya NFSv3 haikutoa. Kwa hivyo, kulikuwa na mwingiliano changamano kati ya tabaka za itifaki ambazo hazikuonyesha mifumo sawa ya mtiririko wa data. Zaidi ya hayo, unapoongeza ukweli kwamba uundaji wa faili na saraka katika Microsoft® Windows® unafanywa tofauti kabisa kuliko katika UNIX, hali inakuwa ngumu zaidi.

Itifaki ya NFSv3 ilihitajika kutumia bandari kutoa baadhi ya itifaki zake zinazosaidia; hii inaunda picha changamano ya bandari, viwango vya itifaki na maswala ya usalama ambayo huja nayo yote. Leo, mtindo huu wa uendeshaji umeachwa, na shughuli zote ambazo hapo awali zilifanywa na utekelezaji wa itifaki ya msaidizi kupitia bandari za kibinafsi zinasimamiwa na itifaki ya NFSv4 kupitia bandari moja, inayojulikana.

Itifaki ya NFSv3 pia ilikuwa tayari kufanya kazi na mifumo ya faili inayofahamu Unicode, faida ambayo ilibaki kuwa ya kinadharia hadi mwishoni mwa miaka ya 1990. Ililingana vyema na semantiki za mfumo wa faili wa UNIX na ilikuwa sababu ya kuundwa kwa utekelezaji wa mfumo wa faili unaoshindana kama vile AFS na Samba. Haishangazi, usaidizi wa Windows ulikuwa duni, lakini seva za faili za Samba zilitoa kushiriki faili kwa mifumo ya UNIX na Windows.

Toleo la 4 la NFS

Itifaki ya NFSv4 ni, kama tulivyoona, itifaki ya serikali. Mabadiliko kadhaa makubwa yalifanya tabia hii iwezekane. Tayari tumetaja kuwa itifaki saidizi lazima ziitwe kwa kuwa michakato ya kiwango cha watumiaji imeondolewa. Badala yake, shughuli zote za kufungua faili na simu chache za RPC zilitekelezwa kama shughuli za mfumo wa faili wa kiwango cha kernel.

Matoleo yote ya NFS yalifafanua kila kitengo cha kazi kulingana na mteja wa RPC na uendeshaji wa seva. Kila ombi la NFSv3 lilihitaji idadi kubwa ya simu za RPC na simu za mlango wazi ili kutoa matokeo. Toleo la 4 limerahisisha hili kwa kuanzisha dhana ya kinachojulikana mchanganyiko(kiwanja) operesheni, ambayo inajumuisha idadi kubwa ya shughuli kwenye vitu vya mfumo wa faili. Athari ya moja kwa moja, bila shaka, ilikuwa kwamba kulikuwa na simu chache za RPC na data ndogo ambayo ilihitaji kuhamishwa kwenye mtandao, ingawa kila simu ya RPC kimsingi ilikuwa na data zaidi, ikifanya kazi zaidi. Ilikadiriwa kuwa simu za RPC katika NFSv3 zilihitaji mara tano ya idadi ya mwingiliano wa seva ya mteja ikilinganishwa na taratibu za RPC zilizojumuishwa.

RPC haina umuhimu huo tena na kimsingi hutumika kama jalada juu ya shughuli kadhaa zilizowekwa kwenye safu ya NFSv4. Mabadiliko haya pia yalifanya mrundikano wa itifaki kutegemea zaidi semantiki ya mfumo wa faili unaotumika. Lakini hii haimaanishi kuwa utendakazi wa mfumo wa faili wa mifumo mingine ya uendeshaji ulipuuzwa: kwa mfano, ugavi wa rasilimali za Windows unahitaji uendelevu wa hali katika simu zote ili kufungua rasilimali. Kudumu kwa hali sio tu hurahisisha uchanganuzi wa trafiki, lakini inapotekelezwa katika kiwango cha semantic cha mfumo wa faili, hufanya shughuli za mfumo wa faili kufikiwa zaidi kudhibitiwa. Simu zilizo wazi za rasilimali huruhusu wateja kuweka akiba ya data ya faili na kusema - kitu ambacho kingetokea kwenye seva. Katika maisha halisi (ambapo wateja wa Windows wanapatikana kila mahali), kufanya seva za NFS kufanya kazi kwa uwazi na kwa usawa na rasilimali zilizoshirikiwa za Windows inafaa wakati unaotumia kusanidi usanidi wa NFS.

Kwa kutumia NFS

Kufunga NFS kwa ujumla ni sawa na kusakinisha Samba. Kwa upande wa seva unafafanua mifumo ya faili au saraka za kuuza nje au kugawana; upande wa mteja huweka saraka hizi. Mara tu mteja wa mbali anapoweka saraka ya NFS, saraka inapatikana kama saraka nyingine yoyote kwenye mfumo wa faili wa ndani. Kuweka NFS kwenye seva ni mchakato rahisi. Kwa uchache, unapaswa kuunda au kuhariri /etc/exports faili na uanzishe daemon ya NFS. Ili kusanidi huduma salama zaidi ya NFS, unapaswa pia kuhariri faili za /etc/hosts.allow na /etc/hosts.deny. Mteja wa NFS anahitaji tu amri ya kuweka. Maelezo ya ziada na chaguzi zimefafanuliwa katika hati za mtandaoni za Linux® (ukurasa wa mtu).

Seva ya NFS

Maingizo katika faili ya /etc/exports yana umbizo wazi. Ili kushiriki mfumo wa faili, hariri /etc/exports faili na ueleze mfumo wa faili (na vigezo) katika umbizo la jumla lifuatalo:

saraka (au mfumo wa faili) mteja1 (chaguo1, chaguo2) mteja2 (chaguo1, chaguo2)

Vigezo vya kawaida

Kuna chaguo kadhaa za jumla zinazopatikana ili kusanidi utekelezaji wako wa NFS. Hizi ni pamoja na:

  • salama: Chaguo hili (chaguo-msingi) hutumia muunganisho wa NFS bandari inayopatikana TCP/IP chini ya 1024. Kubainisha ukosefu wa usalama huzima hii.
  • rw: Mipangilio hii inaruhusu wateja wa NFS kufikia kusoma/kuandika. Ufikiaji chaguomsingi ni wa kusoma tu.
  • Async: Chaguo hili linaweza kuboresha utendakazi, lakini pia linaweza kusababisha upotezaji wa data ukianzisha upya seva ya NFS bila kwanza kusimamisha daemoni ya NFS. Mpangilio chaguomsingi ni kusawazisha.
  • hakuna_kuchelewa: Chaguo hili huzima ucheleweshaji wa kurekodi. Ikiwa hali ya usawazishaji imewekwa, NFS hupuuza mpangilio huu.
  • nohide: Ikiwa utaweka saraka moja juu ya nyingine, saraka ya zamani kawaida hufichwa au inaonekana tupu. Ili kuzuia tabia hii, wezesha parameter ya kujificha.
  • no_subtree_check: Chaguo hili huzima ufuatiliaji wa saraka ndogo unaofanywa kwa baadhi ya ukaguzi wa usalama ambao huenda hutaki kupuuza. Mpangilio chaguomsingi ni kuruhusu udhibiti wa saraka ndogo.
  • no_auth_nlm: Kigezo hiki, kinapowekwa kuwa insecure_locks, huamuru daemoni ya NFS isitekeleze uthibitishaji wakati wa maombi ya kufuli. Mpangilio chaguomsingi ni auth_nlm au secure_locks.
  • mp (mlima=njia): Chaguo hili linapotangazwa kwa uwazi, NSF inahitaji saraka iliyohamishwa kupachikwa.
  • fsid=idadi: Chaguo hili hutumiwa kwa kawaida wakati wa kuanzisha mfumo wa kurejesha baada ya kushindwa kwa NFS. Ikiwa unataka kutekeleza kushindwa kwa NFS, tafadhali rejelea hati za NFS.

Uwekaji ramani wa mtumiaji

Kupitia ramani ya mtumiaji wa NFS, unaweza kutambua mtumiaji bandia au mtumiaji halisi na kikundi na mtumiaji anayeendesha kiasi cha NFS. Mtumiaji wa NFS ana haki za mtumiaji au kikundi ambazo uchoraji wa ramani unaruhusu. Kutumia mtumiaji na kundi moja (la kawaida) kwa juzuu za NFS hutoa kiwango cha usalama na kubadilika bila juhudi kubwa za usimamizi.

Unapotumia faili kwenye mfumo wa faili uliowekwa na NFS, ufikiaji wa mtumiaji kawaida hupigwa. Hii ina maana kwamba mtumiaji hufikia faili kama mtumiaji asiyejulikana ambaye ana ufikiaji wa kusoma pekee kwa faili hizo. Tabia hii ni muhimu sana kwa mtumiaji wa mizizi. Walakini, kuna hali ambapo unataka mtumiaji kufikia faili kwenye mfumo wa mbali kama mzizi au nyingine mtumiaji maalum. NFS hukuruhusu kubainisha mtumiaji (kwa nambari ya kitambulisho cha mtumiaji (UID) na nambari ya utambulisho wa kikundi (GID)) ili kufikia faili za mbali, na unaweza kuzuia tabia ya kawaida ya "kukandamiza" chaguo-msingi.

Chaguzi za kuonyesha mtumiaji ni pamoja na:

  • mzizi_boga: Chaguo hili huzuia mtumiaji wa mizizi kufikia kiasi cha NFS kilichowekwa.
  • no_root_squash: Chaguo hili huruhusu mtumiaji wa mizizi kufikia kiasi cha NFS kilichowekwa.
  • boga_yote: Chaguo hili, muhimu kwa viwango vya NFS na ufikiaji wazi, hukandamiza UID na GID zote na hutumia tu akaunti ya mtumiaji isiyojulikana. Mpangilio chaguomsingi ni no_all_squash.
  • anonuid na anongid: Mipangilio hii hubadilisha UID na GID ya mtumiaji asiyejulikana kuwa akaunti maalum.

Orodha ya 1 inaonyesha mifano ya /etc/exports maingizo.

Kuorodhesha 1. Mfano /etc/exports entries
/opt/files 192.168.0.* /opt/files 192.168.0.120 /opt/files 192.168.0.125(rw, all_squash, anonuid=210, anongid=100) /opt/files *(ro, insecure, all_squash)

Ingizo la kwanza husafirisha saraka ya /opt/files kwa wapangishi wote kwenye mtandao wa 192.168.0. Ingizo lifuatalo linasafirisha nje /opt/files kwa mwenyeji mmoja: 192.168.0.120. Ingizo la tatu linabainisha mpangishi 192.168.0.125 na kutoa ufikiaji wa kusoma/kuandika kwa faili zilizo na haki za mtumiaji kuwa na id=210 na kikundi id=100 . Ingizo la mwisho linatumika kwa saraka ya umma na inaruhusu ufikiaji wa kusoma tu na chini ya akaunti ya mtumiaji isiyojulikana pekee.

Mteja wa NFS

Tahadhari

Mara NFS inapotumiwa kuweka mfumo wa faili wa mbali, itakuwa pia sehemu ya operesheni yoyote ya uundaji wa mfumo wa faili iliyoshirikiwa. nakala ya chelezo mfumo unaoendesha kompyuta ya mteja. Tabia hii inaweza kuwa na matokeo yanayoweza kudhuru ikiwa hutatenga saraka zilizopachikwa wakati wa kutengeneza nakala.

Ili kutumia NFS kama mteja, rpc.statd na portmap lazima ziwe zinatumika kwenye kompyuta ya mteja. Unaweza kukimbia ps -ef kuangalia uwepo wa daemoni hizi mbili. Ikiwa zitafanya kazi (kama inavyopaswa), unaweza kuweka saraka iliyosafirishwa ya seva kwa kutumia amri ya jumla ifuatayo:

mount server:directory local mlima uhakika

Kwa ujumla, unapaswa kuwa unaendesha kama mzizi wakati wa kuweka mfumo wa faili. Kwenye kompyuta ya mbali, unaweza kutumia amri ifuatayo (ikizingatiwa kuwa seva ya NFS ina anwani ya IP ya 192.168.0.100):

weka 192.168.0.100:/opt/files/mnt

Usambazaji wa mfumo wako unaweza kukuhitaji ubainishe aina ya mfumo wa faili unapoipachika. Ikiwa ni hivyo, tumia amri:

mount -t nfs 192.168.0.100:/opt/files /mnt

Saraka ya mbali inapaswa kupachikwa bila matatizo yoyote ikiwa umesanidi seva kwa usahihi. Sasa endesha amri ya cd kubadili saraka /mnt, kisha amri ya ls kutazama faili. Ili kufanya mlima huu kuwa wa kudumu, lazima uhariri /etc/fstab faili na uunde ingizo sawa na lifuatalo:

192.168.0.100:/chagua/faili /mnt nfs rw 0 0

Kumbuka: Kwa habari zaidi juu ya /etc/fstab entries, angalia usaidizi wa mtandaoni wa fstab.

Ukosoaji wa NFS

Ukosoaji huleta uboreshaji

Ukosoaji unaohusiana na usalama wa NFS ulikuwa sababu ya maboresho mengi katika NSFv4. Waundaji wa toleo jipya walichukua hatua halisi ili kuimarisha usalama wa mwingiliano wa seva ya mteja. Kwa kweli, waliamua kutekeleza mtindo mpya kabisa wa mfumo wa usalama.

Ili kuelewa muundo wa mfumo wa usalama, unapaswa kujijulisha na kiolesura cha programu ya programu Huduma za Usalama za Jumla (GSS-API) toleo la 2, marekebisho 1. GSS-API imeelezewa kikamilifu katika RFC 2743, ambayo, kwa bahati mbaya, ni mojawapo ya nyaraka ngumu zaidi za RFC kuelewa.

Kutokana na uzoefu wetu na NFSv4, tunajua kwamba si rahisi sana kufanya mfumo wa faili wa mtandao bila ya mfumo wa uendeshaji. Lakini ni vigumu zaidi kuwafanya kujitegemea mfumo wa uendeshaji na itifaki za mtandao maeneo yote ya mfumo wa ulinzi. Tunahitaji zote mbili, kwani NFS inahitaji kuweza kushughulikia idadi kubwa ya shughuli za mtumiaji na fanya hivi bila kuunganishwa na maalum ya mwingiliano juu ya itifaki ya mtandao.

Miunganisho kati ya wateja wa NFS na seva inalindwa kwa kutumia mfumo wa usalama unaoitwa (badala ya juu juu) nguvu RPC. NFSv4 hutumia kiwango cha Open Network Computing Procedure Call (ONCRPC) kilichofafanuliwa katika RFC 1831. Mfumo wa usalama ulipaswa kuimarishwa, kwa hivyo badala ya uthibitishaji rahisi (unaojulikana kama AUTH_SYS) kama sehemu ya lazima ya itifaki ya NFSv4, aina ya mfumo wa usalama wa GSS-API unaojulikana kama RPCSEC_GSS. Mbinu muhimu zaidi za usalama zinazopatikana katika NFSv4 ni pamoja na Kerberos toleo la 5 na LIPKEY.

Ingawa Kerberos ina vikwazo inapotumiwa kwenye Mtandao, LIPKEY ina faida nzuri ya kutenda kama Tabaka la Soketi Salama (SSL), huwauliza watumiaji majina yao ya watumiaji na manenosiri huku ikiepuka utegemezi wa TCP kwenye SSL, utegemezi ambao NFSv4 haishiriki. Unaweza kusanidi NFS ili kutekeleza tofauti za usalama ikiwa RPCSEC_GSS haihitajiki. Matoleo ya awali ya NFS hayakuwa na uwezo huu na kwa hivyo hayakuweza kutoa usalama thabiti, uadilifu wa data, mahitaji ya uthibitishaji, au aina za usimbaji fiche.

Itifaki ya NFSv3 imepokea ukosoaji mkubwa wa usalama. Ikiwa seva za NFSv3 zilipitia TCP, iliwezekana kabisa kuendesha mitandao ya NFSv3 kwenye Mtandao. Kwa bahati mbaya, ilihitaji pia kufungua bandari nyingi, ambazo zilianzisha mashimo kadhaa ya usalama yaliyotangazwa vizuri. Kwa kufanya port 2049 kuwa ya lazima kwa NFS, iliwezekana kutumia NFSv4 na ngome bila kuzingatia sana ni bandari gani itifaki zingine, kama vile itifaki ya Mount, zilikuwa zikisikilizwa. Kwa hivyo, kuondoa itifaki ya Mlima kulikuwa na athari kadhaa nzuri:

  • Mbinu thabiti za uthibitishaji zinazohitajika: NFSv4 ilifanya njia dhabiti za uthibitishaji kuwa za lazima. Tofauti za Kerberos ni za kawaida sana. Mfumo wa Ufunguo wa Umma wa Chini (LIPKEY) lazima pia uungwe mkono. NFSv3 haijawahi kuauni chochote zaidi ya usimbaji fiche wa kawaida wa UNIX kwa uthibitishaji wa ufikiaji - hii iliunda matatizo makubwa ya usalama katika mitandao mikubwa.
  • Miradi ya mitindo ya orodha ya udhibiti wa ufikiaji (ACL). Microsoft Windows NT: Ingawa NFSv3 iliruhusu usimbaji fiche thabiti kwa uthibitishaji, haikutumia mifumo ya ufikiaji ya ACL katika Mtindo wa Windows N.T. ACLs kwa mtindo wa Kubebeka Mfumo wa Uendeshaji Kiolesura (POSIX) wakati mwingine kilitekelezwa, lakini hakikukubaliwa kwa ujumla. NFSv4 ilifanya mifumo ya ACL ya mtindo wa Windows NT kuwa ya lazima.
  • Mbinu za kimkataba na mitindo ya uthibitishaji: NFSv4 ilianzisha uwezo wa kujadili mbinu na mitindo ya uthibitishaji. Katika NSFv3 haikuwezekana kufanya chochote zaidi ya ufafanuzi wa mwongozo mtindo wa usimbaji fiche uliotumika. Msimamizi wa Mfumo ilibidi basi kujadili usimbaji fiche na itifaki za usalama.

Je, NFS bado haijashindanishwa?

NFSv4 inachukua nafasi ya NFSv3 kwenye mifumo mingi ya UNIX na Linux. Kama mfumo wa faili wa mtandao, NSFv4 ina washindani wachache. Mshindani anayefaa atakuwa Mfumo wa Faili wa Kawaida wa Mtandao (CIFS)/Kizuizi cha Ujumbe wa Seva (SMB), ikizingatiwa kuwa unapatikana katika ladha zote za Windows na (kwa sasa) Linux. AFS haijawahi kuwa na nguvu nyingi za kibiashara; ilisisitiza vipengele vya mifumo ya faili iliyosambazwa ambayo iliwezesha uhamiaji na urudufu wa data.

Matoleo yaliyo tayari ya Linux ya NFS yalitolewa baada ya kernel kufikia toleo la 2.2, lakini mojawapo ya makosa ya kawaida ya matoleo ya Linux kernel ni kwamba Linux ilipitisha NFSv3 kuchelewa sana. Kwa kweli, ilikuwa muda mrefu kabla ya Linux kuunga mkono kikamilifu NSFv3. Pamoja na ujio wa NSFv4, upungufu huu uliondolewa haraka na msaada kamili NSFv4 ilitekelezwa sio tu katika Solaris, AIX na FreeBSD.

NFS sasa inachukuliwa kuwa teknolojia iliyokomaa, ambayo ina faida kubwa sana: ni salama na rahisi - watumiaji wengi wameona ni rahisi kutumia kuingia moja kwa usalama kupata mtandao na kutumia uwezo wake, hata wakati faili na programu ziko kwenye. mifumo mbalimbali. Ingawa hii inaweza kuonekana kama hasara ikilinganishwa na mifumo ya faili iliyosambazwa ambayo huficha miundo ya mfumo kutoka kwa watumiaji, kumbuka kwamba programu nyingi hutumia faili ambazo zinakaa kwenye mifumo tofauti ya uendeshaji na kwa hiyo kwenye kompyuta tofauti. NFS hurahisisha kufanya kazi na mifumo tofauti ya uendeshaji bila kuwa na wasiwasi sana kuhusu semantiki za mfumo wa faili na sifa za utendakazi.

NFS, au Mfumo wa Faili za Mtandao, ni itifaki maarufu ya mfumo wa faili ya mtandao ambayo inaruhusu watumiaji kuweka saraka za mtandao wa mbali kwenye mashine zao na kuhamisha faili kati ya seva. Unaweza kutumia nafasi ya diski kwenye mashine nyingine kwa faili zako na ufanye kazi na faili zilizo kwenye seva zingine. Kimsingi, hii ni njia mbadala ya kushiriki Windows kwa Linux, tofauti na Samba, inatekelezwa katika kiwango cha kernel na inafanya kazi kwa utulivu zaidi.

Nakala hii itashughulikia kusakinisha nfs kwenye Ubuntu 16.04. Tutaangalia kufunga vipengele vyote muhimu, kuanzisha folda iliyoshirikiwa, na kuunganisha folda za mtandao.

Kama ilivyoelezwa tayari, NFS ni mfumo wa faili wa mtandao. Ili kufanya kazi, unahitaji seva ambayo utapangisha folda iliyoshirikiwa na wateja ambao wanaweza kuweka folda ya mtandao kama diski ya kawaida katika mfumo. Tofauti na itifaki zingine, NFS hutoa ufikiaji wa uwazi kwa faili za mbali. Programu zitaona faili kama katika mfumo wa kawaida wa faili na kufanya kazi nao kama ilivyo kwa faili za kawaida, nfs inarudisha tu sehemu iliyoombwa ya faili, badala ya faili nzima, kwa hivyo mfumo huu wa faili utafanya kazi kikamilifu kwenye mifumo iliyo na mtandao wa haraka au kwenye a. mtandao wa ndani.

Inasakinisha Vipengee vya NFS

Kabla ya kufanya kazi na NFS, tutalazimika kusakinisha programu kadhaa. Kwenye mashine ambayo itakuwa seva, unahitaji kusakinisha kifurushi cha nfs-kernel-server, ambacho kitatumika kufungua hisa za nfs katika ubuntu 16.04. Ili kufanya hivyo, endesha:

sudo apt install nfs-kernel-server

Sasa hebu tuangalie ikiwa seva imewekwa kwa usahihi. Huduma ya NFS husikiliza miunganisho ya TCP na UDP kwenye bandari 2049. Unaweza kuona kama bandari hizi zinatumika na amri:

rpcinfo -p | grep nfs

Ni muhimu pia kuangalia ikiwa NFS inaungwa mkono katika kiwango cha kernel:

paka /proc/filesystems | grep nfs

Tunaona kuwa inafanya kazi, lakini ikiwa sivyo, unahitaji kupakia kwa mikono moduli ya kernel ya nfs:

Wacha pia tuongeze nfs kwa kuanza:

sudo systemctl kuwezesha nfs

Unahitaji kusakinisha kifurushi cha nfs-kawaida kwenye kompyuta ya mteja ili kuweza kufanya kazi na mfumo huu wa faili. Sio lazima usakinishe vifaa vya seva, kifurushi hiki tu kitatosha:

sudo apt install nfs-kawaida

Kuanzisha seva ya NFS kwenye Ubuntu

Tunaweza kufungua ufikiaji wa NFS kwa folda yoyote, lakini wacha tuunde mpya kwa kusudi hili:

folda_anwani_ya mteja (chaguo)

Anwani ya folda ni folda ambayo inahitaji kupatikana kupitia mtandao. Mteja - Anwani ya IP au anwani ya mtandao ambayo folda hii inaweza kupatikana. Lakini kwa chaguzi ni ngumu zaidi. Hebu tuangalie baadhi yao:

  • rw- Ruhusu kusoma na kuandika kwenye folda hii
  • ro- Ruhusu kusoma tu
  • kusawazisha- jibu maombi yanayofuata tu wakati data imehifadhiwa kwenye diski (chaguo-msingi)
  • Async- usizuie miunganisho wakati data inaandikwa kwenye diski
  • salama- tumia bandari zilizo chini ya 1024 pekee kwa unganisho
  • kutokuwa na usalama- tumia bandari yoyote
  • nohide- usifiche subdirectories wakati wa kufungua upatikanaji wa saraka kadhaa
  • mzizi_boga- Badilisha maombi kutoka kwa mizizi na yale yasiyojulikana
  • boga_yote- geuza maombi yote yasijulikane
  • anonuid Na anongid- inabainisha uid na gid kwa mtumiaji asiyejulikana.

Kwa mfano, kwa folda yetu mstari huu unaweza kuonekana kama hii:

/var/nfs 127.0.0.1(rw,sync,no_subtree_check)

Mara tu kila kitu kilipoundwa, kilichobaki ni kusasisha jedwali la usafirishaji la NFS:

sudo exportfs -a

Hiyo yote, kufungua hisa za nfs katika ubuntu 16.04 imekamilika. Sasa hebu tujaribu kusanidi mteja na jaribu kuiweka.

Muunganisho wa NFS

Hatutazingatia suala hili kwa undani katika makala ya leo. Hii ni mada kubwa ambayo inastahili nakala yake. Lakini bado nitasema maneno machache.

Ili kuweka folda ya mtandao, hauitaji mteja wowote wa Ubuntu nfs, tumia tu amri ya kuweka:

sudo mount 127.0.0.1:/var/nfs/ /mnt/

Sasa unaweza kujaribu kuunda faili kwenye saraka iliyounganishwa:

Pia tutaangalia mifumo ya faili iliyowekwa kwa kutumia df:

127.0.0.1:/var/nfs 30G 6.7G 22G 24% /mnt

Ili kuzima mfumo huu wa faili, tumia tu umount kawaida:

sudo umount /mnt/

hitimisho

Nakala hii ilijadili kusanidi nfs ubuntu 16.04, kama unavyoona, kila kitu kinafanywa kwa urahisi sana na kwa uwazi. Kuunganisha hisa za NFS hufanywa kwa kubofya mara chache kwa kutumia amri za kawaida, na kufungua hisa za nfs katika ubuntu 16.04 sio ngumu zaidi kuliko kuunganisha. Ikiwa una maswali yoyote, andika kwenye maoni!

Machapisho yanayohusiana: