NFSv4 biedt uniforme netwerktoegang. NFS-componenten installeren

de gebruiker kan op verschillende tijdstippen op verschillende computers werken. Met behulp van een bestandsserver worden verschillende taken tegelijk opgelost:
  1. regelmatige back-up van alle gegevens: het is onrealistisch om deze bewerking uit te voeren voor enkele tientallen of honderden computers, maar het is heel goed mogelijk - vanaf een enkele server of meerdere servers.
  2. de betrouwbaarheid van gegevensopslag vergroten: het is onredelijk om elke computer in het netwerk uit te rusten met een RAID-array, omdat de overgrote meerderheid van de bestanden op een computer, zoals geïnstalleerde softwarepakketten, gemakkelijker opnieuw te installeren zijn dan om ze tegen storingen te beschermen; maar het zou heel redelijk zijn om de bestandsserver uit te rusten met een hardware RAID-array of daar een software RAID-array te organiseren, in ieder geval eenvoudige schijfspiegeling.
  3. Lagere opslagkosten: het is duur en inefficiënt om een ​​enorme schijf in elke computer te installeren voor het geval u veel gegevens moet opslaan, maar het is goed mogelijk om een ​​schaalbaar subsysteem met grote schijven op de server te installeren.
  4. toegang tot dezelfde gegevens vanaf elke computer.

Beschrijving van NFS

Met de NFS-service kan een server gedeelde toegang bieden tot gespecificeerde mappen op zijn lokale bestandssysteem en de klant moet deze mappen aankoppelen alsof het de lokale mappen van de klant zijn.

NFS-versies

NFS, ontwikkeld door Sun Microsystems, is zo succesvol geweest dat implementaties door verschillende bedrijven zijn geïmplementeerd in bijna alle besturingssystemen. Er zijn verschillende fundamenteel verschillende NFS-implementaties. NFS 2.0 is vrij gebruikelijk, hoewel NFS 3.0 werd geïntroduceerd in Solaris 2.5. Latere releases van Solaris, waaronder Solaris 9, brachten aanzienlijke verbeteringen aan in NFS, maar het protocol zelf bleef compatibel met NFS 3.0-implementaties op andere systemen. Vanaf NFS 3.0 worden TCP- en UDP-transmissie van pakketten ondersteund, voorheen werd alleen UDP ondersteund.

doe voorzichtig! Gebruik dezelfde versie van NFS-clients en servers op het netwerk. NFS 2.0 is te vinden op oudere systemen zoals HP-UX 10.0. Samenwerking tussen systemen met verschillende versies van NFS is niet wenselijk.

Compatibiliteit met NFS en andere gedeelde directoryservices

NFS is qua betekenis en organisatie van het werk vergelijkbaar met: gedeelde mappen(gedeelde mappen) in Windows-systemen, maar deze services gebruiken totaal verschillende besturingsprotocollen en zijn niet compatibel met elkaar. Er zijn echter verschillende softwareproducten die NFS-ondersteuning op Windows-systemen installeren, dus het gebruik van NFS op een netwerk met verschillende besturingssystemen is geen probleem, denk eraan om dezelfde versie van NFS te gebruiken.

NFS is een client-servermodel, waarbij verschillende programma's op clientcomputers en servercomputers worden uitgevoerd om toegang te bieden tot gedeelde mappen op de server.

Omdat computers op werkplekken van werknemers in Rusland meestal worden aangestuurd door Windows-systemen, worden Windows-systemen ook vaak gebruikt als fileservers. Er is echter vaak de wens om UNIX op een bestandsserver te installeren om de betrouwbaarheid te vergroten, de hardwarekosten te verlagen of om dezelfde server te gebruiken voor een aantal andere bedrijfsbehoeften: als webserver, databaseserver, enz. Om geen extra software voor NFS-ondersteuning te installeren, volstaat het in dit geval om het samba-pakket op een UNIX-machine te installeren. Het stelt haar in staat om te "doen alsof" een Windows-server te zijn, zodat alle clientcomputers het zien als de meest voorkomende bestandsserver of printserver op een Windows-netwerk. Het samba-pakket biedt ondersteuning voor het Windows-native SMB-protocol.

In gevallen waarin meerdere UNIX-computers op het netwerk werken en ze toegang moeten hebben tot dezelfde bestandsserver, is het zinvol om het NFS-mechanisme (netwerkbestandssysteem) te gebruiken.

NFS is niet erg bestand tegen netwerkstoringen, vereist een ononderbroken werking en veronderstelt snelle verbindingen tussen de client en de server. Het gebruik van NFS om bestandssystemen buiten het lokale netwerk te mounten, bijvoorbeeld via internet, is technisch haalbaar, maar niet erg rationeel en onveilig.

NFS-terminologie

Na het instellen van de NFS-server, zal de UNIX-computer externe gebruikers toegang geven tot enkele van zijn mappen. bestandssysteem... Deze toegang verlenen wordt "exporteren" genoemd: het systeem zou zijn catalogi exporteren. Hoe de mappen precies worden geëxporteerd, wordt bepaald door een lijst die is opgesteld door de systeembeheerder. Op de meeste UNIX-systemen staat deze lijst in het bestand /etc/exports, maar op Solaris staat het in een ander bestand, /etc/dfs/dfstab.

NFS werkt via het externe procedureaanroepmechanisme ( RPC - Procedureoproep op afstand).

Wat is RPC

De RPC-ideologie is heel eenvoudig en aantrekkelijk voor de programmeur. Hoe werkt een netwerktoepassing meestal? Het volgt een bepaald protocol (bijvoorbeeld HTTP): het genereert een pakket met een verzoek, roept de systeemfunctie op om een ​​verbinding tot stand te brengen, vervolgens de functie van het verzenden van het pakket, wacht vervolgens op een antwoordpakket en roept de functie aan om de verbinding. Dit betekent dat al het werk met het netwerk de zorg is van de programmeur die de applicatie schrijft: hij moet onthouden over het aanroepen van de functies van de netwerk-API van het systeem, nadenken over wat te doen in geval van netwerkstoringen.

RPC gaat uit van een andere manier van gegevensuitwisseling tussen een client en een server. Vanuit het oogpunt van een programmeur roept een RPC-clienttoepassing een functie op de server aan, voert deze uit en retourneert het resultaat. Het doorsturen van een verzoek om een ​​functie uit te voeren via het netwerk en het retourneren van resultaten van de server naar de client is onzichtbaar voor de applicatie, zodat deze zich geen zorgen hoeft te maken over netwerkstoringen of de details van de implementatie van het transportprotocol.

Om de transparantie van de gegevensoverdracht over het netwerk te waarborgen, is een procedure in twee stappen bedacht. Op de server moet elke applicatie die zijn service via RPC levert, zichzelf registreren bij een programma dat een port mapper wordt genoemd. De functie van dit programma is om een ​​overeenkomst tot stand te brengen tussen het nummer van de RPC-procedure die de client heeft aangevraagd en het nummer van de TCP- of UDP-poort waarop de servertoepassing wacht op verzoeken. Over het algemeen kan RPC met meer werken dan alleen TCP of UDP. Solaris voert werk uit op basis van het TI (TransportIndependent) mechanisme, dus in Solaris heet de port vertaler rpcbind, maar niet portmap zoals Linux of FreeBSD.

Een applicatie die zich registreert bij een port-vertaler vertelt hem het programmanummer, versienummer en procedurenummers die door het programma kunnen worden verwerkt. Deze procedures worden vervolgens door de klant op nummer gebeld. Bovendien rapporteert de applicatie de TCP- en UDP-poortnummers die zullen worden gebruikt om verzoeken te ontvangen om procedures uit te voeren.

