How to configure Netwok file Sharing Server (NFS Server) in Ubuntu Linux 18.04
Inhoudsopgave:
- voorwaarden
- Stel de NFS-server in
- De NFS-server installeren
- Het maken van de bestandssystemen
- Export van de bestandssystemen
- Firewall configuratie
- Stel de NFS-clients in
- De NFS-client installeren
- Mounten van bestandssystemen
- NFS-toegang testen
- NFS-bestandssysteem ontkoppelen
- Conclusie
Network File System (NFS) is een gedistribueerd bestandssysteemprotocol waarmee u externe mappen via een netwerk kunt delen. Met NFS kunt u externe mappen op uw systeem koppelen en met de bestanden op de externe machine werken alsof het lokale bestanden zijn.
NFS-protocol is standaard niet gecodeerd en biedt in tegenstelling tot Samba geen gebruikersauthenticatie. Toegang tot de server wordt beperkt door de IP-adressen of hostnamen van de client.
In deze zelfstudie bespreken we hoe u een NFSv4-server instelt op Ubuntu 18.04. We laten u ook zien hoe u een NFS-bestandssysteem op de client kunt mounten.
voorwaarden
In dit voorbeeld wordt ervan uitgegaan dat u een server met Ubuntu 18.04 en een andere met een andere Linux-distributie hebt. De server en de clients moeten via een privénetwerk met elkaar kunnen communiceren. Als uw hostingprovider geen privé-IP-adressen aanbiedt, kunt u de openbare IP-adressen gebruiken en de serverfirewall configureren om verkeer op poort
2049
alleen van vertrouwde bronnen toe te staan.
De machines in dit voorbeeld hebben de volgende IP's:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Stel de NFS-server in
We beginnen met het installeren en configureren van de NFS-server.
De NFS-server installeren
Vernieuw de pakkettenindex en installeer het NFS-serverpakket:
sudo apt update
sudo apt install nfs-kernel-server
Nadat de installatie is voltooid, worden de NFS-services automatisch gestart.
Standaard is op Ubuntu 18.04 NFS versie 2 uitgeschakeld. Versies 3 en 4 zijn ingeschakeld. U kunt dit verifiëren door het volgende
cat
commando uit te voeren:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 is nu behoorlijk oud en er is geen reden om het in te schakelen.
NFS-serverconfiguratie-opties worden ingesteld in
/etc/default/nfs-kernel-server
en
/etc/default/nfs-common
bestanden. De standaardinstellingen zijn in ons geval voldoende.
Het maken van de bestandssystemen
Bij het configureren van een NFSv4-server is het een goede gewoonte om een algemene NFS-rootmap te gebruiken en de eigenlijke mappen te koppelen aan het gedeelde koppelpunt. In dit voorbeeld gebruiken we de directeur
/srv/nfs4
als NFS-root.
We gaan twee mappen delen (
/var/www
en
/opt/backups
), met verschillende configuratie-instellingen, om beter uit te leggen hoe de NFS-koppelingen kunnen worden geconfigureerd.
De
/var/www/
is eigendom van de gebruiker en de groep
www-data
en
/opt/backups
is eigendom van
root
.
Maak het exportbestandssysteem met de opdracht
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Mount de eigenlijke mappen:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Om de bindmounts permanent te maken, opent u het bestand
/etc/fstab
:
sudo nano /etc/fstab
en voeg de volgende regels toe:
/ Etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Export van de bestandssystemen
De volgende stap is het definiëren van de bestandssystemen die door de NFS-server worden geëxporteerd, de opties voor delen en de clients die toegang hebben tot die bestandssystemen. Open hiervoor het bestand
/etc/exports
:
sudo nano /etc/exports
Het bestand
/etc/exports
bevat ook opmerkingen die beschrijven hoe een map kan worden geëxporteerd.
In ons geval moeten we de
www
en
backups
exporteren en alleen toegang toestaan van clients op het
192.168.33.0/24
:
/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)
De eerste regel bevat
fsid=0
die de NFS-rootmap
/srv/nfs
definieert. De toegang tot dit NFS-volume is alleen toegestaan voor de clients van het
192.168.33.0/24
subnet. De optie
crossmnt
is vereist om mappen te delen die submappen zijn van een geëxporteerde map.
In de tweede regel wordt getoond hoe u meerdere exportregels voor één bestandssysteem kunt opgeven. Het exporteert de map
/srv/nfs4/backups
en geeft alleen leestoegang tot het hele
192.168.33.0/24
bereik en zowel lees- als schrijftoegang tot
192.168.33.3
. De
sync
vertelt NFS om wijzigingen naar schijf te schrijven voordat deze antwoordt.
De laatste regel moet voor zichzelf spreken. Voor meer informatie over alle beschikbare opties typt u
man exports
in uw terminal.
Sla het bestand op en exporteer de shares:
sudo exportfs -ra
Elke keer dat u het bestand
/etc/exports
wijzigt, moet u de bovenstaande opdracht uitvoeren. Als er fouten of waarschuwingen zijn, worden deze op de terminal weergegeven.
Om de huidige actieve export en hun status te bekijken, gebruikt u:
sudo exportfs -v
De output omvat alle aandelen met hun opties. Zoals je kunt zien, zijn er ook opties die we niet hebben gedefinieerd in het bestand
/etc/exports
. Dit zijn standaardopties en als u ze wilt wijzigen, moet u die opties expliciet instellen.
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
Op Ubuntu is
root_squash
standaard ingeschakeld. Dit is een van de belangrijkste opties met betrekking tot NFS-beveiliging. Het voorkomt dat rootgebruikers verbonden met de clients rootrechten hebben op de gemounte shares. Het zal root
UID
en
GID
toewijzen aan
nobody
/
nogroup
UID
/
GID
.
Opdat de gebruikers op de clientcomputers toegang hebben, verwacht NFS dat de gebruikers- en groeps-ID's van de client overeenkomen met die op de server. Een andere optie is om de NFSv4-idmapping-functie te gebruiken die gebruikers- en groeps-ID's vertaalt naar namen en omgekeerd.
Dat is het. Op dit moment hebt u een NFS-server op uw Ubuntu-server ingesteld. U kunt nu naar de volgende stap gaan en de clients configureren en verbinding maken met de NFS-server.
Firewall configuratie
Ervan uitgaande dat u
UFW
gebruikt om uw firewall te beheren om toegang toe te staan vanuit het
192.168.33.0/24
subnet, moet u de volgende opdracht uitvoeren:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Om de wijzigingsrun te verifiëren:
sudo ufw status
Uit de output moet blijken dat het verkeer op poort
2049
is toegestaan:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Stel de NFS-clients in
Nu de NFS-server is ingesteld en shares worden geëxporteerd, configureert u de volgende stap de clients en koppelt u de externe bestandssystemen aan.
Je kunt ook de NFS-share op macOS- en Windows-machines mounten, maar we zullen ons richten op Linux-systemen.
De NFS-client installeren
Op de clientcomputers moeten we alleen de tools installeren die nodig zijn om externe NFS-bestandssystemen te mounten.
-
NFS-client installeren op Debian en Ubuntu
De naam van het pakket met programma's voor het koppelen van NFS-bestandssystemen op op Debian gebaseerde distributies is
nfs-common
. Om het te installeren, voer uit:sudo apt update
sudo apt install nfs-common
Installeer NFS client op CentOS en Fedora
Installeer op Red Hat en zijn afgeleiden het
nfs-utils
pakket:sudo yum install nfs-utils
Mounten van bestandssystemen
We werken op de clientcomputer met IP
192.168.33.110
die lees- en schrijftoegang heeft tot het
/srv/nfs4/www
bestandssysteem en alleen-lezen toegang heeft tot het
/srv/nfs4/backups
bestandssysteem.
Maak twee nieuwe mappen voor de koppelpunten. U kunt deze mappen op elke gewenste locatie maken.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Koppel de geëxporteerde bestandssystemen met de opdracht
mount
:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Waar
192.168.33.10
het IP-adres van de NFS-server is. U kunt ook de hostnaam gebruiken in plaats van het IP-adres, maar deze moet door de clientcomputer kunnen worden opgelost. Dit wordt meestal gedaan door de hostnaam toe te wijzen aan het IP-adres in het bestand
/etc/hosts
.
Bij het koppelen van een NFSv4-bestandssysteem moet u de NFS-rootmap weglaten, dus in plaats van
/srv/nfs4/backups
moet u
/backups
.
Controleer of de externe bestandssystemen met succes zijn gekoppeld met de opdracht mount of
df
:
df -h
De opdracht drukt alle gekoppelde bestandssystemen af. De laatste twee regels zijn de gekoppelde shares:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
Om de mounts permanent opnieuw op te starten, opent u het bestand
/etc/fstab
:
sudo nano /etc/fstab
en voeg de volgende regels toe:
/ Etc / fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Voor meer informatie over de beschikbare opties bij het koppelen van een NFS-bestandssysteem typt u
man nfs
in uw terminal.
Een andere optie om de externe bestandssystemen te mounten is om ofwel de
autofs
tool te gebruiken of om een systeemeenheid te creëren.
NFS-toegang testen
Laten we de toegang tot de shares testen door voor elk een nieuw bestand te maken.
Probeer eerst een testbestand in de map
/backups
met de
touch
:
sudo touch /backups/test.txt
Het
/backup
bestandssysteem wordt als alleen-lezen geëxporteerd en zoals verwacht ziet u een foutmelding
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
Probeer vervolgens met de opdracht
sudo
een testbestand in de map
/srv/www
als root:
sudo touch /srv/www/test.txt
Nogmaals, u ziet
Permission denied
bericht
Permission denied
.
touch: cannot touch '/srv/www': Permission denied
Ervan uitgaande dat u een
www-data
op de clientcomputer hebt met dezelfde
UID
en
GID
als op de externe server (wat het geval zou zijn als u bijvoorbeeld nginx op beide machines hebt geïnstalleerd), kunt u testen om een bestand als gebruiker te maken
www-data
met:
sudo -u www-data touch /srv/www/test.txt
De opdracht geeft geen uitvoer weer, wat betekent dat het bestand met succes is gemaakt.
Om dit te verifiëren, geeft u de bestanden in de map
/srv/www
:
ls -la /srv/www
De uitvoer moet het nieuw gecreëerde bestand tonen:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
NFS-bestandssysteem ontkoppelen
sudo umount /backups
Als het koppelpunt is gedefinieerd in het bestand
/etc/fstab
, zorg er dan voor dat u de regel verwijdert of er een opmerking bij maakt door
#
aan het begin van de regel toe te voegen.
Conclusie
In deze zelfstudie hebben we u laten zien hoe u een NFS-server instelt en hoe u de externe bestandssystemen op de clientmachines koppelt. Als u NFS in productie implementeert en verstandige gegevens deelt, is het een goed idee om Kerberos-verificatie in te schakelen.
Als alternatief voor NFS kunt u SSHFS gebruiken om externe mappen te koppelen via een SSH-verbinding. SSHFS is standaard gecodeerd en veel eenvoudiger te configureren en te gebruiken.
Als je nog vragen hebt, kun je een reactie achterlaten.
ubuntu nfs mount terminalHoe nagios te installeren en configureren op ubuntu 18.04
Nagios is een van de populairste open source monitoringsystemen. Nagios houdt een inventaris van uw gehele IT-infrastructuur bij en zorgt ervoor dat uw netwerken, servers, applicaties, services en processen actief zijn.
Hoe squid proxy op ubuntu 18.04 te installeren en configureren
Squid is een complete cacheproxy die populaire netwerkprotocollen zoals HTTP, HTTPS, FTP en meer ondersteunt. Deze tutorial leidt je door het proces van het instellen van een Squid Proxy op Ubuntu 18.04.
Hoe Gogs op ubuntu 18.04 te installeren en configureren
Gogs is een zelf-gehoste open source git-server geschreven in Go. Het bevat een repository-bestandseditor, het bijhouden van projectproblemen en een ingebouwde wiki. Deze tutorial behandelt de stappen voor het installeren en configureren van Gogs op Ubuntu 18.04.