Sun Microsystems NFS (Network File System) är en RPC-baserad distribuerad filsystemstruktur som tillåter nätverksanslutna enheter att använda servrar som kör NFS över ett nätverk som sina lokala enheter.
Här är en steg-för-steg-guide för att ställa in och konfigurera en NFS-server på en Linux-maskin.
Vad är nätverksfilsystem?
NFS-filsystemet har fyra protokoll. När servern är klar meddelar den portmap (servern som konverterar protokoll till portnummer) om porten som ska användas och ger det kontrollerade RPC-programnumret.
När du använder ett inbäddat Linux-system är det mycket bekvämt att starta upp din enhet via en NFS-filresurs över nätverket istället för att starta det direkt från lagringsenheten (NAND flash, eMMC, MMC, etc.).
Även om det är sällsyntare, kanske du också vill montera en NFS-resurs och utföra fildelningar med den efter att systemet har startat upp, även om du inte startar ditt system direkt från NFS-resursen. För att båda scenarierna ska fungera måste du först installera en NFS-server på datorn du utvecklar på.
Hur man installerar NFS på Linux
Om du använder en Debian-baserat system såsom Ubuntu eller Linux Mint, bör du installera nfs-kärnserver paket enligt följande:
sudo apt Installera nfs-kärna-server
På Arch Linux:
sudo pacman -S nfs-utils
På Fedora, CentOS och RHEL:
sudo dnf -y Installera nfs-utils
I slutet av processen kommer din NFS-server att köras automatiskt. Men vid det här laget vet den ännu inte vilka kataloger på din dator du vill dela över nätverket. Därför ger den ingen delning som standard.
Du kan öppna flera kataloger på samma server för att tillåta nätverksdelning med olika behörigheter och begränsningar.
Konfigurera NFS-servern på Linux
För att dela en katalog över NFS-servern är det nödvändigt att konfigurera en katalogrelaterad inställning i /etc/exports fil. Öppna filen med valfri textredigerare. Se till att lägga till sudo-prefixet till kommandot.
sudo vim /etc/export
Du kanske undrar vad kartläggningsalternativen du ser här betyder:
- root_squash: Markerar sudo-auktoriserade klientanvändare som ingen användare och grupp på NFS
- no_root_squash: Inaktiverar root squashing
- all_squash: Till skillnad från root_squash tillåter det alla användare att mappas som ingen användare och grupp. Det används vanligtvis för allmänhetens tillgång.
- no_all_squash: Motsatsen till all_squash; detta alternativ är standard
När ett system utanför IP-intervallen du tillåter i filen /etc/exports på NFS-servern försöker komma åt den relevanta resursen, kommer NFS-servern att avvisa begäran.
Du kan få meddelanden "åtkomst nekad av servern" när du monterar på ditt inbäddade system. Felmeddelanden som liknar följande kommer att visas i slutet av /var/log/syslog fil på datorn där NFS-servern körs:
rpc.mountd[1041]: nekade monteringsbegäran från192.168.2.2för /home/example/casper/target (/home/exempel/casper/mål): oöverträffad värd
När du ser ett omatchat värdloggmeddelande som det ovan, bör du expandera avsnittet IP/nätmask i den relevanta regeln i filen /etc/exports eller använda asterisk (*) specialtecken om du vill ge åtkomst till alla IP-adresser.
Du måste starta om NFS-tjänsten efter att ha gjort ändringar i /etc/exports fil:
Omstart av sudo-tjänsten nfs-kernel-server
Eller, om din distro levereras med systemctl, kör följande kommando:
sudosystemctlomstartnfs-server.service
Du kan också ge -r parameter till exportfs kommandot så att det delar om kataloger som har ändrat inställningar relaterade till resursen:
sudo exportfs -r
Åtgärda problemet med monteringsfördröjning
När du använder NFS-protokoll version 4 och högre på din server kan det bli förseningar på upp till 15 sekunder under monteringsprocessen på klientsidan i traditionella driftsscenarier med standardkonfigurationerna för NFS server. Det här problemet kan dyka upp på vissa versioner av Debian, Fedora och Ubuntu.
Om du upplever en liknande monteringsfördröjning kan du kontrollera loggfilerna på serversidan (/var/log/syslog, /var/log/messages) för ett loggmeddelande som liknar följande:
... RPC: AUTH_GSS upcall timeout
Det här meddelandet indikerar att Kerberos-autentisering misslyckades och timeout. Du behöver förmodligen inte Kerberos-protokollet för säkerhetsautentisering på nätverket i din miljö. Även om du är på ett nätverk som är konfigurerat på detta sätt, åtminstone med dina inbäddade Linux-system, behöver du inte aktivera Kerberos-autentisering.
Även om alternativ till att köra GSSD-tjänsten med NFS för att åtgärda problemet har erbjudits, har dessa tillvägagångssätt inte samma effekt i alla distributioner och paketversioner, och därför är det mest rationellt att ta itu med detta problem från rot.
Du måste blockera (eller svartlista) den rpcsec_gss_krb5 kärnmodul från att laddas på Linux-systemet där NFS-servern körs.
För att det här alternativet ska träda i kraft varje gång du startar om datorn, skapa en ny fil kallad /etc/modprobe.d/nfs-gss-blacklist.conf och lägg till följande rader:
svartlista rpcsec_gss_krb5
När du har sparat filen och startat om systemet kommer problemet med monteringsfördröjning att försvinna.
Varför använda en NFS-server?
NFS är enkelt och prisvärt att installera. Det möjliggör centraliserad hantering, vilket minskar behovet av extra programvara och lagringsutrymme på en enskild användares PC. På en enda dator kan flera användare dela samma diskutrymme. De kan lägga dessa diskar ovanpå sitt filsystem för att utöka lagringsutrymmet.
NFS-delning gör att program som kräver mycket lagringsutrymme kan grupperas på en enda server. Detta kan resultera i enorma diskutrymmesbesparingar. Medan tidigare NFS-versioner är sårbara, har nyare versioner infört ytterligare skyddsnivåer, inklusive Kerberos-autentisering.
Det finns dock vissa nackdelar också. NFS har visat sig sakta ner i vissa fall under tung nätverkstrafik. Det är möjligt att dela med Windows, men kan kräva vissa tredjepartsprogram. Men detta är inte en särskilt förnuftig praxis ur säkerhetssynpunkt. Om konfigurationen inte är korrekt kan obehörig åtkomst inträffa.
Filsystemdelning på ett enkelt sätt på Linux med NFS
Att känna till säkerhetsproblem och hitta lösningar är en av de mest kritiska uppgifterna för en systemadministratör. Det är nödvändigt att känna till säkerhetsprocedurerna för alla fildelningssystem och hanteringsverktyg och inte bara NFS.