Sieciowy system plików UNIX. NFS: Sieciowy system plików

1.4 Sieć system plików

System plików CIFS dominuje na rynku sieciowych systemów plików Platformy Windowsowe. Na platformie UNIX głównym jest sieciowy system plików (Network System plików- NFS). Ponadto uważa się, że NFS jest pierwszym powszechnie przyjętym systemem plików, którego początki sięgają połowy lat 80. XX wieku. Jednak pomimo pewnego ogólnego funkcjonalność CIFS i NFS (sieciowe systemy plików umożliwiające klientom dostęp do zasobów serwera) systemy te mają zupełnie inne cechy architektoniczne. Wraz z wydaniem wersji 4 NFS niektóre różnice zostały poprawione.
Protokół CIFS przechowuje dane usług specyficzne dla każdego klienta. Przed wersją 3 system plików NFS nie zachowywał statusu klienta, co uległo zmianie w wersji 4.
Klient NFS nie „negocjuje” z serwerem NFS w celu ustanowienia sesji. Środki bezpieczeństwa podejmowane są dla całej sesji lub każdej komunikacji pomiędzy klientem a serwerem. Realizacja ostatnia opcja zbyt drogie, dlatego NFS nakłada odpowiedzialność za bezpieczeństwo na klienta. Serwer „zakłada”, że identyfikatory użytkowników w systemie klienta i serwera są takie same (a klient zweryfikował tożsamość użytkownika przed zezwoleniem mu na rejestrację w ramach podany identyfikator). Ponadto NFS zapewnia pewien poziom bezpieczeństwa, kontrolując listę systemów plików, które klient może zamontować. Za każdym razem, gdy klient CIFS otwiera plik, otrzymuje uchwyt pliku (czyli dane usługi, które serwer musi przechowywać) i używa go do wykonywania operacji odczytu lub zapisu po stronie klienta, serwer NFS wysyła do serwera zapytanie, które zwraca plik uchwyt. Ten deskryptor pliku jest przetwarzany przez klientów obsługujących standardy NFS 3 i NFS 2. Klient buforuje wynikowy deskryptor pliku i oczekuje, że deskryptor będzie zawsze wskazywał ten sam plik.
Dla osób zaznajomionych z systemem UNIX deskryptor pliku zazwyczaj składa się z numeru i-węzła, liczby wygenerowanych i-węzłów oraz identyfikatora pliku powiązanego z partycją dysku. Dość powiedzieć, że i-węzeł jest niezwykle ważną strukturą danych stosowaną w systemach plików UNIX. Przechowywane są wystarczające informacje, aby usunąć dojścia buforowane przez klientów, jeśli odpowiedni plik dojścia uległ zmianie i dojście musi wskazywać inny plik. Na przykład, jeśli plik zostanie usunięty, a na jego miejsce zostanie skopiowany plik o tej samej nazwie, licznik generacji i-węzła zostanie zmieniony, a deskryptor pliku buforowany przez klienta będzie nieprawidłowy. System plików NFS 4 ma różnice w implementacji.
Niektórzy klienci NFS wykonują buforowanie po stronie klienta, przechowując dane na dyskach, co działa podobnie do buforowania CIFS. Ponadto niektórzy klienci NFS zmieniają wartość limitów czasu w zależności od czasu odpowiedzi serwera. Im wolniej serwer odpowiada, tym większa jest wartość limitu czasu i odwrotnie.
System plików NFS został zaprojektowany tak, aby był niezależny od transportu i początkowo korzystał z transportu Protokół UDP. Różne rodzaje NFS może korzystać z protokołu TCP i innych protokołów.

1.4.1 Wersja 3 sieciowego systemu plików

System plików NFS 3 poprawia wydajność, szczególnie w przypadku dużych plików, umożliwiając klientowi i serwerowi dynamiczny wybór maksymalnej ilości danych przesyłanych w jednym element logiczny pakiet podczas pisania lub czytania. W systemie plików NFS 2 rozmiar pakietu był ograniczony do 8 KB. Innymi słowy, klient może wysłać maksymalnie 8 KB w żądaniu zapisu, a serwer może wysłać maksymalnie 8 KB w odpowiedzi na żądanie odczytu. Ponadto w systemie NFS 3 na nowo zdefiniowano przesunięcia plików i rozmiary danych. Są to teraz wartości 64-bitowe zamiast 32-bitowych w NFS 2.
Poniżej znajdują się niektóre funkcje NFS 3.
■ Deskryptory plików w systemie NFS 3 mają zmienny rozmiar; ich maksymalny rozmiar to 64 bity.
s System plików NFS 3 umożliwia klientom i serwerom wybór największy rozmiar nazwy plików i katalogów.
■ NFS 3 definiuje listę błędów, które serwer może zwrócić klientom. Serwer musi zwrócić jeden z określonych błędów lub nie zwrócić żadnego błędu.
s W systemie NFS 3 serwer może buforować dane wysyłane przez klienta wraz z żądaniem zapisu. Serwer może buforować dane i wysyłać odpowiedź na żądanie do klienta, zanim dane zostaną zapisane na dysku. Dodano także komendę COMMIT, która pozwala klientowi upewnić się, że wszystkie przesłane dane zostały zapisane na dysku. Umożliwia to osiągnięcie równowagi pomiędzy poprawą wydajności i utrzymaniem integralności danych.
■ NFS 3 zmniejsza liczbę operacji żądania/odpowiedzi między klientem a serwerem. W tym celu wraz z początkowym żądaniem przesyłane są dane atrybutów pliku. W NFS 2 klient musiał uzyskać nazwę pliku i deskryptor dla każdego pliku, dopiero wtedy przesyłane były atrybuty pliku.

