How to setup Samba for File Sharing in Linux
Inhaltsverzeichnis:
- Voraussetzungen
- Richten Sie den NFS-Server ein
- NFS-Server installieren
- Dateisysteme erstellen
- Exportieren der Dateisysteme
- Firewall-Konfiguration
- Richten Sie die NFS-Clients ein
- NFS-Client installieren
- Dateisysteme mounten
- Testen des NFS-Zugriffs
- Deinstallation des NFS-Dateisystems
- Fazit
Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, mit dem Sie Remoteverzeichnisse über ein Netzwerk freigeben können. Mit NFS können Sie Remoteverzeichnisse auf Ihrem System bereitstellen und mit den Dateien auf dem Remotecomputer arbeiten, als wären sie lokale Dateien.
Das NFS-Protokoll ist standardmäßig nicht verschlüsselt und bietet im Gegensatz zu Samba keine Benutzerauthentifizierung. Der Zugriff auf den Server wird durch die IP-Adressen oder Hostnamen des Clients eingeschränkt.
In diesem Tutorial erfahren Sie, wie Sie einen NFSv4-Server unter Ubuntu 18.04 einrichten. Wir zeigen Ihnen auch, wie Sie ein NFS-Dateisystem auf dem Client mounten.
Voraussetzungen
In diesem Beispiel wird davon ausgegangen, dass auf einem Server Ubuntu 18.04 und auf einem anderen Server eine andere Linux-Distribution ausgeführt wird. Der Server und die Clients sollten über ein privates Netzwerk miteinander kommunizieren können. Wenn Ihr Hosting-Provider keine privaten IP-Adressen anbietet, können Sie die öffentlichen IP-Adressen verwenden und die Server-Firewall so konfigurieren, dass nur Datenverkehr von vertrauenswürdigen Quellen auf Port
2049
.
Die Maschinen in diesem Beispiel haben die folgenden IPs:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Richten Sie den NFS-Server ein
Zunächst installieren und konfigurieren wir den NFS-Server.
NFS-Server installieren
Aktualisieren Sie den Paketindex und installieren Sie das NFS-Serverpaket:
sudo apt update
sudo apt install nfs-kernel-server
Nach Abschluss der Installation werden die NFS-Dienste automatisch gestartet.
Standardmäßig ist unter Ubuntu 18.04 NFS Version 2 deaktiviert. Die Versionen 3 und 4 sind aktiviert. Sie können dies überprüfen, indem Sie den folgenden Befehl
cat
ausführen:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 ist ziemlich alt und es gibt keinen Grund, es zu aktivieren.
Die Konfigurationsoptionen für den NFS-Server werden in den Dateien
/etc/default/nfs-kernel-server
und
/etc/default/nfs-common
. Die Standardeinstellungen sind in unserem Fall ausreichend.
Dateisysteme erstellen
Bei der Konfiguration eines NFSv4-Servers empfiehlt es sich, ein globales NFS-Stammverzeichnis zu verwenden und die tatsächlichen Verzeichnisse an den Bereitstellungspunkt für die Freigabe zu binden. In diesem Beispiel wird der
/srv/nfs4
als NFS-Root verwendet.
Wir werden zwei Verzeichnisse (
/var/www
und
/opt/backups
) mit unterschiedlichen Konfigurationseinstellungen freigeben, um besser zu erklären, wie die NFS-Bereitstellungen konfiguriert werden können.
Das
/var/www/
gehört dem Benutzer und die Gruppe
www-data
und
/opt/backups
gehört
root
.
Erstellen Sie das Export-Dateisystem mit dem Befehl
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Hängen Sie die aktuellen Verzeichnisse ein:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Öffnen Sie die Datei
/etc/fstab
um die Bindungsbereitstellungen dauerhaft zu machen:
sudo nano /etc/fstab
und füge die folgenden Zeilen hinzu:
/ etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Exportieren der Dateisysteme
Im nächsten Schritt definieren Sie die Dateisysteme, die vom NFS-Server exportiert werden, die Freigabeoptionen und die Clients, die auf diese Dateisysteme zugreifen dürfen. Öffnen Sie dazu die Datei
/etc/exports
:
sudo nano /etc/exports
Die Datei
/etc/exports
enthält auch Kommentare, die beschreiben, wie ein Verzeichnis exportiert wird.
In unserem Fall müssen wir die Verzeichnisse
www
und
backups
exportieren und den Zugriff nur von Clients im
192.168.33.0/24
zulassen:
/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)
Die erste Zeile enthält
fsid=0
wodurch das NFS-Stammverzeichnis
/srv/nfs
definiert wird. Der Zugriff auf dieses NFS-Volume ist nur für Clients aus dem Subnetz
192.168.33.0/24
zulässig. Die Option
crossmnt
ist erforderlich, um Verzeichnisse
crossmnt
, die Unterverzeichnisse eines exportierten Verzeichnisses sind.
In der zweiten Zeile wird gezeigt, wie Sie mehrere Exportregeln für ein Dateisystem festlegen. Es exportiert das
/srv/nfs4/backups
und ermöglicht nur Lesezugriff auf den gesamten Bereich
192.168.33.0/24
sowie Lese- und Schreibzugriff auf
192.168.33.3
. Die
sync
weist NFS an, Änderungen vor dem Antworten auf die Festplatte zu schreiben.
Die letzte Zeile sollte selbsterklärend sein. Für weitere Informationen zu allen verfügbaren Optionen geben Sie
man exports
in Ihr Terminal ein.
Speichern Sie die Datei und exportieren Sie die Freigaben:
sudo exportfs -ra
Sie müssen den obigen Befehl jedes Mal ausführen, wenn Sie die Datei
/etc/exports
ändern. Wenn Fehler oder Warnungen vorliegen, werden diese auf dem Terminal angezeigt.
Verwenden Sie zum Anzeigen der aktuell aktiven Exporte und ihres Status Folgendes:
sudo exportfs -v
Die Ausgabe umfasst alle Aktien mit ihren Optionen. Wie Sie sehen, gibt es auch Optionen, die wir in der Datei
/etc/exports
nicht definiert haben. Dies sind Standardoptionen, und wenn Sie sie ändern möchten, müssen Sie diese Optionen explizit festlegen.
/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)
Unter Ubuntu ist
root_squash
standardmäßig aktiviert. Dies ist eine der wichtigsten Optionen für die NFS-Sicherheit. Es verhindert, dass Root-Benutzer, die mit den Clients verbunden sind, Root-Berechtigungen für die bereitgestellten Freigaben haben. Es
nogroup
Root-
UID
und
GID
nobody
/
nogroup
UID
/
GID
.
Damit die Benutzer auf den Clientcomputern Zugriff haben, erwartet NFS, dass die Benutzer- und Gruppen-IDs des Clients mit denen auf dem Server übereinstimmen. Eine weitere Option ist die Verwendung der NFSv4-ID-Zuordnungsfunktion, mit der Benutzer- und Gruppen-IDs in Namen übersetzt werden und umgekehrt.
Das ist es. Zu diesem Zeitpunkt haben Sie einen NFS-Server auf Ihrem Ubuntu-Server eingerichtet. Sie können jetzt mit dem nächsten Schritt fortfahren, die Clients konfigurieren und eine Verbindung zum NFS-Server herstellen.
Firewall-Konfiguration
Angenommen, Sie verwenden
UFW
zum Verwalten Ihrer Firewall, um den Zugriff über das Subnetz
192.168.33.0/24
zuzulassen, müssen Sie den folgenden Befehl ausführen:
sudo ufw allow from 192.168.33.0/24 to any port nfs
So überprüfen Sie den Änderungslauf:
sudo ufw status
Die Ausgabe sollte zeigen, dass der Datenverkehr auf Port
2049
zulässig ist:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Richten Sie die NFS-Clients ein
Nachdem der NFS-Server eingerichtet und Freigaben exportiert wurden, konfigurieren Sie im nächsten Schritt die Clients und hängen Sie die Remote-Dateisysteme ein.
Sie können die NFS-Freigabe auch auf MacOS- und Windows-Computern bereitstellen, wir konzentrieren uns jedoch auf Linux-Systeme.
NFS-Client installieren
Auf den Client-Computern müssen nur die Tools installiert werden, die zum Mounten eines Remote-NFS-Dateisystems erforderlich sind.
-
Installieren Sie den NFS-Client unter Debian und Ubuntu
Der Name des Pakets, das Programme zum Mounten von NFS-Dateisystemen auf Debian-basierten Distributionen enthält, ist
nfs-common
. So installieren Sie es:sudo apt update
sudo apt install nfs-common
Installieren Sie den NFS-Client unter CentOS und Fedora
Installieren Sie auf Red Hat und seinen Derivaten das Paket
nfs-utils
:sudo yum install nfs-utils
Dateisysteme mounten
Wir arbeiten auf dem Client-Computer mit der IP-
/srv/nfs4/www
192.168.33.110
die Lese- und Schreibzugriff auf das Dateisystem
/srv/nfs4/www
und nur Lesezugriff auf das
/srv/nfs4/backups
hat.
Erstellen Sie zwei neue Verzeichnisse für die Einhängepunkte. Sie können diese Verzeichnisse an einem beliebigen Ort erstellen.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Hängen Sie die exportierten Dateisysteme mit dem Befehl
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
Wobei
192.168.33.10
die IP des NFS-Servers ist. Sie können auch den Hostnamen anstelle der IP-Adresse verwenden, dieser muss jedoch vom Client-Computer aufgelöst werden können. Dies geschieht normalerweise, indem der Hostname der IP in der Datei
/etc/hosts
wird.
Wenn Sie ein NFSv4-Dateisystem bereitstellen, müssen Sie das NFS-Stammverzeichnis
/srv/nfs4/backups
Sie daher anstelle von
/srv/nfs4/backups
.
Stellen Sie mit dem Befehl mount oder
df
sicher, dass die fernen Dateisysteme erfolgreich gemountet wurden:
df -h
Der Befehl druckt alle gemounteten Dateisysteme. Die letzten beiden Zeilen sind die gemounteten Freigaben:
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
Öffnen Sie die Datei
/etc/fstab
um die Bereitstellungen beim Neustart dauerhaft zu machen:
sudo nano /etc/fstab
und füge die folgenden Zeilen hinzu:
/ 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
Um weitere Informationen zu den verfügbaren Optionen beim Mounten eines NFS-Dateisystems zu erhalten, geben Sie
man nfs
in Ihr Terminal ein.
Eine andere Option zum Mounten der Remote-Dateisysteme besteht darin, entweder das
autofs
Tool zu verwenden oder eine systemd-Einheit zu erstellen.
Testen des NFS-Zugriffs
Testen Sie den Zugriff auf die Freigaben, indem Sie für jede Freigabe eine neue Datei erstellen.
Versuchen Sie zunächst, mit dem Befehl
touch
eine Testdatei im Verzeichnis
/backups
zu erstellen:
sudo touch /backups/test.txt
Das Dateisystem
/backup
wird schreibgeschützt exportiert. Wie erwartet wird
Permission denied
Fehlermeldung "
Permission denied
angezeigt:
touch: cannot touch '/backups/test': Permission denied
Versuchen Sie als Nächstes, mit dem Befehl
sudo
eine Testdatei im
/srv/www
als Root zu erstellen:
sudo touch /srv/www/test.txt
Erneut wird
Permission denied
Meldung "
Permission denied
angezeigt.
touch: cannot touch '/srv/www': Permission denied
Angenommen, Sie haben eine
www-data
auf dem Client-Computer mit derselben
UID
und
GID
wie auf dem Remote-Server (was der Fall sein sollte, wenn Sie beispielsweise nginx auf beiden Computern installiert haben), können Sie testen, um eine Datei als Benutzer zu erstellen
www-data
mit:
sudo -u www-data touch /srv/www/test.txt
Der Befehl zeigt keine Ausgabe an, was bedeutet, dass die Datei erfolgreich erstellt wurde.
So überprüfen Sie, ob die Dateien im Verzeichnis
/srv/www
:
ls -la /srv/www
Die Ausgabe sollte die neu erstellte Datei zeigen:
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
Deinstallation des NFS-Dateisystems
sudo umount /backups
Wenn der
/etc/fstab
Datei
/etc/fstab
definiert ist, müssen Sie die Zeile entfernen oder auskommentieren, indem Sie am Zeilenanfang ein
#
einfügen.
Fazit
In diesem Lernprogramm haben wir Ihnen gezeigt, wie Sie einen NFS-Server einrichten und die Remote-Dateisysteme auf den Client-Computern bereitstellen. Wenn Sie NFS in der Produktion implementieren und sensible Daten gemeinsam nutzen, empfiehlt es sich, die Kerberos-Authentifizierung zu aktivieren.
Alternativ zu NFS können Sie mithilfe von SSHFS Remoteverzeichnisse über eine SSH-Verbindung bereitstellen. SSHFS ist standardmäßig verschlüsselt und viel einfacher zu konfigurieren und zu verwenden.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.
Ubuntu NFS-Mount-TerminalSo installieren und konfigurieren Sie redis unter Ubuntu 18.04
Redis ist ein Open-Source-Speicher für In-Memory-Datenstrukturen. Es kann als Datenbank-, Cache- und Nachrichtenbroker verwendet werden und unterstützt verschiedene Datenstrukturen wie Strings, Hashes, Listen, Sets usw. Dieses Tutorial beschreibt die Installation und Konfiguration von Redis auf einem Ubuntu 18.04-Server.
So installieren und konfigurieren Sie den Squid-Proxy unter Ubuntu 18.04
Squid ist ein voll ausgestatteter Caching-Proxy, der gängige Netzwerkprotokolle wie HTTP, HTTPS, FTP und mehr unterstützt. Dieses Tutorial führt Sie durch die Einrichtung eines Squid-Proxys unter Ubuntu 18.04.
So installieren und konfigurieren Sie owncloud mit Apache unter Ubuntu 18.04
ownCloud ist eine selbst gehostete Open-Source-Plattform für die Dateisynchronisierung und -freigabe. In diesem Tutorial zeigen wir Ihnen, wie Sie ownCloud mit Apache auf einem Ubuntu 18.04-Rechner installieren und konfigurieren.