Een client die de uitvoering van een procedure op de server wil aanroepen, stuurt eerst een verzoek naar de poortvertaler op de server om uit te zoeken naar welke TCP- of UDP-poort het verzoek moet worden verzonden. De poortvertaler begint bij het opstarten van het systeem en draait altijd op de standaardpoort 111. Nadat de client een reactie heeft ontvangen, stuurt hij een verzoek naar de poort die overeenkomt met de vereiste toepassing. Een NFS-server draait bijvoorbeeld op poort 2049.

Hoe een gedeelde map te mounten via NFS

Voordat we verder gaan met het beschrijven van de instellingen voor de NFS-server en clients, is het noodzakelijk om te begrijpen hoe externe bestandssystemen in principe worden aangekoppeld.

De NFS-client stuurt een koppelverzoek naar de externe computer, die zijn bestandssysteem(meestal een deel ervan) voor algemeen gebruik. Er wordt gezegd dat de NFS-server deze of gene map "exporteert" (wat betekent - met submappen). Klant verzoek:

Ik wijs op de instructies voor het installeren en configureren van NFS (Network File System). NFS is een netwerkbestandssysteem waarmee u toegang kunt krijgen tot bestanden en mappen op een externe computer (server) alsof deze bestanden en mappen lokaal zijn. Het grote voordeel van een dergelijk systeem is dat individuele werkstations minder van hun eigen schijfruimte kunnen gebruiken, aangezien de gedeelde data op een aparte machine (datawarehouse) wordt opgeslagen en beschikbaar is voor andere machines in het netwerk. NFS is een client / server-applicatie waarbij de opslagrol wordt toegewezen aan de server. Elk netwerklid is een NFS-client die de netwerkschijf van de server in zijn bestandssysteem koppelt.

Laten we Ubuntu 12.04 als server nemen.
We zullen Centos en Winows 7 als klanten gebruiken en testen.

Hoofdserver: 192.168.2.213 (Ubuntu)

Klanten: 192.168.2.72 (Centos), 192.168.2.180 (Windows)

Server afstemmen

Eerst moet u de server configureren. Aangezien we Ubuntu als server gaan gebruiken, moeten we het juiste pakket installeren

[e-mail beveiligd]: ~ # apt-get install nfs-kernel-server

Nadat we de vereiste pakketten hebben geïnstalleerd, hebben we twee configuratiebestanden gemaakt. Uit het installatielogboek:

… Configuratiebestand /etc/idmapd.conf maken met nieuwe versie Configuratiebestand / etc / standaard / nfs-common maken met nieuwe versie…

Het eerste bestand beschrijft de gebruiker (gemaakt bij het installeren van het pakket) en groep, om deel te nemen aan mapping-e (gebruikersidentificatie).

[e-mail beveiligd]: ~ # cat /etc/idmapd.conf Breedsprakigheid = 0 Pipefs-Directory = / run / rpc_pipefs # stel hier uw eigen domein in, als id verschilt van FQDN minus hostnaam # Domein = lokaal domein Niemand-gebruiker niemand = Niemand-groep = geen groep

Zoals we weten, behoort in Linux elk bestand tot een specifieke gebruiker, die zijn eigen heeft (UID, GID), maar Windows-systemen hebben een iets ander schema. En in dit verband werd een mapping-mechanisme uitgevonden, dat de vertaling van verschillende gebruikers van verschillende besturingssystemen naar een voor het Linux-bestandssysteem begrijpelijke vorm maakt.
Het tweede bestand is nodig om Kerberos-verificatie te configureren en een niet-standaard poort te configureren waarop de daemon zal luisteren. We hebben het nog niet nodig. Het configureren van Kerberos wordt in het volgende artikel besproken.

[e-mail beveiligd]: ~ # cat / etc / default / nfs-common # Als u geen waarden instelt voor de NEED_-opties, zullen ze worden geprobeerd # automatisch gedetecteerd; dit zou voor de meeste mensen voldoende moeten zijn. Geldige alternatieven # voor de NEED_-opties zijn "ja" en "nee". # Wil je de statd-daemon starten? Het is niet nodig voor NFSv4. NEED_STATD = # Opties voor rpc.statd. # Moet rpc.statd op een specifieke poort luisteren? Dit is vooral handig # wanneer u een poortgebaseerde firewall hebt. Om een ​​vaste poort te gebruiken, stelt u deze # deze variabele in op een statd-argument zoals: "--port 4000 --outgoing-port 4001". # Voor meer informatie, zie rpc.statd (8) of http://wiki.debian.org/SecuringNFS STATDOPTS = # Wilt u de gssd-daemon starten? Het is vereist voor Kerberos-mounts. NEED_GSSD =

Laten we nu verder gaan met de configuratie.
Alle mappen om te delen moeten worden geregistreerd in het bestand / etc / exports. Laten we eerst 2 mappen maken in de homedirectory en de bestanden daarin neerzetten. Directory en bestandsstructuur voor export:

[e-mail beveiligd]: ~ # tree / home / alex / / home / alex / ├── nfs_dir1 │ ├── file1_dir1 │ ├── file2_dir1 │ └── file3_dir1 ├── nfs_dir2 ├── file1_dir2 ├── file2_dir2 └── bestand

Nu moet je een gebruiker en een groep aan deze mappen toewijzen (neem uit het bestand /etc/idmapd.conf).

[e-mail beveiligd]: ~ # chown –R niemand: nogroup nfs_dir1 / [e-mail beveiligd]: ~ # chown –R niemand: nogroup nfs_dir2 /

Laten we eerst de map nfs_dir1 exporteren voor een specifiek IP-adres. Bewerken van het bestand / etc / exprots.

[e-mail beveiligd]: ~ # vim / etc / exports # Voor een specifieke host (Windows) / home / alex / nfs_dir1 192.168.2.180 (rw, sync, all_squash, no_subtree_check, insecure) # Voor elke host op het subnet / home / alex / nfs_dir2 192.168 .2.0/ 24 (rw, no_root_squash, sync, no_subtree_check)

Hier is een minimale reeks opties om de opslag correct te laten werken met Windows OS.

  • / home / alex / nfs_dir1- het pad naar de map waartoe toegang wordt verleend;
  • 192.168.2.180 - IP-adres, dat toegang krijgt tot de map (u kunt het hele netwerk specificeren, dan heeft de invoer de vorm 192.168.2.0/24)
  • (rw, sync, all_squash, no_subtree_check)- een reeks opties.

Populaire opties:

  • rw–Lezen / schrijven (kan alleen ro-lezen zijn);
  • no_root_squash- standaard heeft de rootgebruiker op de clientcomputer geen toegang tot de gedeelde map van de server. Met deze optie verwijderen we deze beperking. Om veiligheidsredenen kunt u dit beter niet doen;
  • synchroniseren- synchrone toegangsmodus (kan de tegenovergestelde waarde aannemen - asynchrone);
  • geen toegang- weigert toegang tot de opgegeven directory. Het kan handig zijn als u eerder de toegang voor alle netwerkgebruikers tot een bepaalde directory hebt ingesteld en u nu de toegang in de subdirectory wilt beperken tot slechts enkele gebruikers.
  • all_squash- houdt in dat alle verbindingen worden gemaakt van een anonieme gebruiker (nodig voor een Windows-client)
  • anonuid = 1000 - koppelt een anonieme gebruiker aan een "lokale" gebruiker;
  • anongid = 1000 - Bindt de anonieme gebruiker aan de groep van de "lokale" gebruiker.
  • no_subtree_check (subtree_check)–Als een submap van het bestandssysteem wordt geëxporteerd, maar niet het gehele bestandssysteem, controleert de server of het gevraagde bestand zich in de geëxporteerde submap bevindt. Als u verificatie uitschakelt, neemt de beveiliging af, maar neemt de snelheid van de gegevensoverdracht toe.
  • Normaal gesproken reserveert Linux (en andere Unix-achtige besturingssystemen) TCP- en UDP-poorten 1-1023 (beveiligde poorten genoemd) voor gebruik door rootprocessen. Om ervoor te zorgen dat root de externe NFS-verbinding heeft gestart, vereist de NFS-server meestal dat externe clients beveiligde poorten gebruiken. Deze conventie wordt echter niet gevolgd door sommige besturingssystemen (bijv. Windows). In dergelijke gevallen is de optie onzeker staat de NFS-client toe om elke TCP / UDP-poort te gebruiken. Het is meestal vereist bij het bedienen van Windows-clients.

Alle beschikbare opties en syntaxis voor het opnemen van hosts, hostgroepen, enz. te lezen in de handleiding

[e-mail beveiligd]: ~ # exportfs –a

Nu kijken we wat we hebben geëxporteerd.

[e-mail beveiligd]: ~ # exportfs -v / home / alex / nfs_dir1 192.168.2.180 (rw, wdelay, all_squash, no_subtree_check, onveilig) / home / alex / nfs_dir2 192.168.2.0/24(rw,wdelay,no_root_squash,no_subtree_check)

De server is geconfigureerd.

Clients configureren

Windows-client configureren

Als er geen foutmeldingen waren. U kunt aan de klantzijde beginnen met monteren.
Eerst moet u de NFS-service (clientservice) toevoegen. Om dit te doen, gaat u naar Start -> Configuratiescherm -> Programma's en onderdelen en klik op het menu-item aan de linkerkant Windows-onderdelen in-of uitschakelen... In het venster dat verschijnt, selecteer Client voor NFS en klik Oke(figuur 1).


Foto 1

Vervolgens moet je de schijf mounten. Om dit te doen, kunt u de opdrachtregel gebruiken of gewoon op . klikken klik met de rechtermuisknop op Deze computer en selecteer Map Network Drive... EN voer de regel in \\ 192.168.2.213 \ home \ alex \ nfs_dir1... Dit is het IP-adres van de server en het pad naar de map (Fig. 2).


Afbeelding 2

Als alles in orde is, zien we een schijf (Fig. 3).


figuur 3

Hetzelfde kan worden gedaan met behulp van de opdrachtregel (Fig. 4).


Figuur 4

Mogelijke fouten:

U kunt een NFS-netwerkstation niet toewijzen aan Windows OS (Fig. 5) als:
1.NFS-client niet geïnstalleerd
2. Ingeschakelde (niet geconfigureerde) firewall
3. Geen netwerktoegang tot de server
4. Verkeerd ingevoerde bevestigingsopties
5. Export is niet geconfigureerd (instellingen worden niet toegepast) op de server.
6. Onveilige optie toevoegen in exportinstellingen


Afbeelding 5 - Fout bij het verbinden van netwerk NFS-schijf

U kunt geen bestand toevoegen aan het aangekoppelde bestandssysteem (Figuur 6) als:
1. De rechten op de map (niemand: nogroup) zijn niet ingesteld op de server
2. De optie all_squash is niet ingesteld in de exportinstellingen
3. De rw-optie is niet ingesteld in de exportinstellingen


Afbeelding 6 - Fout bij het toevoegen van een bestand aan een NFS-schijf

De Centos-client configureren

Het opzetten van Linux-systemen is vrij eenvoudig en pijnloos. U hoeft alleen de vereiste pakketten te installeren en de schijf te koppelen. Centos heeft de volgende pakketten nodig:

# yum install nfs-utils nfs-utils-lib

# mkdir -p / mnt / nfs # mount 192.168.2.213:/home/alex/nfs_dir1 / mnt / nfs # mount / dev / mapper / vg_slave-lv_root aan / typ ext4 (rw) proc on / proc type proc (rw) sysfs on / sys type sysfs (rw) devpts on / dev / pts type devpts (rw, gid = 5, mode = 620) tmpfs on / dev / shm type tmpfs (rw, rootcontext = "system_u: object_r: tmpf"_t: s ) / dev / sda1 aan / boottype ext4 (rw) geen aan / proc / sys / fs / binfmt_misc type binfmt_misc (rw) sunrpc on / var / lib / nfs / rpc_pipefs type rpc_pipefs (rw) 192.168.2.213:/home alex / nfs_dir1 op / mnt / nfs typ nfs (rw, vers = 4, addr = 192.168.2.213, clientaddr = 192.168.2.72)

In dit geval kunnen we elk bestand en elke map toevoegen aan de map nfs_dir1 die is aangekoppeld namens elke systeemgebruiker ( all_squash). Maar als we de tweede map nfs_dir2 aankoppelen, kan ALLEEN root ernaar schrijven, omdat er een optie is no_root_squash... Controleren.

# mkdir / mnt / dir1 # mkdir / mnt / dir2 # mount 192.168.2.213:/home/alex/nfs_dir1 / mnt / dir1 # mount 192.168.2.213:/home/alex/nfs_dir2 / mnt / dir2 of # mount -t nfs4 -o rw, hard, intr, bg 192.168.2.213:/home/alex/nfs_dir2 / mnt / dir2 # echo "Hallo"> / mnt / dir1 / file1 # echo "Hallo"> / mnt / dir2 / file1 # su alex $ echo "Hallo"> / mnt / dir1 / file1 $ echo "Hallo"> / mnt / dir2 / file1 bash: / mnt / dir2 / file1: Toestemming geweigerd

Mogelijke montagevlaggen.

Vlag Beschrijving
rw Mount het bestandssysteem voor lezen / schrijven (het moet door de server worden geëxporteerd in lees / schrijfmodus)
e Een alleen-lezen bestandssysteem aankoppelen
bg Als het bestandssysteem niet kan worden aangekoppeld (de server reageert niet), moet u de bewerking op de achtergrond plaatsen en doorgaan met het verwerken van andere aankoppelverzoeken.
moeilijk Als de server niet beschikbaar is, worden bewerkingen die toegang proberen te krijgen, geblokkeerd totdat de server weer wordt ingeschakeld
zacht Als de server niet werkt, mislukken bewerkingen die toegang proberen te krijgen met een foutmelding. Deze vlag is handig om in te stellen om te voorkomen dat processen blijven hangen in het geval van een mislukte montage van niet erg belangrijke bestandssystemen.
intro Maakt het mogelijk om vergrendelde bewerkingen vanaf het toetsenbord te onderbreken (er worden foutmeldingen weergegeven)
nointr Voorkomt onderbreking van vergrendelde bewerkingen vanaf het toetsenbord
retrans = n Specificeert hoe vaak het verzoek moet worden herhaald voordat een foutmelding wordt gegeven (voor bestandssystemen die zijn aangekoppeld met de zachte vlag)
timeo = n Stelt het time-outinterval in voor verzoeken (in tienden van een seconde)
grootte = n Stelt de leesbuffergrootte in op n bytes
wsize = fl Stelt de schrijfbuffergrootte in op n bytes
sec = modus Stelt de beveiligingsmodus in
vers = n Specificeert de versie van het NFS-protocol
proto = protocol Selecteert een transportprotocol; het zou tcp-protocol moeten zijn voor NVS-versie 4.

U kunt ook vanuit de console controleren of de server het bestandssysteem correct heeft geëxporteerd.

[e-mail beveiligd]~ # showmount -e 192.168.2.213 Exportlijst voor 192.168.2.213: / home / alex / nfs_dir2 192.168.2.0/24 / home / alex / nfs_dir1 192.168.2.180

Koppeling toevoegen aan opstarten

# cat / etc / fstab ... 192.168.2.213:/home/alex/nfs_dir2 / mnt / dir2 nfs4 rw, bg, intr, hard, nodev, nosuid 0 0

[e-mail beveiligd]~ # mount -a -t nfs4

Mogelijke fouten.

[e-mail beveiligd]~ # mount -a -t nfs4 mount.nfs4: koppelpunt / mnt / dir2 bestaat niet [e-mail beveiligd]~ # mount -a -t nfs4 mount.nfs4: remote share niet in "host: dir" formaat