1.4.2 Wersja 4 sieciowego systemu plików

NFS 4 całkowicie zmienił podstawowe zasady i zaimplementował wiele funkcji specyficznych dla CIFS, co bardzo zdenerwowało niektórych apologetów NFS. Jeśli spojrzysz na historię sieciowych systemów plików, zobaczysz, że NFS stał się powszechny. System plików SMB został zaprojektowany z uwzględnieniem mocnych stron i Słabości NFS i teraz, przez co najmniej wśród klientów coraz powszechniejsze są CIFS/SMB, a NFS rozwija się, biorąc pod uwagę wszystkie wady i zalety CIFS/SMB. Poniżej omówiono funkcje dodane do systemu NFS 4 w celu poprawy wydajności, bezpieczeństwa i współdziałania z systemem CIFS.
▪ W systemie NFS 4 wprowadzono żądanie COMPOUND, które umożliwia spakowanie wielu żądań w jedno żądanie i wielu odpowiedzi w jedną odpowiedź. Ta innowacja ma na celu poprawę wydajności poprzez zmniejszenie obciążenia sieci i zmniejszenie opóźnień podczas przesyłania żądań i odpowiedzi przez sieć. Jeśli brzmi to trochę jak funkcja CIFS AndX SMB (patrz sekcja 3.3.5.1), to może nie być to zwykły zbieg okoliczności.
▪ Wersja 4 systemu plików Network File System zapożycza niektóre funkcje z systemu WebNFS firmy Sun. W szczególności NFS 4 obsługuje niektóre protokoły dodatkowe w specyfikacji podstawowej, dzięki czemu NFS jest bardziej odpowiedni do stosowania z zaporami sieciowymi. W NFS 3 i nowszych wcześniejsze wersje do zamontowania udziału serwera w drzewie lokalnego systemu plików użyto specjalnego protokołu. Ponieważ usługa protokołu montowania nie została przypisana portu TCP lub UDP, klient najpierw wysyła żądanie do demona portmappera, który podaje numer portu, na którym usługa montowania nasłuchuje żądań. Zatem oprócz NFS w procesie wzięły udział protokoły montowania i mapowania portów. Co więcej, ponieważ usługa montowania mogła korzystać z dowolnego portu, konfiguracja zapory stała się bardzo trudna. W NFS 4 usunięto protokoły montowania i mapowania portów. Dodatkowo w podstawowej specyfikacji protokołu NFS uwzględniono blokowanie, a protokół NLM (Network Lock Manager), który był używany we wcześniejszych wersjach NFS, został trwale uznany za przestarzały.
■ Wymagany jest system plików NFS 4 protokół transportowy, która zapewnia możliwość wykrywania zatorów w sieci. Oznacza to, że klienci i serwery NFS będą stopniowo przenoszeni Protokół TCP zamiast UDP, który jest zwykle używany w NFS 3.
s NFS 2 i NFS 3 umożliwiały użycie amerykańskiego zestawu znaków. ASCII lub ISO Latin 1. Powodowało to problemy, gdy klient korzystający z jednego zestawu znaków utworzył plik, a dostęp do tego pliku uzyskał klient używający innego zestawu znaków. NFS 4 wykorzystuje zestaw znaków UTF-8, który obsługuje kompaktową kompresję znaków 16- i 32-bitowych do transmisji przez sieć. Ponadto zestaw znaków UTF-8 zawiera wystarczającą ilość informacji, aby uniknąć problemów podczas tworzenia pliku przy użyciu jednego zestawu znaków i uzyskiwania dostępu do pliku przy użyciu innego zestawu znaków.
▪ System plików NFS 4 wymaga, aby klient oddzielnie obsługiwał deskryptory plików. W NFS 3 klient mógł buforować uchwyt jako obiekt, podczas gdy serwer dbał o to, aby uchwyt zawsze wskazywał plik. NFS 4 definiuje dwa typy deskryptorów plików. Jeden nazywa się trwałymi deskryptorami plików i ma możliwości deskryptorów plików z NFS 3. Drugi, tymczasowy deskryptor plików, zakłada, że ​​deskryptor wygasa po określonym czasie lub zdarzeniu. Jest to funkcja przeznaczona dla serwerów, których systemy plików (takie jak NTFS) nie mogą zapewnić spójnego mapowania wyświetlanych plików i uchwytów.
▪ NFS 4 dodaje obsługę operacji OPEN i CLOSE, których semantyka umożliwia interakcję z klientami CIFS. Komenda OPEN tworzy dane stanu na serwerze.
■ Obsługa żądania OPEN w NFS 4 pozwala klientowi wystawić żądanie otwarcia pliku, którego struktura będzie podobna do żądań otwarcia Aplikacje Windowsowe. Obsługiwana jest także selekcja dzielenie się pliku z innymi klientami lub wyłączny dostęp do pliku.

1.4.2.1 Bezpieczeństwo NFS 4

System plików NFS 4 pozwala zwiększyć bezpieczeństwo przechowywanych danych. W szczególności NFS 4 dodał obsługę więcej atrybuty pliku. Jednym z tych atrybutów jest lista kontroli dostępu (ACL) w stylu systemu Windows NT. Pozwala to na lepszą interoperacyjność między systemami plików i silniejszą strukturę bezpieczeństwa.
O ile w NFS 2 i NFS 3 używanie zabezpieczeń było jedynie zalecane, w NFS 4 stało się to obowiązkowe. System plików NFS 4 wymaga wdrożenia mechanizmu bezpieczeństwa wykorzystującego ogólnie interfejs RPCSEC_GSS (Generic Security Services), a w szczególności protokoły Kerberos 5/LIPKEY. Należy pamiętać, że RPCSEC_GSS działa po prostu jako interfejs API i mechanizm transportu etykiet i danych związanych z bezpieczeństwem. System plików NFS 4 pozwala na wiele schematów uwierzytelniania i bezpieczeństwa oraz możliwość wyboru odpowiedniego schematu dla klientów i serwerów.
Poświęćmy trochę uwagi badaniu technologii LIPKEY, która wykorzystuje kombinację symetrycznych i szyfrowanie asymetryczne. Klient szyfruje dane użytkownika i hasło za pomocą losowo wygenerowanego klucza 128-bitowego. Szyfrowanie odbywa się za pomocą algorytm symetryczny, tj. do odszyfrowania należy użyć tego samego klucza. Ponieważ serwer potrzebuje tego klucza do odszyfrowania wiadomości, do serwera należy wysłać losowo wygenerowany klucz. Klient szyfruje klucz (który jest losowo generowany) za pomocą klucz publiczny serwer. Serwer odszyfrowuje dane za pomocą swojego pliku prywatny klucz, wyodrębnia klucz symetryczny i odszyfrowuje dane użytkownika i hasło.
Klienci mogą uwierzytelniać serwery przy użyciu certyfikatu serwera, a do weryfikacji certyfikatu wykorzystywane są usługi urzędów certyfikacji. Jedną z popularnych metod hakerskich jest przechwytywanie „obcych” pakietów danych, a następnie wysyłanie ich po określonym czasie. Podczas korzystania z protokołu Kerberos system plików NFS dodaje znacznik czasu do każdego pakietu. Serwer rejestruje ostatnio odebrane znaczniki czasu i porównuje je ze znacznikami czasu nowych pakietów RPC. Jeśli znaczniki czasu pakietów są starsze niż te poprzednio odebrane przez serwer, serwer ignoruje odebrane pakiety

1.5 Problemy z dostępem podczas korzystania z wielu protokołów

Kilka firm zaczęło oferować systemy, które jednocześnie obsługują klientów CIFS, NFS i innych sieciowych systemów plików. Dostawcy włożyli wiele pracy, próbując przezwyciężyć wyzwania techniczne, które pojawiają się, gdy klienci potencjalnie korzystają z różnych systemów operacyjnych i systemów plików. Należy pamiętać, że problemy nie dotyczą samych danych, ale metadanych plików. Prosty test na obecność podobne problemy plik zostanie skopiowany z serwera do klienta i z powrotem na serwer (lub odwrotnie). Po umieszczeniu pliku w zasobie początkowym metadane powinny zawierać wartości bazowe, tj. Uprawnienia do plików i znaczniki czasu nie powinny się zmieniać. Jeśli to nieprawda, oznacza to, że problem został wykryty.
Poniżej znajdują się przykłady niektórych z możliwych problemy techniczne.
■ Używane są różne systemy operacyjne różne metody do śledzenia uprawnień dostępu użytkowników i grup.
s Różne systemy operacyjne i systemy plików mają różną semantykę otwierania i blokowania plików.
▪ Obsługiwane są konwencje nazewnictwa plików różne sposoby. Różne systemy plików mają różne reprezentacje maksymalnego rozmiaru nazwy pliku, wielkości liter w nazwie pliku i zestawu znaków dozwolonych w nazwach.
▪ Dane i ich struktura różnią się w różnych systemach plików; na przykład niektóre systemy plików śledzą dwa znaczniki czasu, podczas gdy inne trzy znaczniki czasu (godzina ostatniego dostępu do pliku, ostatnia modyfikacja pliku i utworzenie pliku). Nawet jeśli oba systemy plików śledzą dwa znaczniki czasu, jednostki miary mogą się różnić. Innym przykładem są jednostki pomiaru przesunięć w plikach. Niektóre systemy plików obsługują przesunięcia 32-bitowe, a inne 16- lub 64-bitowe.
▪ Problemy z adresowaniem wyświetlanych blokad. Serwer CIFS wymusza blokowanie: jeśli jeden klient zablokował region pliku, wówczas jakakolwiek operacja zapisu w tym regionie pliku przez innego klienta spowoduje błąd. Jednak wymuszone blokowanie nie jest obsługiwane przez serwery NFS. Dlatego należy wybrać, czy blokada będzie wymuszana, co spowoduje wysłanie komunikatu o błędzie do klienta NFS.

NA ten moment Musisz mieć działające połączenie TCP/IP z siecią. Powinieneś móc pingować inne komputery w sieci, a jeśli odpowiednio skonfigurowałeś bramę, powinieneś móc także pingować komputery w Internecie. Jak wiadomo, główny cel Podłączenie komputera do sieci oznacza uzyskanie dostępu do informacji. Chociaż niektórzy ludzie mogą podłączyć komputer do sieci tylko dlatego, że większość ludzi chce udostępniać pliki i drukarki oraz uzyskiwać do nich dostęp. Chcieliby uzyskać dostęp do dokumentów w Internecie lub grać w gry online. Instalując obsługę protokołu TCP/IP i niezbędne oprogramowanie, dostaniesz to wszystko; jednakże instalując tylko obsługę protokołu TCP/IP, funkcjonalność będzie bardzo ograniczona. Dawać i otrzymywać ogólny dostęp do plików, będziemy musieli przesyłać je tam i z powrotem za pomocą protokołu FTP lub SCP. Nie możemy patrzeć na nasze nowy komputer z drzewem plików Slackware za pomocą „ ikon sieć” lub „Cała sieć” na komputerach z systemem Windows. Chcielibyśmy mieć możliwość stałego dostępu do plików na innych maszynach uniksowych.

Idealnie chcielibyśmy użyć sieciowy system plików, co pozwala nam mieć przejrzysty dostęp do plików na komputerach. Programy, których używamy do pracy z informacjami przechowywanymi na komputerach, tak naprawdę nie muszą nawet wiedzieć, na którym komputerze są one przechowywane. wymagany plik. Muszą jedynie wiedzieć, że plik istnieje i wiedzieć, jak go uzyskać. Reszta jest zadaniem systemu operacyjnego, który zapewnia dostęp do tego pliku za pomocą dostępnych lokalnych i sieciowych systemów plików. Dwa najczęściej używane sieciowe systemy plików to SMB (implementowane przez Sambę) i NFS.

5.6.1. SMB/Samba/CIFS

SMB (Server Message Block) jest następcą starszego protokołu NetBIOS pierwotnie opracowanego przez IBM dla produktu LAN Manager. Firma Microsoft z kolei zawsze interesowałem się NetBIOS-em i jego następcami (NetBEUI, SMB i CIFS). Projekt Samba rozpoczął się w 1991 roku, kiedy został napisany w celu zapewnienia komunikacji pomiędzy komputerem IBM PC a Serwer Unixowy. Obecnie udostępnianie plików i usług drukowania w sieci małych i średnich firm jest preferowaną metodą w prawie całym cywilizowanym świecie, ponieważ obsługuje ją system Windows.

Plik konfiguracyjny Samby /etc/samba/smb.conf jest jednym z najlepiej udokumentowanych pliki konfiguracyjne które możesz znaleźć. Do Twojej dyspozycji są gotowe przykłady z ustawieniami udostępnionych zasobów, dzięki czemu możesz je przeglądać i zmieniać w zależności od potrzeb. Jeśli chcesz jeszcze większej kontroli, do Twojej dyspozycji jest strona podręcznika smb.conf. Ponieważ Samba ma tak dobrą dokumentację, nie będziemy jej tutaj przepisywać. Przejdźmy jednak szybko do głównych punktów.

smb.conf jest podzielony na kilka sekcji: jedna sekcja na udział oraz jedna sekcja globalna do konfigurowania parametrów, które są wszędzie używane. Niektóre parametry obowiązują tylko w sekcji globalnej, a inne tylko poza nią. Pamiętaj, że sekcję globalną można zastąpić dowolną inną sekcją. Za Dodatkowe informacje zapoznaj się ze stronami podręcznika.

Najprawdopodobniej będziesz chciał edytować plik smb.conf, aby odzwierciedlić ustawienia sieci lokalnej. Radzimy zmienić następujące punkty:

Będzie to opis twojego komputera Slackware, pokazany w folderze Moje miejsca sieciowe (lub Cała sieć).

Prawie na pewno będziesz chciał użyć poziomu bezpieczeństwa użytkownika w swoim systemie Slackware.

Jeśli szyfrowanie haseł nie jest włączone, nie będzie można używać Samby w systemach NT4.0, Win2k, WinXP i Win2003. Dla poprzednie wersje Systemy operacyjne Windows, do których należy zapewnić dostęp wspólne zasoby nie było wymagane szyfrowanie.

SMB to protokół uwierzytelniony, tj. możesz podać nazwę użytkownika i hasło, aby skorzystać z tej usługi. Za pomocą polecenia smbpasswd informujemy serwer samby, że nazwy użytkowników i hasła są poprawne. smbpasswd umożliwia dodawanie kluczy publicznych jako zwykli użytkownicy i komputery użytkowników (SMB wymaga dodania nazw NETBIOS komputerów jako komputerów użytkowników, ograniczając w ten sposób liczbę komputerów, z których można przeprowadzić uwierzytelnianie).

Ważne jest, aby to rozważyć nadane imię Nazwa użytkownika lub komputera musi już istnieć w pliku /etc/passwd. Można to osiągnąć za pomocą polecenia adduser. Pamiętaj, że jeśli używasz polecenia adduser do dodania nazwy komputera, musisz dodać do niej znak dolara („$”). Jednak to Nie należy to zrobić podczas pracy z smbpasswd. Narzędzie smbpasswd dodaje sam znak dolara. Naruszenie tej zasady przy użyciu adduser spowoduje błąd podczas dodawania nazwy komputera do Samby.

#maszyna adduser$

5.6.2. Sieciowy system plików (NFS)

