Sun Microsystems' NFS (Network File System) is een RPC-gebaseerde gedistribueerde bestandssysteemstructuur waarmee netwerkapparaten servers met NFS via een netwerk kunnen gebruiken als hun lokale schijven.
Hier is een stapsgewijze handleiding voor het opzetten en configureren van een NFS-server op een Linux-machine.
Wat is netwerkbestandssysteem?
Het NFS-bestandssysteem heeft vier protocollen. Wanneer de server gereed is, geeft hij portmap (de server die het protocol omzet in poortnummers) de te gebruiken poort door en geeft hij het gecontroleerde RPC-programmanummer door.
Wanneer u een embedded Linux-systeem gebruikt, is het erg handig om uw apparaat op te starten via een NFS-bestandsshare via het netwerk in plaats van het rechtstreeks vanaf het opslagapparaat te starten (NAND-flash, eMMC, MMC, enz.).
Hoewel het zeldzamer is, wilt u misschien ook een NFS-share koppelen en er bestandsshares mee uitvoeren nadat het systeem is opgestart, zelfs als u uw systeem niet rechtstreeks vanaf de NFS-share opstart. Om beide scenario's te laten werken, moet u eerst een NFS-server installeren op de computer waarop u zich ontwikkelt.
Hoe NFS op Linux te installeren
Als u een Op Debian gebaseerd systeem zoals Ubuntu of Linux Mint, moet u de nfs-kernel-server pakket als volgt:
sudo apt installeren nfs-kernel-server
Op Arch Linux:
sudo pacman -S nfs-utils
Op Fedora, CentOS en RHEL:
sudo dnf -y installeren nfs-utils
Aan het einde van het proces wordt uw NFS-server automatisch uitgevoerd. Op dit moment weet het echter nog niet welke mappen op uw computer u via het netwerk wilt delen. Daarom biedt het standaard geen delen.
U kunt meerdere mappen op dezelfde server openen om netwerkdeling met verschillende autorisaties en beperkingen mogelijk te maken.
De NFS-server configureren op Linux
Om een directory via de NFS-server te delen, is het nodig om een directory-gerelateerde instelling te configureren in de /etc/exports het dossier. Open het bestand met een teksteditor naar keuze. Zorg ervoor dat u het sudo-voorvoegsel aan de opdracht toevoegt.
sudo vim /etc/exporteert
Je vraagt je misschien af wat de kaartopties die je hier ziet betekenen:
- root_squash: Markeert sudo-geautoriseerde clientgebruikers als niemand-gebruiker en groep op NFS
- no_root_squash: Schakelt wortelpletten uit
- all_squash: In tegenstelling tot root_squash, kunnen alle gebruikers worden toegewezen als de niemand-gebruiker en -groep. Het wordt over het algemeen gebruikt voor openbare toegang.
- no_all_squash: Het tegenovergestelde van all_squash; deze optie is de standaard
Wanneer een systeem buiten de IP-bereiken die u in het /etc/exports-bestand op de NFS-server toestaat, toegang probeert te krijgen tot de relevante bron, zal de NFS-server het verzoek afwijzen.
U kunt "toegang geweigerd door server"-berichten ontvangen tijdens het monteren op uw embedded systeem. Foutmeldingen zoals de volgende verschijnen aan het einde van de /var/log/syslog bestand op de computer waarop de NFS-server draait:
rpc.mountd[1041]: geweigerd mount-verzoek van192.168.2.2voor /home/voorbeeld/casper/doel (/home/voorbeeld/casper/target): ongeëvenaarde host
Als u een ongeëvenaard hostlogbericht ziet zoals hierboven, moet u de sectie IP/Netmask van de relevante regel in het /etc/exports-bestand uitvouwen of de asterisk (*) speciaal teken als u toegang wilt verlenen tot alle IP-adressen.
U moet de NFS-service opnieuw starten nadat u wijzigingen hebt aangebracht in de /etc/exports het dossier:
sudo-service nfs-kernel-server opnieuw opstarten
Of, als uw distro wordt geleverd met systemctl, voert u de volgende opdracht uit:
sudosystemctlherstartennfs-server.onderhoud
U kunt ook de -r parameter naar de exportfs commando zodat het mappen opnieuw deelt die instellingen met betrekking tot de share hebben gewijzigd:
sudo exportfs -r
Het Mount Latency-probleem oplossen
Wanneer u NFS-protocol versie 4 en hoger op uw server gebruikt, kunnen er vertragingen tot 15 seconden optreden tijdens: het client-side mount-proces in traditionele bedieningsscenario's met de standaardconfiguraties van de NFS server. Dit probleem kan voorkomen in sommige versies van Debian, Fedora en Ubuntu.
Als u een vergelijkbare mount-lag ervaart, kunt u: controleer de logbestanden aan de serverzijde (/var/log/syslog, /var/log/messages) voor een logbericht dat lijkt op het volgende:
... RPC: AUTH_GSS upcall time-out
Dit bericht geeft aan dat Kerberos-verificatie is mislukt en dat er een time-out is opgetreden. U hebt waarschijnlijk het Kerberos-protocol niet nodig voor beveiligingsverificatie op het netwerk in uw omgeving. Zelfs als u zich in een netwerk bevindt dat op deze manier is geconfigureerd, in ieder geval met uw embedded Linux-systemen, hoeft u Kerberos-authenticatie niet in te schakelen.
Hoewel er alternatieven zijn aangeboden voor het uitvoeren van de GSSD-service met NFS om het probleem op te lossen, hebben deze benaderingen dat niet: dezelfde impact in alle distributies en pakketversies, en daarom is het het meest rationeel om dit probleem aan te pakken vanuit de wortel.
U moet de. blokkeren (of op de zwarte lijst zetten) rpcsec_gss_krb5 kernel-module wordt geladen op het Linux-systeem waarop de NFS-server wordt uitgevoerd.
Om deze optie elke keer dat u uw computer opnieuw opstart van kracht te laten worden, maak een nieuw bestand aan genaamd /etc/modprobe.d/nfs-gss-blacklist.conf en voeg er de volgende regels aan toe:
zwarte lijst rpcsec_gss_krb5
Nadat u het bestand hebt opgeslagen en het systeem opnieuw hebt opgestart, verdwijnt het probleem met de mount-latentie.
Waarom een NFS-server gebruiken?
NFS is eenvoudig en betaalbaar in te stellen. Het maakt gecentraliseerd beheer mogelijk, waardoor de behoefte aan extra software en opslagruimte op de pc van een individuele gebruiker wordt verminderd. Op één machine kunnen meerdere gebruikers dezelfde schijfruimte delen. Ze kunnen deze schijven bovenop hun bestandssysteem plaatsen om de opslagruimte uit te breiden.
Door NFS te delen kunnen programma's die veel opslagruimte nodig hebben op één server worden gegroepeerd. Dit kan resulteren in een enorme besparing op schijfruimte. Hoewel eerdere NFS-versies kwetsbaar zijn, hebben nieuwere versies extra beschermingsniveaus geïntroduceerd, waaronder Kerberos-authenticatie.
Er zijn echter ook enkele nadelen. Het is gebleken dat NFS in sommige gevallen vertraagt tijdens zwaar netwerkverkeer. Delen met Windows is mogelijk, maar vereist mogelijk enkele toepassingen van derden. Maar dit is niet erg verstandig in termen van veiligheid. Als de configuratie niet correct is, kan onbevoegde toegang optreden.
Bestandssysteem delen gemakkelijk gemaakt op Linux met NFS
Het kennen van beveiligingsproblemen en het vinden van oplossingen is een van de meest kritieke taken van een systeembeheerder. Het is noodzakelijk om de beveiligingsprocedures te kennen voor alle systemen voor het delen van bestanden en beheertools en niet alleen voor NFS.