In het eerste geval moet u een map maken. De tweede bevat syntaxisfouten in fstab.
Als je fouten hebt tijdens het aankoppelen van NFS-partities - ga door de lijst Mogelijke fouten uit het vorige gedeelte.
U kunt ook autofs gebruiken om NFS-partities aan te koppelen. Wat wordt er besproken in.

Niet iedereen is bekend met protocollen voor gegevensoverdracht. Maar velen willen hun computers op één netwerk aansluiten of een server gebruiken om bestanden op te slaan. Een manier om dit te doen: NFS. Hoe een NFS-server in Ubuntu op te zetten - lees verder.

Door NFS correct te configureren, kunt u computers op verschillende besturingssystemen combineren in één netwerk.

Network File System is een protocol voor toegang tot netwerkbestanden. Zoals gebruikelijk bestaat het uit twee delen. Een daarvan is die van de klant, die zich op de computer bevindt van waaruit de externe gegevens worden bekeken. De andere, de serverruimte, bevindt zich op de computer waar deze gegevens worden opgeslagen. Het is best handig om extra schijfruimte te gebruiken, vooral op een lokaal netwerk. En als we het hebben over sommige zakelijke pc's, dan is dit gewoon nodig.

Wat is het verschil?

Tegenwoordig zijn er een groot aantal protocollen en zeer verschillende software die dezelfde functies uitvoeren. Waarin onderscheidt NFS zich?

  • De mogelijkheid om verbinding te maken met één netwerk van computers op verschillende besturingssystemen. Het is vaak handig voor Windows OS om via NFS verbinding te maken met een Unix-systeem zoals Ubuntu. Samba bestaat en wordt voor hetzelfde doel gebruikt, maar NFS is eenvoudiger, eenvoudiger en sneller dan dit programma, omdat het op kernelniveau wordt geïmplementeerd. Daarom is het meestal gemakkelijker om de toegang erdoor te configureren.
  • NFS biedt transparante toegang tot bestanden. Dit betekent dat alle externe bestanden op dezelfde manier worden afgespeeld als lokale bestanden. Programma's hoeven niet te worden geüpgraded om een ​​bestand op de server af te spelen.
  • NFS verzendt alleen het gevraagde deel van het bestand, niet het hele bestand.

Om het Network File System voor volledige werking te installeren, is het noodzakelijk op ten minste twee computers: een server en een client. Natuurlijk zal een beginner zich het meest moeten bekommeren om het servergedeelte, aangezien het daar is dat je mappen moet "delen" (open access). Dit is echter allemaal vrij eenvoudig te doen.

Zoals de meeste protocollen voor gegevensoverdracht, is NFS helemaal niet jong. Het werd ontwikkeld in 1984 en was bedoeld voor UNIX-systemen. Dit is nog steeds de hoofdrol van NFS, maar velen hebben het erg handig gevonden om Windows- en Linux-computers ermee te verbinden. Bovendien is NFS geweldig voor het afspelen van multimedia-inhoud via een lokaal thuisnetwerk. Samba in deze rol bevriest vaak en vertraagt.

De NFS-backend installeren

We zullen het servergedeelte van het protocol installeren op Ubuntu 16.04. Als je een Server-editie hebt, is het proces natuurlijk niet anders. Alleen in de traditionele versie van Ubuntu kunnen sommige acties worden uitgevoerd met behulp van de grafische interface.

Het programma installeren. Om dit te doen, kunt u het Application Download Center gebruiken, of u kunt eenvoudig de opdracht invoeren:

sudo apt install nfs-kernel-server

Daarna is het overbodig om de juistheid van de installatie te controleren. Het is niet nodig om dit te doen, maar we zullen het toch controleren. We voeren het commando in:

De poort moet overal 2049 zijn.

Nu controleren we of de kernel NFS ondersteunt. Voer hiervoor in:

cat / proc / bestandssystemen | grep nfs

De resulterende waarde zou er als volgt uit moeten zien: nodev nfsd

Dit betekent dat alles naar behoren functioneert. Zo niet, voer dan het commando in:

Hiermee installeren we de kernelmodule zelf.

Voeg het protocol toe aan autorun. Het is niet nodig om dit te doen, maar het is erg onhandig om het elke keer aan te zetten. U kunt, nogmaals, een speciaal menu-item in de instellingen toevoegen, of u kunt het zelf doen met de opdracht:

sudo systemctl nfs inschakelen

Dus we hebben het servergedeelte geïnstalleerd, het blijft om het correct te configureren en naar de client te gaan.

Maatwerk

Het instellen van NFS in Ubuntu omvat het delen van specifieke mappen.

Naast het eenvoudig openen van toegang, moet u ook de parameters specificeren die de mogelijkheden van de gebruiker met betrekking tot deze map bepalen.

  • rw - lezen en schrijven van deze parameter maakt het lezen en schrijven van bestanden in de map mogelijk.
  • ro - alleen lezen - staat alleen het lezen van de map toe.
  • sync (standaard) - deze parameter zorgt voor de betrouwbaarheid van de overdracht. Als het is ingeschakeld, is het niet mogelijk om tegelijkertijd meerdere bestanden of naar verschillende computers over te dragen. Deze instelling voorkomt dat andere verzoeken worden beantwoord. Voorkomt verlies van gegevens, maar verzending kan langzamer zijn.
  • async is het tegenovergestelde van de vorige parameter. De overdracht is sneller, maar er is een risico op informatieverlies.
  • beveiligd - met deze optie kunnen alleen poorten worden gebruikt waarvan het nummer lager is dan 1024. Standaard ingeschakeld.
  • onveilig - staat het gebruik van alle poorten toe.
  • nohide - als u meerdere mappen aankoppelt, waaronder geneste, dan worden de geneste, in tegenstelling tot de bovenliggende, als leeg weergegeven. De parameter zal helpen om dit op te lossen.
  • anonuid - Specificeert de uid voor anonieme gebruikers. Dit is een speciaal gebruikers-ID.
  • anongid - Specificeert de gid voor anoniem. GID (Groeps-ID) is een andere gebruikersidentificatie.
  • no_subtree_check - de functie schakelt substructuurcontrole uit. Het feit is dat zonder dit NFS bovendien controleert of gebruikers alleen toegang hebben tot de noodzakelijke partities van de map. Dit vertraagt ​​de zaken. Met de parameter kunt u het versnellen, maar de beveiliging verlagen.

We zullen ze gebruiken afhankelijk van wat nodig is in een bepaalde situatie.

Laten we een nieuwe map maken. U kunt ook een nieuwe gebruiken. Onze map is / var / netwerk.

Nu moet je deze map toevoegen aan het bestand / etc / exports. Alle bestanden en mappen met open netwerktoegang worden daar opgeslagen. De invoer zou er als volgt uit moeten zien:

/var/network168.1.1(rw,async,no_subtree_check)

192.168.1.1 is het IP waarover we verzenden. Het is verplicht dit aan te geven.

We werken de exporttabel bij:

Laten we nu proberen de map vanaf de clientzijde te openen.

De NFS-client installeren en configureren

Ubuntu

Het zal niet moeilijk zijn om een ​​geconfigureerde server met Ubuntu te verbinden. Dit gebeurt in slechts een paar commando's.

Installeer een speciaal clientpakket:

sudo apt install nfs-common

sudo mount 192.168.1.1:/var/network/ / mnt /

De netwerkmap is verbonden. Met df kunt u alle aangesloten netwerkmappen controleren:

U kunt uw toegangsniveau ook controleren met een speciaal commando:

Schakel het bestandssysteem als volgt uit:

Het mount-commando wordt bijna overal gebruikt. Zij is verantwoordelijk voor het montageproces, dat wil zeggen het voorbereiden van ruimte op de harde schijf voor gebruik door het besturingssysteem. Het klinkt ingewikkeld, maar als we het vereenvoudigen, blijkt dat we netwerkbestanden gewoon naar onze computer overzetten in de nieuw aangemaakte map. Hier heet het / mnt /.

ramen

Met Windows is alles in de regel veel gecompliceerder. De NFS-client kan zonder problemen worden uitgevoerd op alle server-Windows. Van de standaard is het aanwezig op:

  • Windows 7 Ultimate / Enterprise
  • Windows 8 / 8.1 Enterprise
  • Windows 10 Enterprise

Nergens anders te vinden. Als u een van deze versies heeft, doet u het volgende:

  1. Open het menu "Programma's en onderdelen".
  2. Klik op "Componenten toevoegen".
  3. We vinden daar NFS en zetten alleen "Client for NFS", we hebben geen ander onderdeel nodig.

Na het aansluiten wordt alles gemount met hetzelfde commando:

mount 192.168.1.1:/var/network/ / mnt /

U kunt als volgt ontkoppelen:

Opdrachten worden ingevoerd in een opdrachtregel die als beheerder wordt uitgevoerd. Daarna kunt u met Verkenner eenvoudig de gewenste netwerkschijf vinden.

Maar wat als er geen NFS-client op de computer staat? U kunt proberen de software te downloaden via de Microsoft-website of via bronnen van derden. Hier kunnen andere commando's of acties nodig zijn.

Nu heb je een basiskennis van hoe je NFC kunt gebruiken en de eenvoudigste installatie kunt doorlopen. Deze kennis is voldoende om toegang te krijgen van de ene computer naar de andere. Bovendien kan een Windows-pc ook als client fungeren.

Handige oplossing voor toegang tot een gedistribueerd bestandssysteem

Het bestandssysteem is een must. We werken op computers die toegang bieden tot printers, camera's, databases, sensoren op afstand, telescopen, compilers en mobiele telefoons. Deze apparaten hebben weinig gemeen - met name veel van hen werden realiteit nadat internet alomtegenwoordig werd (bijvoorbeeld elektronische camera's en mobiele apparaten die fungeren als kleine computers). Ze hebben echter allemaal een bestandssysteem nodig om informatie op te slaan en veilig te openen.

Het maakt ons meestal niet uit hoe de gegevens, de toepassingen die ze gebruiken en de interfaces die ze aan ons presenteren, op de computers zelf worden opgeslagen. De meeste gebruikers willen (en terecht) het bestandssysteem zien als een muur die hen scheidt van het kale metaal dat bits en bytes opslaat. Daarom zijn de protocolstacks die bestandssystemen met elkaar verbinden meestal zwarte dozen voor de meeste gebruikers, en zelfs programmeurs. Uiteindelijk komt het netwerken van al deze apparaten er echter op neer dat gegevens tussen bestandssystemen kunnen worden uitgewisseld.

Netwerkbestandssystemen en andere heilige praktijken

Gegevensuitwisseling is in veel opzichten niets meer dan het kopiëren van informatie over lange afstanden. Netwerkprotocollen waren niet het enige middel waarmee universele communicatie mogelijk werd. Elk computersysteem moet immers datagrammen vertalen naar iets dat het besturingssysteem aan de andere kant kan begrijpen. TCP is een zeer efficiënt overdrachtsprotocol, maar het is niet geoptimaliseerd voor snelle toegang tot bestanden of afstandsbediening van toepassingssoftware.

Gedistribueerd versus netwerkcomputing

Traditionele netwerkprotocollen hebben weinig te bieden voor het organiseren van berekeningen die tussen computers en bovendien tussen netwerken worden verdeeld. Alleen roekeloze programmeurs zouden vertrouwen op dataprotocollen en optische kabels voor parallel computergebruik. We vertrouwen meestal op een sequentieel model, waarin, zodra een verbinding tot stand is gebracht, link-layer-protocollen beginnen te werken, waarbij een nogal complexe hallo-procedure tussen netwerkkaarten wordt uitgevoerd. Parallel computing en gedistribueerde bestandssystemen zijn niet langer afhankelijk van IP of Ethernet. Momenteel kunnen we ze gewoon negeren als we het over prestaties hebben. Veiligheidskwesties zijn echter een andere zaak.

Een stukje van de puzzel is hoe de toegang tot bestanden is georganiseerd op een computersysteem. Voor het systeem dat toegang heeft tot de bestanden, maakt het niet uit of de benodigde bestanden op één computer beschikbaar zijn of dat ze zich om de een of andere reden op meerdere computers bevinden. Momenteel zijn bestandssysteemsemantiek en bestandssysteemdatastructuren twee heel verschillende onderwerpen. De semantiek van het Plan 9 of Andrew File System (AFS) -stijl gedistribueerd bestandssysteem verbergt de manier waarop bestanden zijn georganiseerd of de manier waarop het bestandssysteem is toegewezen aan hardware en netwerken. NFS verbergt niet noodzakelijk de manier waarop bestanden en mappen worden opgeslagen op externe bestandssystemen, maar het onthult ook niet de feitelijke hardware-opslag van bestandssystemen, mappen en bestanden.

NFS: het UNIX-probleem oplossen

Toegang tot het gedistribueerde bestandssysteem vereist echter iets meer dan een paar commando's om gebruikers in staat te stellen een map te mounten die zich op een andere computer op het netwerk bevindt. Sun Microsystems liep een paar jaar geleden tegen dit probleem aan toen het begon met de distributie van iets genaamd Procedureoproepen op afstand(RPC's) en NFS.

Het belangrijkste probleem dat Sun probeerde op te lossen, was hoe meerdere UNIX-machines met elkaar konden worden verbonden om een ​​enkele gedistribueerde werkomgeving te creëren zonder de semantiek van het UNIX-bestandssysteem te hoeven herschrijven en te veel datastructuren toe te voegen die specifiek zijn voor gedistribueerde bestandssystemen - de integriteit van elk systeem had terwijl gebruikers de mogelijkheid krijgen om met de directory op een andere computer te werken zonder ongewenste vertragingen of beperkingen in hun workflow te veroorzaken.

Natuurlijk doet NFS meer dan toegang geven tot tekstbestanden. U kunt ook "opstart"-toepassingen distribueren via NFS. Beveiligingsprocedures worden gebruikt om het netwerk te beschermen tegen kwaadwillige interferentie door uitvoerbare bestanden. Maar hoe gebeurt dit precies?

NFS is RPC

NFS wordt traditioneel gedefinieerd als een RPC-toepassing die TCP vereist voor de NFS-server en ofwel TCP of een ander niet-overweldigend protocol voor de NFS-client. De Internet Engineering Task Force (IETF) heeft een Request for Comments (RFC) voor RPC gepubliceerd in RFC 1832. Een andere standaard die essentieel is voor het functioneren van een NFS-implementatie zijn de gegevensformaten die door NFS worden gebruikt; het werd gepubliceerd in RFC 1831 als een External Data Representation (XDR) document.

Andere RFC's behandelen de beveiligings- en encryptie-algoritmen die worden gebruikt bij de uitwisseling van authenticatie-informatie tijdens NFS-sessies, maar we zullen ons eerst concentreren op de basismechanismen. Een van de protocollen waarin we geïnteresseerd zijn, is: Koppel protocol beschreven in bijlage 1 van RFC 1813.

Deze RFC beschrijft welke protocollen NFS in staat stellen te functioneren, maar beschrijft niet hoe NFS functioneert in tegenwoordige tijd... Je hebt al iets belangrijks geleerd, namelijk dat NFS-protocollen zijn gedocumenteerd als IETF-standaarden. Nadat de nieuwste versie van NFS op nummer 3 bleef steken, evolueerden RPC-protocollen niet verder dan de RFC-informatiefase en werden ze over het algemeen gezien als vallend onder de (vermoedelijk) enorme technische werkgroep van Sun Microsystems en eigen UNIX-smaken. Sinds 1985 heeft Sun verschillende versies van NFS uitgebracht en loopt daarmee een aantal jaren vooruit op de meeste moderne bestandssystemen. Sun Microsystems droeg de controle over NFS in 1998 over aan de IETF, en veel van het werk aan NSF versie 4 (NFSv4) werd uitgevoerd onder auspiciën van de IETF.

