NFS (Network File System) firmy Sun Microsystems to rozproszona struktura systemu plików oparta na RPC, która umożliwia urządzeniom sieciowym używanie serwerów z systemem NFS w sieci jako dysków lokalnych.
Oto przewodnik krok po kroku dotyczący konfigurowania i konfigurowania serwera NFS na komputerze z systemem Linux.
Co to jest sieciowy system plików?
System plików NFS ma cztery protokoły. Gdy serwer jest gotowy, powiadamia portmap (serwer, który konwertuje protokół na numery portów) portu do użycia i podaje numer kontrolowanego programu RPC.
W przypadku korzystania z wbudowanego systemu Linux bardzo wygodne jest uruchamianie urządzenia za pośrednictwem udziału plików NFS przez sieć zamiast uruchamiać go bezpośrednio z nośnika pamięci (NAND flash, eMMC, MMC, itp.).
Chociaż rzadziej, możesz również chcieć zamontować udział NFS i wykonać z niego udziały plików po uruchomieniu systemu, nawet jeśli nie uruchamiasz systemu bezpośrednio z udziału NFS. Aby oba scenariusze działały, musisz najpierw zainstalować serwer NFS na komputerze, na którym programujesz.
Jak zainstalować NFS w systemie Linux?
Jeśli używasz System oparty na Debianie takich jak Ubuntu lub Linux Mint, powinieneś zainstalować serwer-jądra nfs pakiet w następujący sposób:
sudo apt zainstalować nfs-jądro-serwer
W Arch Linuksie:
sudo pacman -S nfs-utils
W Fedorze, CentOS i RHEL:
sudo dnf -y zainstalować nfs-utils
Po zakończeniu procesu serwer NFS uruchomi się automatycznie. Jednak w tym momencie nie wie jeszcze, które katalogi na twoim komputerze chcesz udostępnić w sieci. Dlatego domyślnie nie zapewnia żadnego udostępniania.
Możesz otworzyć wiele katalogów na tym samym serwerze, aby umożliwić udostępnianie w sieci z różnymi uprawnieniami i ograniczeniami.
Konfiguracja serwera NFS w systemie Linux
Aby udostępnić dowolny katalog na serwerze NFS, konieczne jest skonfigurowanie ustawienia związanego z katalogiem w /etc/exports plik. Otwórz plik w dowolnym edytorze tekstu. Pamiętaj, aby dodać przedrostek sudo do polecenia.
sudo vim /etc/eksport
Być może zastanawiasz się, co oznaczają opcje mapowania, które tutaj widzisz:
- root_squash: Oznacza autoryzowanych użytkowników klienta sudo jako użytkowników i grupy Nikt w NFS
- no_root_squash: Wyłącza zgniatanie korzeni
- all_squash: W przeciwieństwie do root_squash, umożliwia mapowanie wszystkich użytkowników jako użytkowników i grupy Nikt. Jest zwykle używany do publicznego dostępu.
- no_all_squash: Przeciwieństwo all_squash; ta opcja jest domyślna
Gdy system spoza zakresu adresów IP dozwolonych w pliku /etc/exports na serwerze NFS próbuje uzyskać dostęp do odpowiedniego zasobu, serwer NFS odrzuci żądanie.
Podczas montowania w systemie wbudowanym możesz otrzymywać komunikaty o odmowie dostępu przez serwer. Komunikaty o błędach podobne do poniższych pojawią się na końcu /var/log/syslog plik na komputerze, na którym działa serwer NFS:
rpc.mount[1041]: odrzucono prośbę o zamontowanie z192.168.2.2dla /home/przykład/kacper/cel (/home/example/casper/target): niedopasowany host
Gdy zobaczysz niedopasowany komunikat w dzienniku hosta, taki jak ten powyżej, powinieneś rozwinąć sekcję IP/maska sieci odpowiedniej reguły w pliku /etc/exports lub użyć gwiazdka (*) znak specjalny, jeśli chcesz przyznać dostęp do wszystkich adresów IP.
Musisz ponownie uruchomić usługę NFS po wprowadzeniu zmian w /etc/exports plik:
restart usługi sudo nfs-kernel-server
Lub, jeśli twoja dystrybucja jest dostarczana z systemctl, uruchom następujące polecenie:
sudosystemowyuruchom ponownieserwer nfs.usługa
Możesz również podać -r parametr do exportfs polecenie, aby ponownie udostępnić katalogi, które zmieniły ustawienia związane z udziałem:
sudo exportfs -r
Rozwiązywanie problemu z opóźnieniem montowania
W przypadku korzystania z protokołu NFS w wersji 4 lub nowszej na serwerze mogą wystąpić opóźnienia do 15 sekund podczas proces montowania po stronie klienta w tradycyjnych scenariuszach operacyjnych z domyślnymi konfiguracjami NFS serwer. Ten problem może pojawić się w niektórych wersjach Debiana, Fedory i Ubuntu.
Jeśli doświadczasz podobnego opóźnienia w montażu, możesz: sprawdź pliki dziennika po stronie serwera (/var/log/syslog, /var/log/messages) dla komunikatu dziennika podobnego do następującego:
... RPC: Przekroczono limit czasu wywołania AUTH_GSS
Ten komunikat wskazuje, że uwierzytelnianie Kerberos nie powiodło się i upłynął limit czasu. Prawdopodobnie nie będziesz potrzebować protokołu Kerberos do uwierzytelniania zabezpieczeń w sieci w swoim środowisku. Nawet jeśli jesteś w sieci skonfigurowanej w ten sposób, przynajmniej z wbudowanymi systemami Linux, nie musisz włączać uwierzytelniania Kerberos.
Chociaż zaoferowano alternatywy dla uruchomienia usługi GSSD z NFS w celu rozwiązania problemu, te podejścia nie mają ten sam wpływ we wszystkich dystrybucjach i wersjach pakietów, dlatego najbardziej racjonalne jest rozwiązanie tego problemu od strony źródło.
Musisz zablokować (lub umieścić na czarnej liście) rpsec_gss_krb5 moduł jądra przed załadowaniem w systemie Linux, na którym działa serwer NFS.
Aby ta opcja działała przy każdym ponownym uruchomieniu komputera, utwórz nowy plik nazywa /etc/modprobe.d/nfs-gss-blacklist.conf i dodaj do niego następujące wiersze:
czarna lista rpsec_gss_krb5
Po zapisaniu pliku i ponownym uruchomieniu systemu problem z opóźnieniem montowania zniknie.
Dlaczego warto korzystać z serwera NFS?
NFS jest prosty i niedrogi w konfiguracji. Umożliwia scentralizowane zarządzanie, co zmniejsza zapotrzebowanie na dodatkowe oprogramowanie i przestrzeń dyskową na komputerze indywidualnego użytkownika. Na jednym komputerze wielu użytkowników może dzielić to samo miejsce na dysku. Mogą umieścić te dyski na swoim systemie plików, aby zwiększyć przestrzeń dyskową.
Udostępnianie NFS umożliwia grupowanie programów, które wymagają dużej przestrzeni dyskowej, na jednym serwerze. Może to skutkować ogromną oszczędnością miejsca na dysku. Podczas gdy poprzednie wersje NFS są podatne na ataki, nowsze wersje wprowadziły dodatkowe poziomy ochrony, w tym uwierzytelnianie Kerberos.
Jednak są też pewne wady. Stwierdzono, że system NFS zwalnia w niektórych przypadkach podczas dużego ruchu w sieci. Udostępnianie w systemie Windows jest możliwe, ale może wymagać niektórych aplikacji innych firm. Ale nie jest to zbyt rozsądna praktyka z punktu widzenia bezpieczeństwa. Jeśli konfiguracja nie jest prawidłowa, może nastąpić nieautoryzowany dostęp.
Łatwe udostępnianie systemu plików w systemie Linux przy użyciu NFS
Znajomość problemów bezpieczeństwa i znajdowanie rozwiązań to jedno z najważniejszych zadań administratora systemu. Konieczna jest znajomość procedur bezpieczeństwa dla wszystkich systemów udostępniania plików i narzędzi zarządzania, a nie tylko NFS.