Przejdź do głównej zawartości

Linux RHS333 - Network Information Service (NIS) - wprowadzenie do NIS

Standard NIS czyli Network Information Service wprowadzony został przez firmę SUN w 1980 roku. W tamtym czasie była to najwyższej jakości baza danych administracyjnych. Oryginalna nazwa nadana temu rozwiązaniu przez firmę SUN to "Sun Yellow Pages" jednak z upływem czasu oraz w wyniku aspektów prawnych nazwa to została zmieniona. Pomimo zmiany nazwy składnia poleceń systemu NIS rozpoczyna się od znaków "yp", co doskonale kojarzy się z pierwotną nazwą. System NIS był bardzo popularny wśród wielu dostawców systemów rodziny UNIX i jest obsługiwany przez każdą dystrybucję Linux. Obecnie jest to rozwiązanie nieco przestarzałe i nie zaleca się wdrażania go do nowych instalacji. Powód takiego obrotu sprawy jest związany z trudnościami występującymi jeżeli zachodzi potrzeba integracji środowiska z systemami rodziny Windows oraz z występowaniem wielu problemów związanych ze skalowalnością i bezpieczeństwem. Warto jednak posiadać wiedzę z tego zakresu nie tylko ze względu na fakt, iż wymieniona ona została w zakresie informacji jakie należy posiadać ze względu na egzamin RHS333 ale przede wszystkim dlatego, iż zawsze możemy natrafić w swojej pracy na starsze wdrożone już środowisko w jakim technologia ta jest nadal w użyciu. 

Serwer NIS standardowo używany jest do synchronizacji informacji dotyczących kont użytkowników z jednego serwera głównego dla całej domeny NIS czyli klientów znajdujących się w danej domenie NIS. NIS umożliwia udostępnianie zawartości plików :/etc/passwd, /etc/shadow oraz /etc/group. Należy pamiętać, że połączenie pomiędzy serwerami oraz klientami w przypadku NIS nie jest szyfrowane, nie zapewnia integralności danych oraz nie gwarantuje odpowiedniego bezpieczeństwa. Hasła są wysyłane w postaci haszy, ale mimo to oferowany tu poziom bezpieczeństwa jest minimalny. W przypadku systemu Red Hat Enterprise Linux wspierane są wersję 1 oraz 2 protokołu NIS zarówno dla serwera jak i klientów. Dodatkowo wspierane jest w przypadku klientów używanie NIS w wersji 3 (NIS+).

Potrzebne pakiety : ypserv
Demony: ypserv, rpc.yppasswdd, rpc.ypxfrd
Skrypty: ypserv, yppasswdd, ypxrfd
Porty: Dynamicznie alokowane przez portmap

Konfiguracja: 
/var/yp/* , /etc/ypserv.conf , /etc/yp.conf (dla ypbind), /etc/sysconfig/network

Powiązania: portmap, ypbind, yp-tools

NIS - Model danych

Podstawową jednostką danych w przypadku NIS jest rekord, który z reguły przedstawia się w formie pojedynczego wiersza w pliku konfiguracyjnym. Serwer główny "master" przechowuje wzorcowe kopie plików systemowych umieszczone w oryginalnych lokalizacjach z zachowaniem oryginalnych formatów, które mogą być poddawane edycji przy użyciu edytorów tekstowych. Usługa serwera NIS udostępnia zawartość tych plików poprzez sieć. Całe środowisko czyli serwer główny i jego klienci stanowią tak zwaną "domenę NIS". Aby praca na danych przebiegała w odpowiednim tempie pliki danych są przetwarzane na format bazy danych przy zastosowaniu funkcji haszującej. Jeżeli na serwerze głównym (master) pliki zostaną zmodyfikowane, można poinformować NIS aby zostały one przekształcone na format zahaszowany.  

Każdy z rekordów posiada swoją reprezentacje w postaci dokładnie jednego klucza z tego też powodu plik systemowy musi zostać odwzorowany na kilka sposobów. Dla przykładu plik /etc/passwd zostaje przetworzony na dwa odwzorowania: passwd.byname oraz passwd.byuid. Pierwsze z odwzorowań umożliwia wyszukanie użytkownika na podstawie jego nazwy, a drugie po numerze UID. Jeżeli jednak będziemy chcieli wypisać wszystkie rekordy pliku passwd użyć można dowolne z istniejących odwzorowań. Ponieważ zastosowane biblioteki haszujące nie umożliwiają zachowania kolejności rekordów z bazy NIS nie uda się odtworzyć oryginalnej postaci pliku passwd

Serwery podrzędne w domenie NIS mogą zostać wykorzystane do przechowywania kopii odwzorowań przez co posłużą również do odciążenia serwera głównego, a dzięki takiemu rozwiązaniu mechanizm będzie działał nawet wtedy, gdy przestanie działać jeden lub kilka serwerów NIS. 

Jeżeli na serwerze "master" zostanie przeprowadzona modyfikacja plików, odpowiednie odwzorowanie musi zostać przesłane na serwery podrzędne, by w trybie ciągłym udostępniane były identyczne dane. Klienci nie rozróżniają serwera głównego od serwerów podrzędnych. 

Zasada działania NIS

Pliki odwzorowań NIS przechowywane są w jednym katalogu zazwyczaj jest to lokalizacja /var/yp. Miejsce przechowywania plików NIS zwyczajowo określa się "katalogiem NIS". Przechowywane odwzorowania zapisane są w formacie zahaszowanej bazy danych, w podkatalogu katalogu NIS o nazwie wykorzystującej domenę NIS. Nazewnictwo oraz ilość plików odwzorowań zależne jest od zastosowanej biblioteki haszującej. Zawsze jednak istnieje co najmniej jedno odwzorowanie (plik) dla każdego klucza, według którego przeszukiwane są pliki. 

Dla przykładu w domenie NIS o nazwie "moja_domena_nis" pliki odwzorowań dla pliku /etc/passwd mogą posiadać nazwy: 

/var/yp/moja_domena_nis/passwd.byname
/var/yp/moja_domena_nis/passwd.byuid

Odwzorowania NIS zostają wygenerowane przy użyciu polecenia makedbm. Wywoływanie tego polecenia nie jest jednak konieczne ponieważ do tego celu służy plik Makefile znajdujący się w katalogu /var/yp/. Jeżeli jakiś plik systemowy zostanie zmodyfikowany wystarczy, że przejdziemy do katalogu /var/yp/ , a następnie wywołamy polecenie make. Polecenie to sprawdzi czas modyfikacji plików oraz ich odwzorowań oraz wywoła polecenie makedbm dla każdego odwzorowania, które musi zostać zaktualizowane. 

Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości