How to configure Netwok file Sharing Server (NFS Server) in Ubuntu Linux 18.04
Spisu treści:
- Wymagania wstępne
- Skonfiguruj serwer NFS
- Instalowanie serwera NFS
- Tworzenie systemów plików
- Eksportowanie systemów plików
- Konfiguracja zapory ogniowej
- Skonfiguruj klientów NFS
- Instalowanie klienta NFS
- Montowanie systemów plików
- Testowanie dostępu do NFS
- Odmontowywanie systemu plików NFS
- Wniosek
Network File System (NFS) to protokół rozproszonego systemu plików, który umożliwia udostępnianie zdalnych katalogów przez sieć. Dzięki NFS możesz montować zdalne katalogi w swoim systemie i pracować z plikami na zdalnym komputerze tak, jakby były plikami lokalnymi.
Protokół NFS nie jest domyślnie szyfrowany i, w przeciwieństwie do Samby, nie zapewnia uwierzytelnienia użytkownika. Dostęp do serwera jest ograniczony przez adresy IP klientów lub nazwy hostów.
W tym samouczku omówimy, jak skonfigurować serwer NFSv4 w systemie Ubuntu 18.04. Pokażemy również, jak zamontować system plików NFS na kliencie.
Wymagania wstępne
W tym przykładzie założono, że masz jeden serwer z systemem Ubuntu 18.04 i drugi z dowolną inną dystrybucją Linuksa. Serwer i klienci powinni mieć możliwość komunikowania się ze sobą za pośrednictwem sieci prywatnej. Jeśli dostawca usług hostingowych nie oferuje prywatnych adresów IP, możesz użyć publicznych adresów IP i skonfigurować zaporę serwera, aby zezwalać na ruch na porcie
2049
tylko z zaufanych źródeł.
Maszyny w tym przykładzie mają następujące adresy IP:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Skonfiguruj serwer NFS
Zaczniemy od instalacji i konfiguracji serwera NFS.
Instalowanie serwera NFS
Odśwież indeks pakietów i zainstaluj pakiet serwera NFS:
sudo apt update
sudo apt install nfs-kernel-server
Po zakończeniu instalacji usługi NFS uruchomią się automatycznie.
Domyślnie w systemie Ubuntu 18.04 NFS wersja 2 jest wyłączona. Wersje 3 i 4 są włączone. Możesz to sprawdzić, uruchamiając następujące polecenie
cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 jest już dość stary i nie ma powodu, aby go włączyć.
Opcje konfiguracji serwera NFS są ustawione w
/etc/default/nfs-kernel-server
i
/etc/default/nfs-common
. Domyślne ustawienia są w naszym przypadku wystarczające.
Tworzenie systemów plików
Podczas konfigurowania serwera NFSv4 dobrą praktyką jest używanie globalnego katalogu głównego NFS i wiązanie podłączenia rzeczywistych katalogów do punktu podłączenia udziału. W tym przykładzie
/srv/nfs4
dyrektora
/srv/nfs4
jako katalogu głównego NFS.
Udostępnimy dwa katalogi (
/var/www
i
/opt/backups
), z różnymi ustawieniami konfiguracji, aby lepiej wyjaśnić, w jaki sposób można skonfigurować podłączenia NFS.
/var/www/
jest własnością użytkownika i grupy
www-data
a
/opt/backups
jest własnością
root
.
Utwórz system plików eksportu za pomocą komendy
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Zamontuj rzeczywiste katalogi:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Aby
/etc/fstab
łączenie na stałe, otwórz
/etc/fstab
:
sudo nano /etc/fstab
i dodaj następujące linie:
/ etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Eksportowanie systemów plików
Następnym krokiem jest zdefiniowanie systemów plików, które będą eksportowane przez serwer NFS, opcji udziałów i klientów, którzy mogą uzyskać dostęp do tych systemów plików. W tym celu otwórz
/etc/exports
:
sudo nano /etc/exports
Plik
/etc/exports
zawiera także komentarze opisujące sposób eksportowania katalogu.
W naszym przypadku musimy wyeksportować katalogi
www
i
backups
i zezwolić na dostęp tylko od klientów w sieci
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)
Pierwszy wiersz zawiera
fsid=0
który definiuje katalog główny
/srv/nfs
fsid=0
/srv/nfs
. Dostęp do tego wolumenu NFS jest dozwolony tylko dla klientów z podsieci
192.168.33.0/24
. Opcja
crossmnt
jest wymagana do udostępniania katalogów będących podkatalogami wyeksportowanego katalogu.
W drugim wierszu pokazuje, jak określić wiele reguł eksportu dla jednego systemu plików. Eksportuje
/srv/nfs4/backups
i umożliwia dostęp tylko do odczytu do całego zakresu
192.168.33.0/24
a także dostęp do odczytu i zapisu do
192.168.33.3
. Opcja
sync
informuje NFS, aby zapisał zmiany na dysku przed odpowiedzią.
Ostatni wiersz powinien być zrozumiały. Aby uzyskać więcej informacji o wszystkich dostępnych opcjach, wpisz
man exports
w swoim terminalu.
Zapisz plik i wyeksportuj udziały:
sudo exportfs -ra
Musisz uruchomić powyższe polecenie za każdym razem, gdy modyfikujesz
/etc/exports
. Jeśli wystąpią jakiekolwiek błędy lub ostrzeżenia, zostaną one wyświetlone na terminalu.
Aby wyświetlić bieżący aktywny eksport i ich stan, użyj:
sudo exportfs -v
Dane wyjściowe będą obejmować wszystkie akcje wraz z ich opcjami. Jak widać, istnieją również opcje, których nie zdefiniowaliśmy w
/etc/exports
. Są to opcje domyślne i jeśli chcesz je zmienić, musisz je wyraźnie ustawić.
/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)
W Ubuntu
root_squash
jest domyślnie włączony. Jest to jedna z najważniejszych opcji dotyczących bezpieczeństwa NFS. Uniemożliwia to użytkownikom root podłączonym do klientów posiadanie uprawnień roota do zamontowanych udziałów.
UID
główny
UID
i
GID
na
GID
UID
/
GID
nobody
/
nogroup
.
Aby użytkownicy komputerów klienckich mieli dostęp, NFS oczekuje, że identyfikatory użytkowników i grup klientów będą zgodne z identyfikatorami na serwerze. Inną opcją jest użycie funkcji mapowania tożsamości NFSv4, która tłumaczy identyfikatory użytkowników i grup na nazwy i odwrotnie.
Otóż to. W tym momencie skonfigurowałeś serwer NFS na serwerze Ubuntu. Możesz teraz przejść do następnego kroku i skonfigurować klientów i połączyć się z serwerem NFS.
Konfiguracja zapory ogniowej
Zakładając, że używasz
UFW
do zarządzania zaporą ogniową, aby umożliwić dostęp z podsieci
192.168.33.0/24
, musisz uruchomić następujące polecenie:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Aby sprawdzić przebieg zmiany:
sudo ufw status
Dane wyjściowe powinny wskazywać, że ruch na porcie
2049
jest dozwolony:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Skonfiguruj klientów NFS
Teraz, gdy serwer NFS jest skonfigurowany, a udziały są eksportowane, następnym krokiem jest skonfigurowanie klientów i zamontowanie zdalnych systemów plików.
Możesz także zamontować udział NFS na komputerach z systemem macOS i Windows, ale skupimy się na systemach Linux.
Instalowanie klienta NFS
Na komputerach klienckich musimy zainstalować tylko narzędzia wymagane do zamontowania zdalnych systemów plików NFS.
-
Zainstaluj klienta NFS na Debianie i Ubuntu
Nazwa pakietu zawierającego programy do montowania systemów plików NFS w dystrybucjach opartych na Debianie jest
nfs-common
w systemie plików NFS. Aby zainstalować, uruchom:sudo apt update
sudo apt install nfs-common
Zainstaluj klienta NFS na CentOS i Fedorze
Na Red Hat i jego pochodnych zainstaluj pakiet
nfs-utils
:sudo yum install nfs-utils
Montowanie systemów plików
Będziemy pracować na komputerze klienckim o
/srv/nfs4/www
IP
192.168.33.110
który ma dostęp do odczytu i zapisu do systemu plików
/srv/nfs4/www
oraz dostęp tylko do odczytu do systemu plików
/srv/nfs4/backups
.
Utwórz dwa nowe katalogi dla punktów montowania. Możesz utworzyć te katalogi w dowolnym miejscu.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Podłącz wyeksportowane systemy plików za pomocą polecenia
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
Gdzie
192.168.33.10
to adres IP serwera NFS. Możesz także użyć nazwy hosta zamiast adresu IP, ale musi on zostać rozwiązany przez komputer kliencki. Zwykle odbywa się to poprzez mapowanie nazwy hosta na adres IP w
/etc/hosts
.
Podczas montowania systemu plików NFSv4 należy zwolnić katalog główny NFS, więc zamiast
/srv/nfs4/backups
należy użyć
/backups
.
Sprawdź, czy zdalne systemy plików zostały poprawnie zamontowane, używając komendy mount lub
df
:
df -h
Polecenie wyświetli wszystkie zamontowane systemy plików. Dwie ostatnie linie to zamontowane udziały:
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
Aby zamontować stałe podczas ponownego uruchamiania, otwórz
/etc/fstab
:
sudo nano /etc/fstab
i dodaj następujące linie:
/ 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
Aby znaleźć więcej informacji o dostępnych opcjach podczas montowania systemu plików NFS, wpisz
man nfs
w swoim terminalu.
Inną opcją montowania zdalnych systemów plików jest użycie narzędzia
autofs
lub utworzenie jednostki systemowej.
Testowanie dostępu do NFS
Przetestujmy dostęp do udziałów, tworząc nowy plik dla każdego z nich.
Najpierw spróbuj utworzyć plik testowy w katalogu
/backups
za pomocą polecenia
touch
:
sudo touch /backups/test.txt
System plików
/backup
jest eksportowany jako tylko do odczytu i zgodnie z oczekiwaniami pojawi się komunikat o błędzie
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
Następnie spróbuj utworzyć plik testowy w katalogu
/srv/www
jako root za pomocą polecenia
sudo
:
sudo touch /srv/www/test.txt
Ponownie zobaczysz komunikat
Permission denied
dostępu.
touch: cannot touch '/srv/www': Permission denied
Zakładając, że używasz
www-data
na komputerze klienckim z tym samym
UID
i
GID
jak na serwerze zdalnym (co powinno mieć miejsce, jeśli na przykład zainstalowałeś nginx na obu komputerach), możesz przetestować, aby utworzyć plik jako użytkownik
www-data
z:
sudo -u www-data touch /srv/www/test.txt
Polecenie nie wyświetli danych wyjściowych, co oznacza, że plik został pomyślnie utworzony.
Aby to zweryfikować, wyświetl listę plików w katalogu
/srv/www
:
ls -la /srv/www
Dane wyjściowe powinny pokazywać nowo utworzony plik:
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
Odmontowywanie systemu plików NFS
sudo umount /backups
Jeśli punkt montowania jest zdefiniowany w
/etc/fstab
, upewnij się, że usuwasz linię lub komentujesz, dodając
#
na początku linii.
Wniosek
W tym samouczku pokazaliśmy, jak skonfigurować serwer NFS i jak zamontować zdalne systemy plików na komputerach klienckich. Jeśli wdrażasz NFS w produkcji i udostępniasz sensowne dane, dobrym pomysłem jest włączenie uwierzytelniania Kerberos.
Alternatywnie do NFS można użyć SSHFS do montowania zdalnych katalogów przez połączenie SSH. SSHFS jest domyślnie szyfrowany i znacznie łatwiejszy w konfiguracji i obsłudze.
Jeśli masz jakieś pytania, zostaw komentarz.
ubuntu nfs mount terminalJak zainstalować i skonfigurować serwer NFS na Centos 8
W tym samouczku wykonasz kroki niezbędne do skonfigurowania serwera NFSv4 na CentOS 8. Pokażemy także, jak zamontować system plików NFS na kliencie.
Jak skonfigurować serwer OpenVPN na Ubuntu 18.04
VPN pozwala łączyć się ze zdalnymi serwerami VPN, dzięki czemu twoje połączenie jest szyfrowane i bezpieczne, a także surfować po Internecie anonimowo, zachowując prywatność danych o ruchu. Ten samouczek przeprowadzi Cię przez proces konfigurowania własnego serwera VPN, instalując i konfigurując OpenVPN.
Jak skonfigurować serwer ftp z vsftpd na Ubuntu 18.04
W tym samouczku będziemy instalować vsftpd. Jest to stabilny, bezpieczny i szybki serwer FTP. Pokażemy również, jak skonfigurować vsftpd, aby ograniczyć użytkowników do ich katalogu domowego i szyfrować całą transmisję za pomocą SSL / TLS.