Udostępnianie zasobów za pomocą NFS
NFS – Network File System (z ang. Sieciowy System Plików) umożliwia udostępnianie danych pomiędzy komputerami z systemami uniksowymi.
Zasada działania:
Serwer NFS eksportuje swój system plików (w części lub całości). Komputer klienta montuje zasoby eksportowane przez serwer NFS i korzysta z nich tak, jak z zasobów lokalnych.
Ograniczenia:
- serwer może eksportować wyłącznie lokalne systemy plików
- nazwane łącza (named pipes) i urządzenia są traktowane w sposób specjalny
- eksportowania zasobów lokalnych i montowania zasobów zewnętrznych może dokonywać jedynie administrator systemu
- aby zachować prawa dostępu do swoich plików w obrębie NFS użytkownik powinien mieć te same numery UID i GID na komputerach: serwera i klienta NFS.
Na serverze na którym chcemy coś udostępnić:
- Instalujemy potrzebne pakiety:
yum install nfs-utils portmap
- Listę udostępnianych zasobów administrator umieszcza w pliku /etc/exports. Edytujemy go i dodajemy :
/u01/backup 192.168.4.0/255.255.255.0(rw) 10.0.0.0/255.0.0.0(rw)
- Edytujemy /etc/hosts.allow i dodajemy
portmap: 192.168.4.0/255.255.255.0, 10.0.0.0/255.0.0.0
- Uruchamiamy usługę
/etc/init.d/nfs start
- Sprawdzamy poprawność wpisów w pliku /etc/exports:
exportfs -v
- Aby sprawdzić czy wszystkie RPC-based services są włączone używamy komendy: rpcinfo -p Oczywiście odpowiednie porty muszą być odblokowane na firewallu.
[root@vmware /]# rpcinfo -p program wer. proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 804 status 100024 1 tcp 807 status 100011 1 udp 713 rquotad 100011 2 udp 713 rquotad 100011 1 tcp 716 rquotad 100011 2 tcp 716 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 60830 nlockmgr 100021 3 udp 60830 nlockmgr 100021 4 udp 60830 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 tcp 55394 nlockmgr 100021 3 tcp 55394 nlockmgr 100021 4 tcp 55394 nlockmgr 100005 1 udp 727 mountd 100005 1 tcp 730 mountd 100005 2 udp 727 mountd 100005 2 tcp 730 mountd 100005 3 udp 727 mountd 100005 3 tcp 730 mountd
Na serverze na którym chcemy podmontować udostępniony zasób:
- Instalujemy klienta NFS (nfs-common)
- Sprawdzamy co nam serwer udostępnia:
showmount -e 192.168.4.7
- Edytujemy /etc/fstab i dodajemy:
192.168.4.7:/u01/backup /mnt/vmware-wiel nfs rw,hard,intr 0 0
- Montujemy zasób:
mount /mnt/vmware-wiel
- Lub ręczne montowanie bez /etc/fstab:
mount 192.168.4.7:/u01/backup /mnt/vmware-wiel
Uwagi:
Przy montowaniu zasobu NFS możemy określić:
- rodzaju montowania (z prawem zapisu lub bez)
- zablokowanie bitu suid
- montowanie “twarde” (hard) lub “miękkie” (soft). W przypadku montowania “miękkiego” w przypadku utraty łączności system po kilku próbach zasygnalizuje błąd, przy montowaniu “twardym” – będzie próbował nawiązać łączność aż do skutku.
Przyporządkowywanie identyfikatora UID:
Demon nfsd opiera swą kontrolę dostępu plików serwera na identyfikatorach uid i gid przesyłanych z każdym żądaniem NFS. Standardowym zachowaniem, jakiego można się spodziewać jest dostęp do własnych plików, tak jak byłyby one umieszczone na lokalnym systemie plików. Wymaga to użycia tych samych identyfikatorów użytkownika (uid) i grupy (gid) zarówno na serwerze, jak i na kliencie. Warunek ten nie jest zawsze spełniony, a czasami wręcz niepożądany.
Bardzo często jest niepożądane, by uzyskując dostęp do plików umieszczonych na serwerze administrator na komputerze kliencie był traktowany tak samo, jak gdyby był administratorem serwera. W tym celu identyfikator uid 0 pochodzący z żądań NFS jest zamieniony przez serwer na inny identyfikator, tzw. anonymous (anonimowy) lub nobody (nikt). Ten tryb pracy (zwany ‘root squashing’) jest zachowaniem domyślnym serwera, i może być wyłączony za pomocą opcji no_root_squash.
Domyślnie demon nfsd podczas uruchamiania próbuje pobrać identyfikatory uid i gid anonimowego użytkownika sprawdzając czy istnieje użytkownik nobody w pliku /etc/passwd. Jeśli taki użytkownik nie istnieje anonimowym identyfikatorom uid i guid jest nadawana wartosc -2 (65534). Wartości te mogą zostać zmienione za pomocą opcji anonuid i anongid.
Dodatkowo demon nfsd pozwala na określenie dowolnych identyfikatorów uid i guid jakie powinny zostać nadane anonimowemu użytkwnikowi (nobody). Ostatecznie można zmieniać wszystkie żądania na żądania pochodzące od anonimowego użytkownika przez podanie opcji all_squash.
Serwer nfsd udostępnia również możliwość dynamicznej zamiany identyfikatorów uid i gid servera na identyfikatory klienta i na odwrót. Włączane jest to za pomocą opcji map_daemon, zaś w tym celu wykorzystywany jest protokół UGID RPC. Dlatego, aby to przekodowanie pracowało poprawnie wymagane jest uruchomienie na komputerze kliencie demona ugidd(8) .
Poniżej kompletna lista opcji zamiany identyfikatorów:
- root_squash
Zamień żądania z identyfikatorami uid/gid 0 na żądania pochodzące od anonimowych identyfikatorów uid/gid. Należy zwrócić uwagę, że nie dotyczy to żadnych innych identyfikatorów, które mogłyby być podobnie wrażliwe np. użytkownik bin. - no_root_squash
Wyłącz ‘root squashing’. Ta opcja jest użyteczna przede wszystkim w odniesieniu do bezdyskowych klientów. - squash_uids i squash_gids
Te opcje określają listę identyfikatorów uid i gid, które powinny podlegać zamianie na identyfikatory anonimowe. Poprawna lista identyfikatorów może wyglądać następująco: - squash_uids=0-15,20,25-50
Zwykle wygląda to trochę prościej: squash_uids=0-100 - all_squash
Zamień wszystkie identyfikatory uid i gid na identyfikatory anomimowego użytkownika. Pożyteczne w przypadku publicznie dostępnych katalogów FTP, news itp. Opcją o przeciwnym znaczeniu jest no_all_squash, która obowiązuje domyślnie. - map_daemon
Ta opcja włącza dynamiczną zamianę identyfikatorów uid/gid. Każdy identyfikator w żądaniu NFS będzie zamieniony na odpowiedni identyfikator obowiązujący na serwerze i każdy identyfikator w odpowiedzi NFS będzie zamieniany w przeciwną stronę. Ta opcja wymaga uruchomienia na komputerze kliencie demona rpc.ugidd(8). Ustawieniem domyślnym jest map_identity, pozostawiające wszystkie identyfikatory bez zmian. Zwykłe opcje zamiany (squash options) mają zastosowanie niezależnie od zastosowania zamiany dynamicznej. - anonuid i anongid
Te opcje pozwalają na jawne nadanie identyfikatorom uid i gid użytkownika anonimowego dowolnych wartości. Są szczególnie użyteczne dla klientów PC/NFS, kiedy często chcemy aby wszystkie żądania pochodzące z klientów PC/NFS były traktowane tak, jak gdyby pochodziły od jednego użytkownika. Rozważmy podany poniżej przykład dla katalogu /home/joe, który zamienia wszyskie żądania tak, jak gdyby pochodziły od użytkownika o identyfikatorze 150 (prawdopodobnie identyfikator użytkownika joe).
Trudno było znaleźć ten post w google, strona ciekawa, zasługuje na większy ruch. SEO w 2015 stało się skomplikowane, jest coś co ci się napewno przyda, poszukaj sobie w google – niezbędnik dla każdego webmastera