NFS ( Plik sieciowy System) został pierwotnie napisany przez firmę Sun dla systemu Solaris i stanowił implementację systemu Unix. I chociaż konfiguracja i konfiguracja jest znacznie łatwiejsza w porównaniu do SMB, NFS jest znacznie mniej bezpieczny. Główny słaby punkt bezpieczeństwo to łatwość zastępowania identyfikatorów użytkowników i grup jednego komputera identyfikatorami z innego komputera. Protokół NFS nie implementuje uwierzytelniania. Stwierdzono, że przyszłe wersje protokołu NFS poprawią bezpieczeństwo, ale w chwili pisania tego tekstu nie zostało to jeszcze zrobione.

NFS konfiguruje się poprzez plik /etc/exports. Kiedy pobierzesz standardowy plik/etc/exports do edytora, zobaczysz pusty plik z komentarzem u góry w dwóch wierszach. Będziemy musieli dodać wiersz do pliku eksportu dla każdego katalogu, który chcemy wyeksportować, zawierający listę klienckich stacji roboczych, które będą miały dostęp do tego katalogu. Na przykład, jeśli musimy wyeksportować katalog /home/foo do stacja robocza Bar, będziemy musieli dodać następujący wiersz do naszego pliku /etc/exports:

Jak widać, istnieje kilka różnych opcji, ale większość z nich powinna być jasna z tego przykładu.

NFS zakłada, że ​​dany użytkownik na jednym komputerze w sieci ma tę samą tożsamość na wszystkich pozostałych komputerach. Gdy klient NFS próbuje odczytać lub zapisać na serwerze NFS, identyfikator UID jest wysyłany w ramach żądania odczytu/zapisu. Ten UID jest uważany za taki sam, jak gdyby żądanie zostało wysłane z komputera lokalnego. Jak widać, jeśli ktoś może losowo określ określony UID podczas uzyskiwania dostępu do zasobów zdalna maszyna, kłopoty mogą się zdarzyć i zdarzają się. Rozwiązaniem, aby częściowo tego uniknąć, jest zamontowanie wszystkich katalogów z opcją root_squash. Zastępuje to UID każdego użytkownika podającego się za roota na inny UID, uniemożliwiając w ten sposób dostęp roota do plików i katalogów w wyeksportowanym katalogu. Wygląda na to, że root_squash jest domyślnie włączony ze względów bezpieczeństwa, ale autorzy nadal zalecają wyraźne określenie tej opcji w pliku /etc/exports.

Możesz także wyeksportować katalog na serwerze bezpośrednio z wiersz poleceń za pomocą polecenia eksportfs, jak pokazano poniżej:

# eksportfs -o rw,no_root_squash Bar:/home/foo

To polecenie eksportuje katalog /home/foo dla komputera „Bar” i zapewnia mu dostęp do odczytu/zapisu. Ponadto serwer NFS nie ma włączonego parametru root_squash, co oznacza, że ​​każdy użytkownik Bar z UID „0” (UID root) będzie miał takie same uprawnienia na serwerze jak root.Składnia wygląda dość dziwnie (zwykle gdy określisz katalog w postaci komputer:/katalog/plik, odwołujesz się do pliku w katalogu na określonym komputerze).

Więcej informacji na temat pliku eksportu można znaleźć na stronie podręcznika.

Usługi sieciowe

Wykład 10

Nazywa się zestaw części serwerowych i klienckich systemu operacyjnego, które zapewniają dostęp do określonego typu zasobów komputera za pośrednictwem sieci usługa sieciowa . Część kliencka wysyła żądania sieciowe do części serwerowej innego komputera. Część serwerowa realizuje żądania kierowane do lokalnych zasobów serwera. Część kliencka jest aktywna, część serwerowa jest pasywna.

W komunikacji sieciowej znaczącą rolę odgrywa dostęp sieciowy do systemu plików. W tym przypadku tworzą się części klienta i serwera wraz z sieciowym systemem plików obsługa plików

Kluczowym elementem rozproszonego systemu operacyjnego jest sieciowy system plików. Sieciowy system plików jest obsługiwany przez jeden lub więcej komputerów przechowujących pliki (serwery plików)

Klient komputery dołączają lub montują te systemy plików do swoich lokalnych systemów plików

Usługa plików obejmuje programy serwera i programy klienckie, które współdziałają w sieci za pomocą protokołu.

Usługi plików obejmują samą usługę plików ( operacje na plikach) i usługi katalogowe (zarządzanie katalogami)

Model sieciowy obsługa plików zawiera następujące elementy:

Lokalny system plików (FAT, NTFS)

Interfejs lokalnego systemu plików ( wywołania systemowe)

Serwer sieciowego systemu plików

Klient sieciowego systemu plików ( Eksplorator Windows, Powłoka UNIX-owa itp.)

Interfejs sieciowego systemu plików (powtarza wywołania lokalnego systemu plików)

Protokół klient-serwer sieciowego systemu plików (blok komunikatów serwera SMB dla Windows, NFS (sieciowy system plików) i FTP ( Transfer plików Protokół) dla UNIX)

Interfejs sieciowego systemu plików

Istnieje kilka typów interfejsów, które charakteryzują się:

Struktura pliku. Większość sieciowych systemów plików obsługuje pliki płaskie

Możliwość modyfikacji pliku. Większość sieciowych systemów plików ma możliwość modyfikowania pliku. Niektóre rozproszone systemy plików zabraniają wykonywania operacji modyfikacyjnych. Możliwe jest tylko tworzenie i odczytywanie. W przypadku takich plików łatwiej jest zorganizować buforowanie i replikację.

Semantyka separacji plików:

Semantyka UNIX (scentralizowany). Jeżeli odczyt następuje po wielu zapisach, odczytywana jest najnowsza aktualizacja. Zasada ta jest również możliwa w rozproszonym systemie plików, pod warunkiem, że taki istnieje serwer plików oraz brak buforowania plików na kliencie.

Semantyka sesji. Zmiany rozpoczynają się po otwarciu pliku i kończą się po jego zamknięciu. Inaczej mówiąc, w przypadku pozostałych procesów zmiany widoczne są dopiero po zamknięciu pliku. W w tym przypadku Wystąpił problem z udostępnianiem pliku. Semantyka plików niezmiennych. Plik można jedynie utworzyć i odczytać. Możesz także odtworzyć plik pod inną nazwą. Dlatego pliku nie można modyfikować, ale można go zastąpić nowym plikiem. Nie ma problemu z udostępnianiem.



Mechanizm transakcyjny. Jest to sposób pracy z udostępnionymi plikami z wykorzystaniem mechanizmu transakcyjnego (operacje niepodzielne)

Kontrola dostępu. Na przykład dla Windows NT/2000 istnieją dwa mechanizmy: na poziomie katalogu (dla FAT) i na poziomie pliku (NTFS)

Jednostka dostępowa. Model pełnego przesyłania/pobierania plików (FTP). Drugi model polega na wykorzystaniu operacji na plikach.

W tym momencie powinieneś mieć działające połączenie TCP/IP z siecią. Powinieneś móc pingować inne komputery w sieci, a jeśli odpowiednio skonfigurowałeś bramę, powinieneś móc także pingować komputery w Internecie. Jak wiadomo, głównym celem podłączenia komputera do sieci jest uzyskanie dostępu do informacji. Chociaż niektórzy ludzie mogą podłączyć komputer do sieci tylko dlatego, że większość ludzi chce udostępniać pliki i drukarki oraz uzyskiwać do nich dostęp. Chcieliby uzyskać dostęp do dokumentów w Internecie lub grać w gry online. Instalując obsługę protokołu TCP/IP i niezbędne oprogramowanie w swoim nowym systemie Slackware, będziesz mieć to wszystko; jednakże instalując tylko obsługę protokołu TCP/IP, funkcjonalność będzie bardzo ograniczona. Aby udostępniać i udostępniać pliki, będziemy musieli przesyłać je tam i z powrotem za pomocą protokołu FTP lub SCP. Nie możemy wyświetlić drzewa plików na naszym nowym komputerze za pomocą Slackware poprzez ikony „Otoczenie sieciowe” lub „Cała sieć” na komputerach z systemem Windows. Chcielibyśmy mieć możliwość stałego dostępu do plików na innych maszynach uniksowych.

Idealnie chcielibyśmy użyć sieciowy system plików , co pozwala nam mieć przejrzysty dostęp do plików na komputerach. Programy, których używamy do pracy z informacjami przechowywanymi na komputerach, tak naprawdę nie muszą nawet wiedzieć, na którym komputerze przechowywany jest żądany plik. Muszą jedynie wiedzieć, że plik istnieje i wiedzieć, jak go uzyskać. Reszta jest zadaniem systemu operacyjnego, który zapewnia dostęp do tego pliku za pomocą dostępnych lokalnych i sieciowych systemów plików. Dwa najczęściej używane sieciowe systemy plików to SMB (implementowane przez Sambę) i NFS.

5.6.1. SMB/Samba/CIFS

SMB (Server Message Block) jest następcą starszego protokołu NetBIOS pierwotnie opracowanego przez IBM dla produktu LAN Manager. Microsoft z kolei od zawsze interesował się NetBIOS-em i jego następcami (NetBEUI, SMB i CIFS). Projekt Samba rozpoczął się w 1991 roku, kiedy został napisany w celu zapewnienia komunikacji pomiędzy komputerem IBM PC a serwerem Unix. Obecnie udostępnianie plików i usług drukowania w sieci małych i średnich firm jest preferowaną metodą w prawie całym cywilizowanym świecie, ponieważ obsługuje ją system Windows.

Plik konfiguracyjny Samby /etc/samba/smb.conf jest jednym z najlepiej udokumentowanych plików konfiguracyjnych, jakie znajdziesz. Do Twojej dyspozycji są gotowe przykłady z ustawieniami udostępnionych zasobów, dzięki czemu możesz je przeglądać i zmieniać w zależności od potrzeb. Jeśli chcesz jeszcze większej kontroli, do Twojej dyspozycji jest strona podręcznika smb.conf. Ponieważ Samba ma tak dobrą dokumentację, nie będziemy jej tutaj przepisywać. Przejdźmy jednak szybko do głównych punktów.

smb.conf jest podzielony na kilka sekcji: jedna sekcja na udział oraz jedna sekcja globalna do konfigurowania parametrów, które są wszędzie używane. Niektóre parametry obowiązują tylko w sekcji globalnej, a inne tylko poza nią. Pamiętaj, że sekcję globalną można zastąpić dowolną inną sekcją. Więcej informacji można znaleźć na stronach podręcznika.

Najprawdopodobniej będziesz chciał edytować plik smb.conf, aby odzwierciedlić ustawienia sieci lokalnej. Radzimy zmienić następujące punkty:

Zmień wartość grupy roboczej na domenę/grupę roboczą używaną w Twojej sieci LAN.

Będzie to opis twojego komputera Slackware, pokazany w folderze Moje miejsca sieciowe (lub Cała sieć).

Prawie na pewno będziesz chciał użyć poziomu bezpieczeństwa użytkownika w swoim systemie Slackware.

Jeśli szyfrowanie haseł nie jest włączone, nie będzie można używać Samby w systemach NT4.0, Win2k, WinXP i Win2003. Poprzednie wersje systemów operacyjnych Windows nie wymagały szyfrowania w celu zapewnienia dostępu do współdzielonych zasobów.

SMB to protokół uwierzytelniony, tj. możesz podać nazwę użytkownika i hasło, aby skorzystać z tej usługi. Za pomocą polecenia smbpasswd informujemy serwer samby, że nazwy użytkowników i hasła są poprawne. smbpasswd umożliwia użycie kluczy publicznych w celu dodania zarówno zwykłych użytkowników, jak i użytkowników komputerów (SMB wymaga dodania nazw NETBIOS komputerów jako użytkowników komputerów, ograniczając w ten sposób liczbę komputerów, z których można przeprowadzić uwierzytelnianie).

Należy pamiętać, że podana nazwa użytkownika lub nazwa komputera musi już istnieć w pliku /etc/passwd. Można to osiągnąć za pomocą polecenia adduser. Pamiętaj, że jeśli używasz polecenia adduser do dodania nazwy komputera, musisz dodać do niej znak dolara („$”). Jednak to Nie należy to zrobić podczas pracy z smbpasswd . Narzędzie smbpasswd dodaje sam znak dolara. Naruszenie tej zasady przy użyciu adduser spowoduje błąd podczas dodawania nazwy komputera do Samby.

# maszyna adduser$

5.6.2. Sieciowy system plików (NFS)

NFS (Network File System) został pierwotnie napisany przez firmę Sun dla systemu Solaris i stanowił implementację systemu Unix. I chociaż konfiguracja i konfiguracja jest znacznie łatwiejsza w porównaniu do SMB, NFS jest znacznie mniej bezpieczny. Główną słabością bezpieczeństwa jest łatwość zastępowania identyfikatorów użytkowników i grup jednego komputera identyfikatorami z innego komputera. Protokół NFS nie implementuje uwierzytelniania. Stwierdzono, że przyszłe wersje protokołu NFS poprawią bezpieczeństwo, ale w chwili pisania tego tekstu nie zostało to jeszcze zrobione.

NFS konfiguruje się poprzez plik /etc/exports. Kiedy załadujesz standardowy plik /etc/exports do edytora, zobaczysz pusty plik z komentarzem w dwóch górnych liniach. Będziemy musieli dodać wiersz do pliku eksportu dla każdego katalogu, który chcemy wyeksportować, zawierający listę klienckich stacji roboczych, które będą miały dostęp do tego katalogu. Na przykład, gdybyśmy musieli wyeksportować katalog /home/foo dla stacji roboczej Bar, musielibyśmy dodać następujący wiersz do naszego pliku /etc/exports:

Jak widać, istnieje kilka różnych opcji, ale większość z nich powinna być jasna z tego przykładu.

NFS zakłada, że ​​dany użytkownik na jednym komputerze w sieci ma tę samą tożsamość na wszystkich pozostałych komputerach. Gdy klient NFS próbuje odczytać lub zapisać na serwerze NFS, identyfikator UID jest wysyłany w ramach żądania odczytu/zapisu. Ten UID jest uważany za taki sam, jak gdyby żądanie zostało wysłane z komputera lokalnego. Jak widać, jeśli ktoś może dowolnie określić dany UID podczas uzyskiwania dostępu do zasobów na zdalnym komputerze, problemy mogą i zdarzają się. Rozwiązaniem, aby częściowo tego uniknąć, jest zamontowanie wszystkich katalogów z opcją root_squash. Zastępuje to UID każdego użytkownika podającego się za roota na inny UID, uniemożliwiając w ten sposób dostęp roota do plików i katalogów w wyeksportowanym katalogu. Wygląda na to, że root_squash jest domyślnie włączony ze względów bezpieczeństwa, ale autorzy nadal zalecają wyraźne określenie tej opcji w pliku /etc/exports.

Możesz także wyeksportować katalog na serwerze bezpośrednio z wiersza poleceń, używając polecenia eksportfs, jak pokazano poniżej:

# eksportfs -o rw,no_root_squash Bar:/home/foo

To polecenie eksportuje katalog /home/foo dla komputera „Bar” i zapewnia mu dostęp do odczytu/zapisu. Ponadto serwer NFS nie ma włączonego parametru root_squash, co oznacza, że ​​każdy użytkownik Bar z UID „0” (UID root) będzie miał takie same uprawnienia na serwerze jak root.Składnia wygląda dość dziwnie (zwykle gdy określisz katalog w postaci komputer:/katalog/plik , odwołujesz się do pliku w katalogu na danym komputerze).

Więcej informacji na temat pliku eksportu można znaleźć na stronie podręcznika.

Network File System (NFS) to rozwiązanie do udostępniania plików dla organizacji, które mają mieszane środowiska maszynowe Windows i Unix/Linux. System plików NFS umożliwia udostępnianie plików pomiędzy określonymi różne platformy z funkcjonowaniem system operacyjny Serwer Windows 2012: Usługi NFS w systemie Windows Server 2012 zawierają następujące funkcje i udoskonalenia.

1. Szukać w Aktywny katalog. Masz możliwość korzystania z usługi Windows Active Directory w celu uzyskania dostępu do plików. Rozszerzenie schematu Identity Management for Unix dla Active Directory zawiera pola tożsamości Użytkownik Uniksa(identyfikator użytkownika Unix - UID) i identyfikator grupy (GID). To pozwala Usługi serwerowe dla NFS i Klient dla NFS widoku mapowania kont Użytkownicy Windowsa w systemie Unix bezpośrednio z usług domenowych Active Directory. Zarządzanie tożsamością dla systemu Unix ułatwia zarządzanie mapowaniem kont użytkowników systemu Windows w systemie Unix na usługi domenowe Active Directory.

2. Poprawiona wydajność serwera. Usługi dla NFS obejmują sterownik filtru plików, który znacznie zmniejsza ogólne opóźnienia podczas uzyskiwania dostępu do plików na serwerze.

3. Obsługa specjalnych urządzeń Unix. Usługi dla NFS obsługują specjalne urządzenia uniksowe (mknod).

4. Rozszerzona obsługa Uniksa. Usługi dla NFS obsługują następujące wersje systemu Unix: Sun Microsystems Solaris wersja 9, Red Hat Wersje Linuksa 9, IBM AIX wersja 5L 5.2 i Hewlett Packard HP-UX w wersji 11i, a także wiele nowoczesnych dystrybucji Linuksa.

Jednym z najczęstszych scenariuszy powodujących potrzebę stosowania NFS jest udostępnienie użytkownikom systemu Windows systemu planowania zasobów przedsiębiorstwa (ERP) opartego na systemie Unix. Będąc w systemie ERP, użytkownicy mogą tworzyć raporty i/lub eksportować dane finansowe do programu Microsoft Excel w celu dalszej analizy. System plików NFS umożliwia dostęp do tych plików w środowisku Windows, redukując potrzebę posiadania specjalistycznych umiejętności technicznych i czas spędzony na eksportowaniu plików przy użyciu skryptu uniksowego, a następnie importowaniu ich do określonej aplikacji Windows.

Może również zaistnieć sytuacja, w której masz system Unix używany do przechowywania plików w pewnego rodzaju sieci pamięci masowej (SAN). Włączam usługi NFS Maszyna z Windowsem Server 2012 umożliwia użytkownikom w organizacji dostęp do przechowywanych tam plików bez konieczności wykonywania skryptów po stronie systemu Unix.

Przed zainstalowaniem usług NFS należy usunąć wszelkie wcześniej zainstalowane komponenty NFS, takie jak komponenty NFS dołączone do usług dla systemu Unix.

Składniki usług NFS

Dostępne są następujące dwa komponenty usług NFS.

1. Serwer dla NFS(Serwer dla NFS). Zazwyczaj komputer z systemem Unix nie może uzyskać dostępu do plików znajdujących się na komputerze z systemem Windows. Jednak komputer z systemem Windows Server 2012 R2 i serwerem dla NFS może działać jako serwer plików dla komputerów z systemem Windows i Unix.

2. Klient dla NFS(Klient NFS). Zazwyczaj komputer z systemem Windows nie może uzyskać dostępu do plików znajdujących się na komputerze z systemem Unix. Jednak komputer z systemem Windows Server 2012 R2 i funkcją Klient dla NFS może uzyskać dostęp do plików przechowywanych na serwerze NFS z systemem Unix.

Instalowanie serwera dla NFS przy użyciu PowerShell

Zobaczmy, jak użyć programu PowerShell do zainstalowania roli NFS na serwerze i utworzenia udziału plików NFS.

1. Otwórz okno Windows PowerShell na pasku zadań jako konto administratora.

2. Wpisz następujące polecenia, aby zainstalować rolę NFS na serwerze:

PS C:\> Import-Module ServerManager PS C:\> Add-WindowsFeature FS-NFS-Services PS C:\> Import-Module NFS

3. Wpisz poniższe polecenie, aby utworzyć nowy udział plików NFS:

PS C:\> New-NfsShare -Nazwa „Test” -Ścieżka „C:\Shares\Test”

4. Aby wyświetlić wszystkie nowe polecenia cmdlet programu PowerShell specyficzne dla NFS, które są dostępne w systemie Windows Server 2012 R2, uruchom następujące polecenie:

PS C:\>Get-Command -Moduł NFS

5. Kliknij folder C:\Shares\Test kliknij prawym przyciskiem myszy myszką, wybierz „właściwości”, a następnie przejdź do zakładki Udostępnianie NFS. Kliknij przycisk Zarządzaj udostępnianiem NFS. W wyświetlonym oknie dialogowym możesz zarządzać uprawnieniami dostępu do folderów, zezwalać dostęp anonimowy, skonfiguruj ustawienia kodowania plików. Możesz udostępnić folder w systemie NFS przy użyciu okna dialogowego Zaawansowane udostępnianie NFS bez korzystania z programu PowerShell.

Ustawianie standardowych rozdzielczości

Teraz będziemy musieli otworzyć niektóre porty zapory ogniowej, aby system NFS mógł działać. Porty wymagane do prawidłowego działania usług NFS przedstawiono w poniższej tabeli.