Dat wil zeggen, wanneer u vandaag met RPC en NFS werkt, werkt u met een versie die de belangen van niet-Sun-bedrijven en groepen weerspiegelt. Veel technici van Sun blijven echter zeer geïnteresseerd in NFS-ontwikkeling.

NFS-versie 3

NFS in zijn incarnatie als versie 3 (NFSv3) is stateless (niet stateful), maar NFSv4 wel. Deze fundamentele uitdrukking verbaast tegenwoordig bijna niemand, hoewel de TCP / IP-wereld waarop NFS is gebouwd voor het grootste deel stateloos is - een feit waardoor bedrijven in verkeersanalyse en beveiligingssoftware zich redelijk goed voelen.

Het NFSv3-protocol was afhankelijk van verschillende aanvullende protocollen om mappen op externe computers transparant te koppelen om niet afhankelijk te zijn van de bestandssysteemmechanismen die ze gebruikten. NFS is hier niet altijd goed in geweest. Een goed voorbeeld is het Mount-protocol dat de initiële bestandsidentificatie wordt genoemd, terwijl het Network Lock Manager-protocol de bestandsvergrendeling deed. Voor beide bewerkingen was een huidige status vereist die NFSv3 niet bood. Bijgevolg waren er complexe interacties tussen protocollagen die niet overeenkwamen met vergelijkbare gegevensstroommechanismen. Als je daar nog aan toevoegt dat het maken van bestanden en mappen totaal anders is in Microsoft® Windows® dan in UNIX, wordt de situatie nog ingewikkelder.

Het NFSv3-protocol moest poorten gebruiken om enkele van zijn aanvullende protocollen te leveren; dit geeft een vrij complex beeld van poorten, protocollagen en de bijbehorende beveiligingsproblemen. Tegenwoordig is dit werkingsmodel verlaten en worden alle bewerkingen die voorheen de implementatie van het hulpprotocol uitvoerden via afzonderlijke poorten bestuurd door het NFSv4-protocol via één bekende poort.

NFSv3 was ook klaar voor Unicode-bestandssystemen - een voordeel dat tot eind jaren negentig enigszins theoretisch bleef. Het kwam goed overeen met de semantiek van het UNIX-bestandssysteem en was de reden voor de creatie van concurrerende bestandssysteemimplementaties zoals AFS en Samba. Het is niet verrassend dat de Windows-ondersteuning slecht was, maar Samba-bestandsservers zorgden voor het delen van bestanden tussen UNIX- en Windows-systemen.

NFS-versie 4

Het NFSv4-protocol is, zoals we hebben opgemerkt, een stateful-protocol. Verschillende radicale veranderingen maakten dit gedrag mogelijk. We hebben al vermeld dat de helperprotocollen moeten worden aangeroepen omdat de processen op gebruikersniveau zijn geëlimineerd. In plaats daarvan werden alle bestandsopenbewerkingen en nogal wat RPC-aanroepen geïmplementeerd als bestandssysteembewerkingen op kernelniveau.

Alle NFS-versies definieerden elke werkeenheid in termen van RPC-client- en serverbewerkingen. Elk NFSv3-verzoek vereiste een behoorlijk aantal RPC- en poortopen-aanroepen om het resultaat te retourneren. Versie 4 vereenvoudigde dit door het concept van de zogenaamde composiet(compound) een bewerking die een groot aantal bewerkingen op objecten in het bestandssysteem omvat. Het directe effect was natuurlijk aanzienlijk minder RPC-oproepen en minder gegevens die via het netwerk moesten worden overgedragen, hoewel elke RPC-oproep in feite meer gegevens bevatte, waardoor er aanzienlijk meer werk werd verzet. Er werd geschat dat voor RPC-aanroepen in NFSv3 vijf keer zoveel client-server-interacties nodig waren als voor samengestelde RPC-procedures.

RPC is eigenlijk niet langer van dat belang en omvat in wezen een paar bewerkingen die zijn ingekapseld in de NFSv4-stack. Deze wijziging maakte de protocolstack ook veel minder afhankelijk van de semantiek van het gebruikte bestandssysteem. Maar dit betekent niet dat bestandssysteembewerkingen op andere besturingssystemen zijn genegeerd: het delen van Windows-bronnen vereist bijvoorbeeld een aanhoudende status bij alle oproepen om de bron te openen. Statefulness maakt het niet alleen gemakkelijker om verkeer te analyseren, maar wanneer het wordt geïmplementeerd op het semantiekniveau van het bestandssysteem, worden de bewerkingen van het bestandssysteem veel beter beheersbaar. Stateful open resource-aanroepen stellen clients in staat om bestandsgegevens en statussen in de cache op te slaan die anders op de server zouden plaatsvinden. In het echte leven (waar Windows-clients alomtegenwoordig zijn), is het de tijd waard die u besteedt aan het configureren van de NFS-configuratie om NFS-servers transparant en verenigd met gedeelde Windows-bronnen te maken.

NFS gebruiken

Het installeren van NFS is over het algemeen vergelijkbaar met het installeren van Samba. Aan de serverkant definieert u de bestandssystemen of directory's om te exporteren, of delen; de client-side mount deze mappen. Wanneer een externe client een NFS-directory aankoppelt, is de directory toegankelijk net als elke andere directory op het lokale bestandssysteem. Het instellen van NFS op een server is een eenvoudig proces. U moet minimaal het bestand /etc / exports maken of bewerken en de NFS-daemon starten. Om een ​​veiligere NFS-service te configureren, moet u ook de bestanden /etc/hosts.allow en /etc/hosts.deny bewerken. De NFS-client vereist alleen het mount-commando. Voor meer informatie en opties, zie de Linux® online documentatie (man-pagina).

Nfs-server

De vermeldingen in het bestand / etc / exports zijn duidelijk. Om het bestandssysteem te delen, wijzigt u het bestand / etc / exports en beschrijft u het bestandssysteem (met parameters) in het volgende algemene formaat:

directory (of bestandssysteem) client1 (optie1, optie2) client2 (optie1, optie2)

Algemene parameters

Er zijn verschillende algemene opties beschikbaar om uw NFS-implementatie aan te passen. Waaronder:

  • zeker: Deze parameter gebruikt (standaard) een beschikbare TCP/IP-poort kleiner dan 1024 voor NFS-verbindingen.Het specificeren van onveilig schakelt dit uit.
  • rw: Deze parameter geeft NFS-clients lees-/schrijftoegang. De standaardtoegang is alleen-lezen.
  • asynchrone: Deze optie kan de prestaties verbeteren, maar het kan ook gegevensverlies veroorzaken wanneer de NFS-server opnieuw wordt opgestart zonder eerst de NFS-daemon te stoppen. De standaardinstelling is synchroniseren.
  • no_wdelay: Deze optie schakelt de opnamevertraging uit. Indien ingesteld op asynchrone modus, negeert NFS deze parameter.
  • geen huid: Als je de ene map boven op de andere koppelt, is de oude map meestal verborgen of ziet er leeg uit. Schakel de parameter hide in om dit gedrag uit te schakelen.
  • no_subtree_check: Met deze optie wordt de bewaking van de submap uitgeschakeld voor bepaalde beveiligingscontroles die u misschien niet wilt negeren. De standaardinstelling is om de besturing van submappen in te schakelen.
  • no_auth_nlm: Deze parameter, indien ingesteld op insecure_locks, vertelt de NFS-daemon om niet te authenticeren tijdens vergrendelingsverzoeken. De standaardwaarde is auth_nlm of secure_locks.
  • mp (aankoppelpunt = pad): Door deze parameter expliciet te declareren, vereist NSF dat de geëxporteerde map wordt aangekoppeld.
  • fsid = aantal: Deze parameter wordt vaak gebruikt bij het opzetten van een NFS-noodherstelsysteem. Raadpleeg de NFS-documentatie als u crashherstel voor NFS wilt implementeren.

Gebruikerstoewijzing

Via de NFS-gebruikerstoewijzing kunt u een pseudo-gebruiker of echte gebruiker en groep identificeren met de gebruiker die toegang heeft tot het NFS-volume. De NFS-gebruiker heeft gebruikers- of groepsrechten die de toewijzing toestaat. Het gebruik van een enkele (generieke) gebruiker en groep voor NFS-volumes biedt een niveau van bescherming en flexibiliteit zonder noemenswaardige administratieve inspanning.

Bij het gebruik van bestanden op een NFS-gemount bestandssysteem, wordt de gebruikerstoegang meestal geplet. Dit betekent dat de gebruiker toegang heeft tot de bestanden als een anonieme gebruiker die alleen-lezen toegang heeft tot die bestanden. Dit gedrag is vooral belangrijk voor de rootgebruiker. Er zijn echter situaties waarin u wilt dat een gebruiker als root of een andere specifieke gebruiker toegang heeft tot bestanden op een extern systeem. Met NFS kunt u een gebruiker specificeren (via gebruikersidentificatienummer (UID) en groepsidentificatienummer (GID)) om toegang te krijgen tot externe bestanden, en u kunt het normale "onderdrukking"-gedrag standaard uitschakelen.

Opties voor gebruikersweergave zijn onder meer:

  • root_squash: Deze optie voorkomt dat de rootgebruiker toegang krijgt tot het aangekoppelde NFS-volume.
  • no_root_squash: Met deze parameter heeft de rootgebruiker toegang tot het aangekoppelde NFS-volume.
  • all_squash: Deze optie, handig voor open access NFS-volumes, onderdrukt alle UID's en GID's en gebruikt alleen de anonieme gebruikersaccount. De standaardwaarde is no_all_squash.
  • anonuid en anongid: Deze parameters wijzigen de UID en GID van de anonieme gebruiker in het opgegeven account.

Lijst 1 toont voorbeelden van / etc / exportitems.

Lijst 1. Voorbeelden van / etc / exportitems
/ 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)

Het eerste item exporteert de / opt / files directory voor alle hosts op het 192.168.0 netwerk. De volgende invoer exporteert / opt / bestanden voor een enkele host: 192.168.0.120. Het derde item specificeert host 192.168.0.125 en biedt lees-/schrijftoegang tot bestanden met gebruikersrechten met gebruikers-ID = 210 en groeps-ID = 100. Het laatste item wordt gebruikt voor de openbare directory en geeft alleen-lezen toegang en alleen onder het anonieme gebruikersaccount.

NFS-client

Waarschuwingen

Zodra u NFS gebruikt om een ​​extern bestandssysteem aan te koppelen, maakt het ook deel uit van elke gedeelde systeemback-up die u op de clientcomputer uitvoert. Dit gedrag kan leiden tot mogelijk nadelige resultaten als u gekoppelde mappen niet uitsluit bij het maken van een back-up.

Om NFS als client te gebruiken, moet op de clientcomputer rpc.statd en portmap worden uitgevoerd. U kunt ps -ef uitvoeren om te controleren op de aanwezigheid van deze twee daemons. Als ze werken (zoals ze zouden moeten), kun je de door de server geëxporteerde map aankoppelen met de volgende algemene opdracht:

mount server: directory lokaal koppelpunt

Over het algemeen moet u als rootgebruiker werken wanneer u het bestandssysteem aankoppelt. Op de externe machine kunt u de volgende opdracht gebruiken (ervan uitgaande dat de NFS-server een IP-adres heeft van 192.168.0.100):

mount 192.168.0.100:/opt/files / mnt

Uw systeemdistributie kan vereisen dat u het type bestandssysteem specificeert wanneer u het aankoppelt. Gebruik in dat geval het commando:

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

De externe directory zou zonder problemen moeten worden geactiveerd als u de server correct hebt geconfigureerd. Voer nu de opdracht cd uit om naar de map / mnt te gaan en vervolgens de opdracht ls om de bestanden te bekijken. Om deze koppeling permanent te maken, moet u het bestand / etc / fstab wijzigen en een item maken dat lijkt op het volgende:

192.168.0.100:/opt/files / mnt nfs rw 0 0

Opmerking: Voor meer informatie over / etc / fstab-items, zie de fstab online help.

Kritiek op NFS

Kritiek zorgt voor verbetering

De kritiek op de beveiliging van NFS is de reden geweest voor veel van de verbeteringen in NSFv4. De makers van de nieuwe versie hebben echte maatregelen genomen om de beveiliging van client-server-interacties te versterken. Ze besloten zelfs om een ​​volledig nieuw model van het beveiligingssysteem te implementeren.

Om het beveiligingsmodel te begrijpen, moet u bekend zijn met de API. Algemene beveiligingsservices (GSS-API) versie 2, revisie 1. De GSS-API wordt volledig beschreven in RFC 2743, wat helaas een van de moeilijkere RFC's is om te begrijpen.

Uit onze ervaring met NFSv4 weten we dat het niet erg eenvoudig is om het netwerkbestandssysteem onafhankelijk te maken van het besturingssysteem. Maar het is nog moeilijker om alle onderdelen van het beveiligingssysteem onafhankelijk te maken van het besturingssysteem en de netwerkprotocollen. We hebben beide nodig, aangezien NFS een redelijk groot aantal gebruikersbewerkingen moet kunnen verwerken en dit moet doen zonder rekening te houden met de specifieke kenmerken van communicatie via het netwerkprotocol.

Verbindingen tussen NFS-clients en servers worden beschermd door een zogenaamd (vrij oppervlakkig) beveiligingssysteem. sterk RPC. NFSv4 gebruikt de Open Network Computing Remote Procedure Call (ONCRPC)-standaard zoals gedefinieerd in RFC 1831. Het beveiligingssysteem moest worden versterkt, dus in plaats van eenvoudige authenticatie (bekend als AUTH_SYS) als verplicht onderdeel van het NFSv4-protocol, een vorm van op GSS-API gebaseerd beveiligingssysteem dat bekend staat als RPCSEC_GSS... De belangrijkste beveiligingsmechanismen die beschikbaar zijn in NFSv4 zijn Kerberos versie 5 en LIPKEY.

Hoewel Kerberos beperkingen heeft bij gebruik op internet, heeft LIPKEY een mooi voordeel: door op te treden als een Secure Sockets Layer (SSL), vraagt ​​het gebruikers om hun gebruikersnamen en wachtwoorden, terwijl de TCP-afhankelijkheid van SSL wordt vermeden, een afhankelijkheid die NFSv4 niet heeft deel. U kunt NFS configureren om beveiligingsvarianten te implementeren als RPCSEC_GSS niet vereist is. Eerdere versies van NFS hadden deze mogelijkheid niet en konden daarom geen kwaliteitsbeveiliging, gegevensintegriteit, authenticatievereisten of soorten codering bieden.

Het NFSv3-protocol heeft veel kritiek gekregen op de beveiliging. Als NFSv3-servers via TCP zouden draaien, was het absoluut realistisch om NFSv3-netwerken via internet te laten draaien. Helaas moesten ook verschillende poorten worden geopend, wat leidde tot verschillende goed gepubliceerde beveiligingslekken. Door poort 2049 verplicht te maken voor NFS, werd het mogelijk om NFSv4 te gebruiken met firewalls zonder al te veel aandacht te besteden aan welke poorten andere protocollen luisterden, zoals het Mount-protocol. Het verwijderen van het Mount-protocol had dus verschillende positieve effecten:

  • Verplichte sterke authenticatiemechanismen: NFSv4 heeft sterke authenticatiemechanismen verplicht gesteld. Kerberos-smaken komen vrij vaak voor. Het Lower Infrastructure Public Key Mechanism (LIPKEY) moet ook worden ondersteund. NFSv3 ondersteunde nooit meer dan standaard UNIX-codering voor toegangsauthenticatie - dit vormde een groot beveiligingsprobleem in grote netwerken.
  • Verplichte toegangsbeheerlijst (ACL)-schema's in Microsoft Windows NT-stijl: Hoewel NFSv3 sterke codering toestond voor authenticatie, maakte het geen gebruik van Windows NT-stijl ACL-toegangsschema's. Portable Operating System Interface (POSIX) stijl ACL's werden soms geïmplementeerd, maar werden nooit algemeen aanvaard. NFSv4 maakte ACL's in Windows NT-stijl verplicht.
  • Onderhandelde authenticatiemechanismen en -stijlen: NFSv4 bood de mogelijkheid om te onderhandelen over authenticatiemechanismen en -stijlen. In NSFv3 was het onmogelijk om meer te doen dan handmatig de te gebruiken coderingsstijl te definiëren. De systeembeheerder moest vervolgens onderhandelen over codering en beveiligingsprotocollen.

