NFS - serwer (Linux) NFS jest protokołem zdalnego wywoływania procedur (RPC) działa w oparciu o protokoły IP/{UDP TCP} wywołanie systemowe w przypadku we/wy na zdalny plik przejmowane i obsługiwane przez zdalny serwer dynamiczne przypisywanie numerów portów (portmapper) /etc/rc.d/init.d/portmap - startowany automatycznie rpcinfo -p Wersje NFS NFS v.2 - stare edycje Linuxa NFS v.3 - jądra 2.4 NFS v.4 - rozwijany (elementy Andrew fs i Coda fs)
NFS - serwer (Linux) Demony NFS status - zgłasza raporty o awariach i przeładowaniach systemu do lokalnego managera rquotad - zdalny serwer kwot wymuszający dla systemów plików zamontowanych w NFS wielkość miejsca na dysku przydzieloną użytkownikom mountd - przetwarza żądania od klienta sprawdza czy system plików jest eksportowany sprawdza czy klient ma uprawnienia nfs - obsługuje interfejs poziomu użytkownika do modułu jądra NFS (nfsd.o) wykonuje operacje we/wy
NFS - serwer (Linux) (c.d.) Demony NFS (c.d.) nlockmgr - manager blokad NFS dostępu do plików pliki read-only nie wymagają blokady amd - demon automatycznego montowania NFS-HOWTO
NFS - serwer (Linux) (c.d.) rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 749 rquotad 100011 2 udp 749 rquotad 100005 1 udp 759 mountd 100005 1 tcp 761 mountd 100005 2 udp 764 mountd 100005 2 tcp 766 mountd 100005 3 udp 769 mountd 100005 3 tcp 771 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 300019 1 tcp 830 amd 300019 1 udp 831 amd 100024 1 udp 944 status 100024 1 tcp 946 status 100021 1 udp 1042 nlockmgr 100021 3 udp 1042 nlockmgr 100021 4 udp 1042 nlockmgr 100021 1 tcp 1629 nlockmgr 100021 3 tcp 1629 nlockmgr 100021 4 tcp 1629 nlockmgr
NFS - serwer (Linux) (c.d.) Uruchamianie NFS - /etc/rc.d/init.d nfs - skrypt do uruchomiania demonów netfs - skrypt do montowania plików z /etc/fstab używany również do montowania SMB amd - skrypt do uruchomiania amd autofs - skrypt do automatycznego montowania plików gdy wystąpi zapotrzebowanie na we/wy i demontowania jeśli nie są używanie inna implementacja automontera amd
NFS - serwer (Linux) (c.d.) Konfiguracja serwera NFS /etc/exports - exportowane pliki katalog [host(opcja)] host pc313a.mat.uni.torun.pl *mat.uni.torun.pl 158.75.12.64/255.255.255.224 opcja ro - tylko czytanie rw - czytanie i pisanie sync - zmiany w systemie plików są realizowane na bieżąco async zmiany w systemie plików są buforowane na hoście klienta i po wypełnieniu bufora realizowane na zdalnym systemie plików insecure - dopuszcza klientów o nr portów < 1024 noaccess - opcja do exportowania plików z wyłączeniem pewnych katalogów link_relative - odniesienie do katalogu głównego
NFS - serwer (Linux) (c.d.) Konfiguracja serwera NFS /etc/exports - (c.d.) opcja (c.d.) root_squash - odwzorwanie uprawnień roota na użytkownika anonimowego (nobody) nie wolno używać no_root_squash!!!! anonuid, anongid - przypisanie domyślnych uprawnień klientom z bez uprawnień (Windows) Polecenie exportfs przetwarza pliki z exports exportfs -a restart: exportfs -r dynamiczne dopisanie: exportfs pc313a:/mnt/cdrom -o ro
NFS - serwer (Linux) (c.d.) Polecenie exportfs (c.d.) dynamiczne usuwanie: exportfs -u Startowanie i zamykanie ręczne NFS cd /etc/rc.d/init.d./nfs start rpcinfo -p..../nfs stop nfsstat polecenie do analizy wydajności NFS nfsstat - -help showmount informacje o serwerze NFS showmount -a
NFS - klient (Linux) Klient - trzeba znać nazwę hosta i katalogi showmount -e pc313a montowanie katalogów mount -t nfs hosts:nazwa-exp nazwa-katalogu mount -t nfs pc313a:/mnt/cdrom /mnt1 umount /mnt1 opcje polecenia mount exec - pozwól na wykonywanie plików noexec - nie pozwól na wykonywanie plików ro - montuj tylko na odczyt rw - montuj na zapis i odczyt remount - zamontuj z nowymi opcjami t - tryb dostępu do pliku
NFS - klient (Linux) Klient - montowanie za pomocą fstab montowanie katalogów podczas ładowania systemu hosts:nazwa-exp nazwa-katalogu nfs rw 0 0 pc313a:/mnt/cdrom /mnt1 nfs rw 0 0 automonter : dwie implementacje amd i autofs amd - plik /etc/amd.conf autofs - plik /etc/auto.master cd /etc/rc.d/init.d./autofs start./autofs reload./autofs stop rpmfind.net autofs-5.0.3-33.i386.rpm
NFS - klient (Linux) (c.d.) Klient (c.d.) montowanie katalogów (c.d.) mount -t nfs rsize=x, wsize=y host:nazwa-exp nazwakatalogu mount -t nfs rsize=1024, wsize=1024 pc313a:/mnt/cdrom /mnt1 optymalizacja transferu time dd if=/dev/zero of=/mnt/testfile bs=16k count=16384 time dd if=/mnt1/testfile of=/mnt/null bs=16k Problemy bezpieczeństwa - CERT http://www.cert.org http://www.securityfocus.com/bugtraq/faq.html
NFS - klient (Linux) (c.d.) Problemy bezpieczeństwa (c.d.) portmapper /etc/hosts.deny portmap: ALL /etc/hosts.allow portmap: 158.75.12.64/255.255.255.224 /etc/exports /etc lab71(rw, root_squash) klient - opcja nosuid (nie wykonuje set-user-identifier) mount -o nosuid lab71:/sbin /mnt/sbin firewall http://www.linuxdoc.org/howto/ipchains-howto.html