Loopt NFS nog steeds voor op de concurrentie?

NFSv4 vervangt NFSv3 op de meeste UNIX- en Linux-systemen. Als netwerkbestandssysteem heeft NSFv4 weinig concurrenten. Een levensvatbare concurrent zou het Common Internet File System (CIFS) / Server Message Block (SMB) zijn, aangezien het aanwezig is in alle smaken van Windows en (momenteel) Linux. AFS heeft nooit veel commerciële invloed gehad; het benadrukte de elementen van gedistribueerde bestandssystemen die gegevensmigratie en -replicatie vergemakkelijken.

Linux-ready versies van NFS werden uitgebracht nadat de kernel versie 2.2 had bereikt, maar een van de meest voorkomende fouten van Linux-kernelversies was dat Linux vrij laat NFSv3 adopteerde. Het duurde zelfs lang voordat Linux volledig in staat was om NSFv3 te ondersteunen. Met de komst van NSFv4 werd deze tekortkoming snel verholpen en werd volledige ondersteuning voor NSFv4 geïmplementeerd, niet alleen op Solaris, AIX en FreeBSD.

NFS wordt momenteel beschouwd als een volwassen technologie die een vrij groot voordeel heeft: het is veilig en handig - de meeste gebruikers vinden het handig om één veilige login te gebruiken om toegang te krijgen tot het netwerk en de mogelijkheden ervan te gebruiken, zelfs wanneer bestanden en applicaties zich op verschillende systemen bevinden. Hoewel dit een nadeel lijkt in vergelijking met gedistribueerde bestandssystemen, die systeemstructuren voor gebruikers verbergen, moet u er rekening mee houden dat veel toepassingen bestanden gebruiken die zich op verschillende besturingssystemen en dus op verschillende computers bevinden. NFS maakt het gemakkelijk om met verschillende besturingssystemen te werken zonder dat u zich al te veel zorgen hoeft te maken over de semantiek en prestatiekenmerken van het bestandssysteem.

Network File System NFS, of Network File System, is een populair netwerkbestandssysteemprotocol waarmee gebruikers externe netwerkmappen op hun computer kunnen koppelen en bestanden tussen servers kunnen overbrengen. U kunt schijfruimte op een andere computer gebruiken voor uw bestanden en werken met bestanden op andere servers. In feite is dit een alternatief voor Windows delen voor Linux, in tegenstelling tot Samba, het is geïmplementeerd op kernelniveau en werkt stabieler.

Dit artikel helpt u bij het installeren van nfs op Ubuntu 16.04. We zullen de installatie van alle benodigde componenten doornemen, een gedeelde map instellen en netwerkmappen verbinden.

Zoals reeds vermeld, is NFS een netwerkbestandssysteem. Om te werken, hebt u een server nodig die de gedeelde map host en clients die de netwerkmap als een gewone schijf in het systeem kunnen koppelen. In tegenstelling tot andere protocollen biedt NFS transparante toegang tot externe bestanden. Programma's zullen bestanden zien als in een normaal bestandssysteem en ermee werken zoals met lokale bestanden, nfs retourneert alleen het gevraagde deel van het bestand, in plaats van het hele bestand, dus dit bestandssysteem werkt prima op systemen met snel internet of lokaal netwerk .

NFS-componenten installeren

Voordat we met NFS kunnen werken, moeten we een aantal programma's installeren. Op de machine die de server zal zijn, moet u het pakket nfs-kernel-server installeren, dat nfs-shares zal openen in ubuntu 16.04. Voer hiervoor het volgende uit:

sudo apt install nfs-kernel-server

Laten we nu controleren of de server correct is geïnstalleerd. De NFS-service luistert naar verbindingen voor zowel TCP als UDP op poort 2049. U kunt zien of deze poorten daadwerkelijk worden gebruikt met het commando:

rpcinfo -p | grep nfs

Het is ook belangrijk om te controleren of NFS op kernelniveau wordt ondersteund:

cat / proc / bestandssystemen | grep nfs

We zien wat werkt, maar als dat niet het geval is, moet je de nfs-kernelmodule handmatig laden:

Laten we ook nfs aan het opstarten toevoegen:

sudo systemctl nfs inschakelen

Op de clientcomputer moet u het nfs-common-pakket installeren om met dit bestandssysteem te kunnen werken. U hoeft de servercomponenten niet te installeren, alleen dit pakket is voldoende:

sudo apt install nfs-common

Een NFS-server instellen op Ubuntu

We kunnen NFS-toegang tot elke map openen, maar laten we voor dit doel een nieuwe maken:

folder_address cliënt (opties)

Het mapadres is de map die u via het netwerk beschikbaar wilt stellen. Client - ip-adres of netwerkadres van waaruit deze map toegankelijk is. Maar de opties zijn iets ingewikkelder. Laten we er een paar bekijken:

  • rw- sta lezen en schrijven in deze map toe
  • ro- alleen lezen toestaan
  • synchroniseren- reageer alleen op de volgende verzoeken wanneer de gegevens op schijf zijn opgeslagen (standaard)
  • asynchrone- blokkeer geen verbindingen terwijl gegevens naar schijf worden geschreven
  • zeker- gebruik alleen poorten onder 1024 voor verbinding
  • onzeker- gebruik alle poorten
  • geen huid- verberg geen submappen bij het openen van toegang tot meerdere mappen
  • root_squash- vervang verzoeken van root door anonieme verzoeken
  • all_squash- maak alle verzoeken anoniem
  • anoniem en anongid- specificeert de uid en gid voor de anonieme gebruiker.

Voor onze map kan deze regel er bijvoorbeeld als volgt uitzien:

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

Als alles is ingesteld, blijft het om de NFS-exporttabel bij te werken:

sudo exportfs -a

Dat is alles, het openen van nfs-ballen in ubuntu 16.04 is voltooid. Laten we nu proberen de client te configureren en te mounten.

NFS-verbinding

We zullen in het artikel van vandaag niet in detail op deze kwestie ingaan. Dit is een vrij groot onderwerp dat een apart artikel verdient. Maar ik zal een paar woorden zeggen.

Om een ​​netwerkmap te mounten heb je geen ubuntu nfs-client nodig, gebruik gewoon het mount-commando:

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

Nu kunt u proberen een bestand aan te maken in de verbonden map:

We zullen ook kijken naar de gemounte bestandssystemen met df:

127.0.0.1:/var/nfs 30G 6,7G 22G 24% / mnt

Om dit bestandssysteem uit te schakelen, gebruikt u gewoon de standaard umount:

sudo umount / mnt /

conclusies

In dit artikel is gekeken naar het instellen van nfs ubuntu 16.04, zoals je kunt zien, wordt alles heel eenvoudig en transparant gedaan. Het verbinden van NFS-shares gebeurt in een paar klikken met behulp van standaardopdrachten, en het openen van nfs-shares in ubuntu 16.04 is niet veel moeilijker dan verbinden. Als je vragen hebt, schrijf dan in de comments!

Gerelateerde items: