r12 05 (20)


Rozdział 12.
Narzędzia
do obsługi plików

W tym rozdziale:

Podstawowym celem, dla którego łączymy komputery w sieć, jest udostępnianie zasobów — zwłaszcza plików. TCP/IP oferuje liczne narzędzia, których możemy w sieci używać do zarządzania plikami: NFS (Network File System — sieciowy system plików), DFS (Distributed File System — rozproszony system plików) oraz narzędzia do przesyłania plików: FTP (File Transfer Protocol), TFTP (Trivial File Transport Protocol) oraz rcp (Remote Control Protocol). Niniejszy rozdział oprócz omówienia tych narzędzi przedstawia również konfigurację serwera NFS i systemu DFS w Windows 2000.

NFS

Sieciowy system plików NFS jest protokołem, który daje użytkownikom za pomocą protokołu TCP/IP przezroczysty dostęp do zasobów plikowych udostępnionych w sieci. Przezroczystość dostępu do zasobów plikowych oznacza, że użytkownicy mogą korzystać ze zdalnych plików i katalogów tak, jakby mieściły się w lokalnym systemie — bez konieczności logowania do odległego systemu.

Wprowadzenie do NFS

NFS zajmuje się łączeniem systemów plików w różnych komputerach w sieci, aby umożliwić użytkownikom przezroczysty dostęp do nich. Przykład pozwoli lepiej zrozumieć przezroczysty dostęp do plików: weźmy pod uwagę firmę, która posiada komputer o nazwie stock1. Komputer ten przechowuje raporty o zapasach magazynowych w katalogu stocks/reports. Dział sprzedaży posiada komputer o nazwie sale1, używany podczas sprzedaży. Dział ten potrzebuje regularnego dostępu do raportów o stanie magazynów z komputera sale1, aby sprawdzać, czy towar jest dostępny. Jeśli sieć oparta jest na TCP/IP, zaś komputery mają zainstalowaną i uruchomioną usługę NFS, użytkownicy w dziale sprzedaży będą mogli korzystać z raportów magazynowych bez konieczności logowania się do komputera stock1 lub kopiowania plików do komputera sale1.

Aby to jednak umożliwić, trzeba w obu komputerach (stock1 i sale1) wykonać odpowiednie czynności:

Po zamontowaniu katalogu użytkownicy w dziale sprzedaży otrzymają dostęp do raportów magazynowych ze swojego komputera sale1. Wystarczy, że zmienią katalog roboczy na zamontowany katalog /all_reports/stocks w lokalnym komputerze sale1, a będą mogli korzystać z plików raportów, jakby mieściły się w komputerze lokalnym.

Serwery NFS są bezstanowe — nie zachowują żadnych informacji o stanie protokołu dla klientów NFS. Ta cecha serwera NFS jest korzystna w przypadku awarii serwera. Klient nie zdaje sobie sprawy, iż serwer nie działa; jedynie ponawia próby połączenia aż do uzyskania odpowiedzi od serwera. Dzięki temu nie istnieją problemy z odzyskaniem stanu po stronie klientów.

NFS implementuje przezroczysty dostęp do plików za pomocą protokołu RPC (Remote Procedure Call — zdalne wywołanie procedur) przez standard XDR (eXternal Data Representation — zewnętrzna reprezentacja danych).

Protokół RPC

RPC jest protokołem używanym do komunikacji pomiędzy procesami w różnych komputerach sieciowych, poprzez system logicznej komunikacji klienta z serwerem. RPC korzysta z procedur zdalnych — programów, wymagających do komunikacji adresu hosta, numeru programu i numeru procedury.

Model RPC jest podobny do modelu używanego do komunikacji pomiędzy różnymi procesami w jednym komputerze. Proces RPC w komputerze klienta żąda określonej usługi od innego komputera w sieci. Taki komunikat żądający usługi nazywany jest komunikatem wywołania (call message). Serwer uwierzytelnia żądanie, a następnie sam udostępnia usługę lub uruchamia w tym celu inny proces. Na koniec serwer zwraca odpowiedź do klienta — komunikat odpowiedzi (reply message). Każdy komunikat wywołania jest parowany z komunikatem odpowiedzi.

0x01 graphic

Dodatkowe informacje o RPC zawiera rozdział 7.

RPC udostępnia logiczną komunikację klient-serwer za pomocą protokołu transportowego, na przykład TCP lub UDP, który przenosi dane komunikatu pomiędzy komunikującymi się programami. RPC jest jednakże niezależny od protokołów transportowych; metoda przesyłania komunikatów pomiędzy procesami nie ma dla RPC znaczenia. Wobec tego RPC nie kojarzy ze zdalnymi procedurami żadnej określonej semantyki podczas implementacji logicznej łączności pomiędzy procesami. Semantyka jest wnioskowana z położonych poniżej protokołów transportowych. Ponadto RPC nie zapewnia żadnego mechanizmu wiarygodności, polegając zamiast tego na stosowanych protokołach transportowych. Oznacza to, że aplikacje muszą znać typ używanego przez RPC protokołu transportowego. Sama aplikacja musi zapewnić wiarygodność transmisji, jeśli stosowany jest protokół transportowy bez gwarancji dostawy, na przykład UDP.

Zewnętrzna reprezentacja danych

W implementacji NFS dostęp do zasobów plikowych odbywa się poprzez sieć. Reprezentacja danych w każdym komputerze zależy od modelu urządzenia i używanego systemu operacyjnego (jedno i drugie może być różne). Na przykład, kod ASCII (American Standard Code for Information Interchange) przedstawia znaki w kodzie 7-bitowym, zaś EBCDIC (Extended Binary Coded Decimal Interchange Code) używa kodu 8-bito­wego. Znak „A” w ASCII reprezentowany jest przez kod 65, natomiast w EBCDIC przez kod 193. Te sposoby przedstawiania danych są zależne od komputera. Aby więc komunikacja odbywała się pomyślnie, musi istnieć standardowy sposób reprezentacji danych, niezależny od architektury komputera i od systemu operacyjnego. Standard XDR (EXternal Data Implementation — zewnętrzna reprezentacja danych) jest znormalizowanym sposobem prezentacji danych w sieci. XDR używa języka opisu danych do kodowania formatów danych, dzięki czemu dane można przesyłać przez sieć do dowolnego komputera, niezależnie od modelu urządzenia i systemu operacyjnego. W ten sposób standard XDR umożliwia komunikację pomiędzy różnymi systemami operacyjnymi i architekturami komputerów.

Usługi NFS

Aby system NFS mógł funkcjonować, w serwerze NFS muszą być uruchomione określone usługi NFS, udostępniane przez następujące programy usługowe (demony):

Zagadnienia bezpieczeństwa w NFS

NFS zapewnia łatwy dostęp do plików w sieci. Jednakże kilka cech zabezpieczeń powoduje, iż system NFS może nie być bezpieczny:

Możemy rozwiązać problemy związane z bezpieczeństwem NFS, instalując najnowsze dostępne łaty zabezpieczające NFS. Ponadto systemy plików należy eksportować z uprawnieniami tylko do odczytu. Jeśli nie jest to jednak możliwe, powinniśmy eksportować systemy plików tylko do ograniczonej liczby hostów.

0x01 graphic

Dodatkowe informacje o bezpieczeństwie NFS można znaleźć w witrynie Webopaedia (www.pcwebopaedia.com) oraz witrynie WWW firmy Sun Microsystems (www.sun.com).

Wersje NFS

NFS pozwala użytkownikom zarządzać plikami w kilku komputerach w sieci tak, jakby mieściły się na lokalnym dysku twardym. Usługa NFS została opracowana przez Sun Microsystems w połowie lat 80., jednakże pierwsza wersja NFS nie została nigdy opublikowana. Poprawiona, druga wersja została opublikowana i zaimplementowana w systemie operacyjnym SunOS 2.0. Od tego czasu firma Sun Microsystems włącza NFS do systemów SunOS. Ponieważ NFS jest niezależny od architektury komputera, systemu operacyjnego, sieci i protokołu transportowego, został zaimplementowany na różnych platformach — Unix, MS Windows, NetWare i OS/2. Jednakże NFS w wersji 2. ma kilka ograniczeń, a od jej premiery zaproponowano przynajmniej osiem nowych wersji NFS, aby uporać się z tymi ograniczeniami. Nie wszystkie zaproponowane wersje zostały zaimplementowane.

NFS w wersji 3. nadal jest bezstanowy. Podobnie jak w wersji 2., każde żądanie jest kompletne, wystarczające i jego przetworzenie nie zależy od innych żądań. Serwer nie musi utrzymywać żadnych informacji o stanie, zaś przywrócenie stanu sprzed awarii systemu jest proste — wystarczy, że klient będzie ponawiać żądania, dopóki nie otrzyma odpowiedzi od serwera. Wersja 2. do transportu używa protokołu UDP, natomiast wersja 3. TCP (TCP jest bardziej niezawodny, lecz daje gorszą wydajność). Do różnic pomiędzy wersjami 2. i 3. należą:

Wprawdzie NTSF w wersji 3. rozwiązuje większość problemów z wersji 2., lecz w połowie roku 2000 wydana została nowa, czwarta wersja NTFS, która zapewnia poprawione:

Konfiguracja serwera NFS

Aby zaimplementować protokół NFS w celu przezroczystego dostępu do plików udostępnianych w sieci, musimy skonfigurować serwer NFS. Można to zrobić w różnych systemach operacyjnych, zarówno Windows, jak i uniksowych. Bieżący punkt opisuje konfigurację serwera NFS pod Linuksem i Windows 2000.

Konfiguracja serwera NFS w systemie Linux

Konfiguracja serwera NFS w systemie Linux obejmuje edycję kilku plików konfiguracyjnych. W pierwszej kolejności musimy się jednakże upewnić, czy protokół TCP/IP jest skonfigurowany i funkcjonuje poprawnie, oraz czy zainstalowany jest odpowiedni pakiet nfs-utils. Pakiet ten składa się z kolekcji programów usługowych (demonów) wymaganych do funkcjonowania NFS i mieści się w katalogu /sbin lub /usr/sbin. Musimy dokonać edycji trzech plików konfiguracyjnych: /etc/exports, /etc/hosts.allow, oraz /etc/hosts.deny.

Plik /etc/exports zawiera wpisy dla wszystkich katalogów udostępnionych w sieci. Wpisy te zawierają szczegółowe informacje o dostępie do katalogów. Na przykład, część katalogów pozwala jedynie na odczyt, zaś inne na odczyt i modyfikacje. Do tego pliku musimy dodać wpisy dla wszystkich udostępnionych katalogów. Typowy wpis wygląda następująco:

katalog komputer1(opcja11,opcja12) komputer2(opcja21,opcja22)

W tej składni:

Weźmy pod uwagę sytuację, gdy trzeba udostępnić przez sieć komputerom komputer1komputer2 dwa katalogi w serwerze: /usr/sales i /usr/reports. Adresy wymienionych komputerów to odpowiednio 192.17.0.1 i 192.17.0.2. Jeśli oba komputery potrzebują jedynie dostępu z prawami do odczytu, to plik /etc/exports będzie zawierał następujące wpisy:

/usr/sales 192.17.0.1(ro) 192.17.0.2(ro)

/usr/reports 192.17.0.1(ro) 192.17.0.2(ro)

Gdy liczba komputerów, które wymagają dostępu do komputera jest duża, możemy stosować zakresy adresów zamiast poszczególnych nazw komputerów. W tym przypadku, aby wyszczególnić komputery w podsieci, możemy podać adres sieci i maskę podsieci.

Pliki /etc/hosts.allow i /etc/hosts.deny zawierają wpisy dla wszystkich usług w serwerze, z których mogą korzystać inne komputery w sieci. Wpisy w tym pliku wymieniają usługi i zbiory komputerów w sposób następujący:

usługa: komputer1, komputer2

W tych wpisach możemy stosować zarówno nazwy komputerów, jak i adresy IP.

Za każdym razem, gdy klient wysyła żądanie do serwera, ten wykonuje następujące czynności:

Po zmodyfikowaniu tych trzech plików konfiguracyjnych wystarczy zrestartować komputer, aby uruchomić NFS. W trakcie restartu serwera skrypty uruchomieniowe automatycznie wykrywają ustawienia /etc/exports i uruchamiają NFS. By zweryfikować, czy usługa NFS jest uruchomiona, możemy użyć polecenia rpcinfo -p. Czasami niezbędne jest dodanie wpisów w pliku inicjacyjnym, aby uruchomić usługi lub demony NFS. Na przykład, aby uruchomić demony mountd i nfsd, należy dodać do skryptów uruchomieniowych następujące wiersze:

rpc.mountd

rpc.nfsd

Konfiguracja serwera NFS w Windows NT Server

Podczas instalacji systemu Windows NT Server 4.0 oprogramowanie serwera NTFS nie zostaje automatycznie zainstalowane. W tym celu potrzebny jest dodatkowy pakiet Microsoft Windows NT Services for Unix (SFU). Pakiet SFU pozwala wzajemnie udostępniać zasoby sieciowe systemom Windows NT, Windows 2000 i odmianom Uniksa. Po zainstalowaniu SFU możemy skonfigurować serwer NFS. Zadanie to jest bardzo podobne w systemach Windows 2000 Server i Windows NT Server. Aby skonfigurować NFS w systemie Windows NT Server, trzeba utworzyć folder przeznaczony do udostępnienia, dodać grupy klientów NFS, udostępnić katalog, z którego klienty mają korzystać, oraz przydzielić uprawnienia użytkownikom. Pomoże w tym Czytelnikowi poniższa procedura:

  1. Kliknij prawym przyciskiem myszy folder przeznaczony do udostępnienia i wybierz Właściwości z menu podręcznego.

  2. Wybierz zakładkę Zabezpieczenia, kliknij Uprawnienia i zaznacz pole wyboru Zastąp uprawnienia dla podkatalogów.

  3. Zaznacz pole wyboru Zastąp uprawnienia dla istniejących plików.

  4. Pod polem Nazwa wybieraj pojedynczo po kolei uprawnienia i za każdym razem kliknij Usuń, aby je skasować.

  5. Kliknij Dodaj, a następnie Pokaż użytkowników.

  6. Wybierz Wszyscy, grupę administratorów i użytkownika Administrator. Kliknij Dodaj.

  7. Zmień typ dostępu na Pełna kontrola i zamknij okno dialogowe.

  8. Wybierz Start/Programy/Windows NT Services for Unix/Server for NFS.

  9. Wybierz zakładkę NFS Client Groups. Naciśnij Alt+G, wpisz nazwę grupy i kliknij OK, aby dodać grupę klientów. Naciśnij Alt+M, wpisz nazwę hosta lub adres IP klienta NFS, kliknij OK, a następnie Apply (Dodaj), aby dodać członka do grupy klientów.

  10. 0x01 graphic

    Grupa klientów (client group) oznacza grupę komputerów mających dostęp do folderów udostępnionych przez NFS.

    1. Wybierz zakładkę Share Options (Opcje udostępniania). Wprowadź pełną ścieżkę udostępnianego foldera i zmień dostęp na No Access (brak dostępu). Naciśnij Alt+A, wybierz utworzoną przed chwilą grupę klientów i kliknij Add. Przydziel uprawnienia administracyjne jako Root albo Anonymous. Aby przyznać uprawnienia administracyjne jako Root, naciśnij Alt+A i wybierz typ dostępu Root. Aby przyznać je jako Anonymous, naciśnij Alt+A i wybierz typ dostępu Read-Write (zapis i odczyt). Naciśnij Alt+Y i kliknij Apply, aby zastosować ustawienia opcji udostępniania.

    2. Skonfiguruj odwzorowania użytkowników i grup systemu Windows na użytkowników i grupy systemu Unix. Naciśnij Alt+O, a następnie Alt+E, aby zmodyfikować plik haseł i wprowadzić nową nazwę i identyfikator użytkownika oraz identyfikator grupy. Naciśnij Alt+A, a następnie Alt+O. Wybierz użytkowników w NFS Users i Windows Users, a następnie naciśnij Alt+D, aby dodać odwzorowanie. Naciśnij Alt+A, aby zastosować zmiany.

    Po skonfigurowaniu serwera NFS, uniksowe klienty NFS będą mogły korzystać z udostępnionych plików przez proste zamontowanie udziału serwera NFS.

    DFS

    Systemy plików dostępne w różnych systemach operacyjnych — na przykład FAT lub NTFS — jedynie zarządzają organizacją danych na lokalnym nośniku fizycznym. Użytkownicy jednakże muszą często znajdować informacje w sieci, zwykle rozproszone po różnych serwerach. Wobec tego użytkownicy mają kłopoty z wyszukiwaniem informacji, gdy przeglądają udostępnione foldery różnych komputerów w sieci. Administratorzy sieciowi mogą zaradzić tym problemom, stosując rozproszony system plików DFS (Distributed File System). DFS oszczędza zachodu z ręcznym wyszukiwaniem pliku w całej sieci.

    Wprowadzenie do DFS

    W wyścigu systemów operacyjnych do pracy z Internetem Microsoft udostępnił DFS, który wyewoluował z NetBIOS-u — składnika pakietu protokołów TCP/IP. DFS (Distributed File System — rozproszony system plików) pozwala użytkownikom korzystać z udostępnionych plików i katalogów, fizycznie rozrzuconych po sieci, bez konieczności podawania ich położenia fizycznego. DFS można skonfigurować w dowolnym serwerze sieciowym Windows 2000. Usługa ta gromadzi razem wszystkie udostępnione pliki i katalogi, fizycznie rozrzucone po sieci, i udostępnia je wszystkie użytkownikom tak, jakby mieściły się w pojedynczym serwerze, w którym skonfigurowany został DFS. Na przykład, jeśli dane sprzedaży rozrzucone są po wielu serwerach w sieci, możemy skorzystać z systemu DFS, aby uzyskać taki dostęp do danych, jakby wszystkie były położone w pojedynczym serwerze.

    0x01 graphic

    W strukturze serwerów sieciowych Windows 2000 serwer DFS można również umieścić w systemie Windows NT Server 4.0.

    DFS składa się z katalogu głównego (korzenia) DFS, jednego lub wielu łączy DFS i jednego lub wielu udostępnionych folderów DFS, na które wskazują poszczególne łącza. Wszystkie te składniki tworzą razem topologię DFS. Serwer, w którym znajduje się katalog główny DFS, nosi nazwę serwera macierzystego. Katalog główny DFS oznacza udostępniony katalog w tym serwerze, który gra rolę punktu wyjściowego i hosta dla innych udziałów. W jego obrębie możemy za pomocą łączy DFS, wskazujących fizyczną ścieżkę do udostępnionego foldera w sieci, tworzyć udostępnione foldery DFS. W ten sposób DFS udostępnia ścieżki logiczne do wszystkich udostępnionych plików i katalogów (folderów) w sieci. Użytkownicy uzyskują dostęp do plików i katalogów udostępnionych w sieci, po prostu montując DFS. Ponieważ użytkownicy nie muszą znać nazw serwerów i udziałów, mogą korzystać z plików i katalogów spod stałych udostępnionych folderów DFS, nawet gdy ich fizyczne położenie ulegnie zmianie. Serwer DFS daje szereg różnych korzyści:

    Katalogi główne DFS: autonomiczny i domeny

    DFS możemy zaimplementować tworząc autonomiczny katalog główny DFS lub katalog główny DFS domeny. W przypadku autonomicznego DFS domena zawiera tylko jeden serwer macierzysty — katalog główny DFS mieści się tylko w jednym serwerze DFS. Natomiast w przypadku DFS domeny może istnieć więcej serwerów macierzystych. Ponieważ autonomiczna implementacja DFS stosuje tylko jeden serwer macierzysty, jeśli z jakiegoś powodu będzie on niedostępny (na przykład, podczas konserwacji systemu), użytkownicy nie będą mogli korzystać ze swoich plików. Ponieważ implementacja DFS w domenie może obejmować więcej serwerów macierzystych, zapewnia ona użytkownikom wysoką dostępność plików; jest ona również wynikiem dwóch faktów:

    Konfiguracja DFS w Windows 2000

    DFS można skonfigurować zarówno na partycji FAT, jak i NTFS. Ponieważ jednak NTFS zapewnia więcej funkcji zabezpieczeń od systemu plików FAT, zaleca się konfigurować DFS na partycji NTFS. Konfigurowanie DFS obejmuje utworzenie korzenia, łączy i udostępnionych folderów DFS.

    Tworzenie katalogu głównego DFS

    Aby utworzyć korzeń DFS:

    1. Wybierz Start/Programy/Narzędzia administracyjne/Rozproszony system plików.

    1. Wybierz Nowy katalog główny rozproszonego systemu plików DFS z menu Akcja, aby uruchomić kreatora.

    2. Kliknij Dalej, aby otworzyć okno typu katalogu głównego plików DFS. Domyślnie wybrana jest opcja Utwórz katalog główny systemu plików DFS domeny. Aby założyć autonomiczny system plików DFS, trzeba wybrać Utwórz autonomiczny katalog główny systemu plików DFS. Kliknij Dalej, aby przejść do następnego kroku kreatora.

    3. Jeśli wybrany został katalog główny DFS oparty na domenie, to kreator zapyta o nazwę domeny, w której ma zostać utworzony katalog główny DFS. Wpisz nazwę domeny i kliknij Dalej.

    4. Podaj nazwę serwera macierzystego dla katalogu głównego DFS i kliknij Dalej, aby otworzyć okno Podaj udział dla katalogu głównego systemu plików DFS.

    5. 0x01 graphic

      Zamiast wpisywać ręcznie nazwę serwera, można kliknąć Przeglądaj i wybrać nazwę serwera z listy.

      1. W oknie tym można wpisać udostępniony folder. Podaj ścieżkę do istniejącego udostępnionego folderu lub nazwę nowego, do utworzenia. Kliknij Dalej.

      2. Wyświetlona zostanie nazwa domyślna dla katalogu głównego DFS, zamiast której możesz podać nową. Kliknij Dalej.

      3. Kliknij Zakończ. Nowy katalog główny DFS został utworzony.

      Po założeniu katalogu głównego DFS należy ponownie uruchomić serwer, aby nowa implementacja DFS została aktywowana.

      Tworzenie łącza DFS lub udostępnionych folderów

      Łącze DFS może zawierać wiele udostępnionych folderów. Jednakże podczas tworzenia łącza DFS automatycznie dodawany jest pierwszy udostępniony folder. Aby utworzyć łącze DFS:

      1. Wybierz Start/Programy/Narzędzia administracyjne/Rozproszony system plików.

      1. Kliknij prawym przyciskiem myszy katalog główny DFS, do którego chcesz przydzielić udostępniony folder, a następnie wybierz Nowe łącze DFS z menu podręcznego.

      2. Podaj nazwę foldera w polu Nazwa łącza.

      3. Utwórz łącze do udostępnionego foldera, wpisując ścieżkę do niego w polu Wyślij użytkownika do tego udostępnionego foldera.

      4. 0x01 graphic

        Nazwa foldera wpisana do pola Nazwa łącza będzie widoczna dla wszystkich użytkowników sieci.

        Narzędzia do przesyłania plików

        Bywa, że chcemy udostępnić pliki innemu komputerowi lub przesłać pliki z jednego komputera do innego. Proces przenoszenia pliku z jednego komputera do drugiego to transfer plików. Możemy przesyłać pliki przez Sieć za pomocą odpowiednich narzędzi. Jednym z podstawowych zakresów wykorzystania protokołów TCP/IP jest transfer plików. TCP/IP udostępnia protokoły, na przykład FTP (File Transfer Protocol), TFTP (Trivial File Transfer Protocol) oraz rcp (Remote Copy), które pomagają przesyłać pliki przez Sieć i zarządzać nimi. W niniejszym podrozdziale omówimy szczegółowo te narzędzia.

        FTP

        Jednym z najpowszechniej spotykanych zastosowań TCP/IP jest transfer plików.

        0x01 graphic

        Transfer plików oznacza kopiowanie ich z jednego komputera do drugiego, bez naruszania kopii źródłowej.

        Protokół transferu plików FTP jest jednym z protokołów pakietu TCP/IP. FTP jest zbiorem reguł, które zajmują się przesyłaniem plików z jednego komputera do drugiego. Dodatkowo, zapewnia on przesyłanie danych w sposób wiarygodny i wydajny. FTP zawiera szereg różnych poleceń, które pomagają przesyłać pliki, tworzyć katalogi i zarządzać nimi. FTP różni się od innych protokołów z pakietu TCP/IP tym, że używa dwóch portów TCP/IP — 20. i 21. Porty te noszą odpowiednio nazwy procesu transferu danych (DTP — Data Transfer Process) oraz interpretera protokołu (PI — Protocol Interpreter). Port 20. służy do przesyłania informacji o katalogach i plikach, natomiast 21. do przesyłania poleceń.

        FTP opiera się na architekturze klient-serwer. Klient łączy się z serwerem na porcie 21., podczas gdy serwer używa portu 20., aby połączyć się z powrotem z klientem i przesyłać dane. Klient rozpoczyna sesję, wysyłając na port 21. żądanie połączenia z serwerem FTP. Jest to tzw. połączenie kanału sterującego (Control Channel). Klient wysyła polecenie PORT, zawierające numer portu, z którym serwer musi się połączyć w celu wymiany danych pomiędzy dwoma portami. Następnie, serwer FTP przesyła dane ze swojego portu 20. na port wyszczególniony przez klienta w poleceniu PORT. Ponieważ ten transfer danych inicjowany jest przez serwer i nie jest kontrolowany przez klienta, zapora firewall po stronie klienta nie jest w stanie wykryć źródła danych, co może prowadzić do problemów z bezpieczeństwem — ponieważ niechciane dane mogą udawać transfer danych FTP i dotrzeć do klienta. Problem ten można rozwiązać za pomocą pasywnego FTP, w którym klient zamiast polecenia PORT wysyła polecenie PASV. Polecenie to żąda od serwera numeru portu klienta, który będzie używany do przesyłania danych. Serwer wysyła numer portu, który następnie zostaje użyty przez klienta do inicjacji wymiany danych. Ponieważ w tym przypadku serwer odpowiada na żądanie inicjowane przez klienta, zapora jest w stanie wykryć źródło, z którego nadchodzą dane. Większość klientów stosuje pasywny FTP.

        Przy stosowaniu FTP do transferu plików program FTP w komputerze użytkownika (hoście lokalnym) komunikuje się z programem FTP w odległym komputerze. Jednakże te dwa hosty niekoniecznie muszą posiadać taki sam system operacyjny. Aby przesłać pliki, wymieniany jest ciąg poleceń pomiędzy hostami. Po przesłaniu plików połączenie może zostać przerwane przez komputer lokalny.

        Dostępnych jest wiele różnych programów FTP, zarówno z tekstowymi, jak i graficznymi interfejsami użytkownika. Interfejsy znakowe i programy uruchamiane z wiersza poleceń dostępne są dla tekstowych systemów operacyjnych — na przykład, DOS-u i Uniksa, natomiast programy z graficznym interfejsem użytkownika są dostępne dla systemów operacyjnych typu Windows. W przypadku programów uruchamianych z wiersza poleceń użytkownik musi wpisywać polecenia, aby przesyłać pliki lub nimi zarządzać. W programach FTP z interfejsem graficznym czynności te możemy wykonywać za pomocą przycisków i ikon.

        FTP przesyła pliki w dwóch formatach: binarnym i ASCII. Format binarny służy do przesyłania plików z danymi binarnymi i plików wykonywalnych. Format ASCII służy do przesyłania plików tekstowych. Domyślnie pliki przesyłane są w formacie ASCII, ponieważ systemy Unix i Windows stosują w plikach tekstowych odmienne zakończenia wierszy. Systemy uniksowe stosują do tego celu znak przesuwu o wiersz (line feed), zaś Windows kończy wiersze znakami powrotu karetki (carriage return) i przesuwu o wiersz. Stosowanie formatu ASCII zapewnia poprawne tłumaczenie zakończeń wierszy przy przesyłaniu plików pomiędzy różnymi środowiskami hostów.

        0x01 graphic

        Należy zawsze pamiętać, by podać właściwy format podczas przesyłania plików. Jeśli prześlemy plik binarny w formacie ASCII, to wersja, która dotrze do komputera docelowego będzie uszkodzona. Plik ASCII przesłany jako binarny zostanie skopiowany bez żadnych zmian.

        Jak więc działa FTP? Wprawdzie poszczególne programy FTP funkcjonują nieco odmiennie, lecz podstawowy mechanizm pozostaje niezmieniony. Podstawowa procedura działania programu FTP wygląda następująco:

        1. Komputer macierzysty nawiązuje połączenie z komputerem zdalnym.

        1. Użytkownik komputera macierzystego loguje się do zdalnego hosta.

        2. Użytkownik tworzy lub znajduje katalog w komputerze zdalnym. Katalog ten zawiera potrzebny plik lub przeznaczony jest do odbioru pliku.

        3. Użytkownik używa odpowiedniego polecenia lub menu i przycisków (zależnie od typu używanego programu), aby przesłać pliki.

        4. Po przesłaniu wszystkich plików użytkownik wychodzi z sesji ftp przez wylogowanie ze zdalnego komputera.

        Programy znakowe FTP zazwyczaj wymagają przy uruchomieniu podania nazwy użytkownika i hasła. Graficzne programy FTP zwykle wyświetlają okno, w którym możemy wybrać z listy nazwę lub adres IP zdalnego systemu. Po nawiązaniu połączenia użytkownik musi podać nazwę użytkownika i hasło, by zalogować się do zdalnego komputera.

        W Internecie FTP może posłużyć do pobierania darmowego oprogramowania i plików z publicznych bibliotek mieszczących się na anonimowych serwerach FTP. Ośrodki takie pozwalają łączyć się z serwerem w sposób anonimowy, stąd nazwa użytkownika Anonymous. Na zapytanie o hasło, możemy wprowadzić swoją tożsamość sieciową. Witryny tego typu dają anonimowym użytkownikom jedynie prawo do odczytu, aby nie mogli oni wprowadzać zmian w archiwach.

        TFTP

        TFTP (Trivial File Transfer Protocol — prosty protokół przesyłania plików) jest protokołem TCP/IP służącym do transferu plików, tekstowych i binarnych, z jednego komputera do drugiego. TFTP używa do przesyłania plików portu 69. UDP i jest z założenia prosty i łatwy w użyciu. Wobec tego, w przeciwieństwie do FTP, TFTP nie pozwala wykonywać operacji na plikach i katalogach — na przykład, listować zawartości katalogu lub zarządzać plikami, a poza tym nie zapewnia uwierzytelnienia użytkownika. TFTP jest implementowany na podstawie protokołu UDP i służy przede wszystkim do uruchamiania ruterów i bezdyskowych stacji roboczych. Ponieważ TFTP nie uwierzytelnia użytkownika, komputer macierzysty nie musi podawać nazwy użytkownika ani hasła. Z tego powodu protokół TFTP jest używany jedynie z zaufanymi klientami.

        TFTP działa w sposób następujący:

        1. Komputer macierzysty wysyła żądanie transferu plików do komputera zdalnego.

        1. Po przyjęciu żądania przez komputer zdalny, zamówiony plik zostaje wysłany w postaci pakietów o stałej długości 512 bajtów. Każdy wysłany pakiet jest numerowany.

        2. Komputer odbierający potwierdza odbiór każdego pakietu, odsyłając potwierdzenie z numerem bloku otrzymanego pakietu.

        3. Po wysłaniu pakietu o długości mniejszej od 512 bajtów transfer pakietów pomiędzy odbiorcą i nadawcą zostaje zakończony.

        Jeśli pakiet (lub potwierdzenie) zostanie utracony podczas transmisji, to należy wysłać go ponownie. Gdy do przesyłania plików przez sieć służy TFTP, oba komputery pełnią funkcję nadawców i odbiorców. Komputer macierzysty odbiera dane i wysyła potwierdzenia, zaś komputer zdalny wysyła pakiety i odbiera potwierdzenia.

        Remote Copy Protocol

        Protokół rcp (Remote Copy Protocol — protokół zdalnego kopiowania) jest protokołem TCP/IP, należącym do kategorii tzw. r-narzędzi (r-utility) i służy do przesyłania plików do i ze zdalnego komputera. Protokół ten został zaimplementowany w postaci polecenia rcp. Przed użyciem polecenia rcp trzeba w komputerze zdalnym utworzyć plik .rhosts, zawierający nazwy systemów, którym ten zdalny komputer może zaufać. Jeśli jednak do dostępu do zdalnego komputera używane są różne nazwy użytkowników, w pliku .rhosts musimy podać te nazwy po nazwach systemów. Stosując protokół rcp, użytkownik musi podać nazwę systemu, która jest następnie porównywana z zapisaną w pliku .rhosts. Pliki można kopiować tylko wtedy, gdy nazwy: podana jako parametr polecenia rcp i zawarta w pliku .rhosts pasują do siebie. Jeśli nazwy użytkowników w komputerach lokalnym i zdalnym są różne, musimy w poleceniu rcp podać nazwę użytkownika przed nazwą systemu. Gdy stosuje się polecenie rcp, nie trzeba podawać hasła. Weźmy pod uwagę dwa komputery, zdalny komputer1 i lokalny komputer2. Aby komputer 2 mógł uzyskać dostęp do plików w komputerze 1, w pliku .rhosts komputera 1 należy umieścić następujący wiersz:

        komputer2.<nazwa domeny>

        Polecenie skopiowania przez rcp pliku o nazwie plik1 z komputera 1 do komputera 2 wyglądać będzie następująco:

        komputer1$ rcp komputer2: plik1 plik1

        Jeśli nazwa użytkownika w komputerze 1 brzmi uzytkownik1, zaś w drugim uzytkownik2, to w pliku .rhosts musimy podać nazwę użytkownika po nazwie systemu:

        komputer2.<nazwa domeny> uzytkownik2

        W takim przypadku polecenie skopiowania przez rcp pliku o nazwie plik1 z komputera 1 do komputera 2 wyglądać będzie następująco:

        komputer1$ rcp uzytkownik2@komputer2: plik1 plik1

        Polecenie rcp może przyjmować różne opcje, opisane w tabeli 12.1:

        Tabela 12.1. Opcje polecenia rcp

        Opcja

        Znaczenie

        -a

        Wybiera tryb przesyłu ASCII, domyślny dla rcp.

        -b

        Wybiera binarny tryb przesyłu, którego trzeba używać do przesyłania plików binarnych i wykonywalnych.

        -h

        Służy do przesyłania razem z innymi plikami plików ukrytych.

        -r

        Służy do kopiowania zawartości podkatalogów.

        Host

        Służy do określenia hosta lokalnego lub zdalnego.

        Użytkownik

        Służy do określenia nazwy użytkownika. Opcji tej należy używać, gdy zdalny użytkownik jest inny od bieżącego lokalnego.

        Źródło

        Służy do wyszczególnienia plików, które trzeba skopiować.

        Ścieżka\przeznaczenie

        Służy do określenia względnej ścieżki do katalogu logowania w zdalnym komputerze.

        270 Część III Popularne aplikacje TCP/IP

        Rozdział 12. Narzędzia do obsługi plików 257



        Wyszukiwarka

        Podobne podstrony:
        3 Analiza firmy 2015 (Kopia powodująca konflikty (użytkownik Maciek Komputer) 2016 05 20)
        TPL WYK 13 05 20 Mikstury
        2011 03 05 20;57;51
        r12-05, Programowanie, ! Java, Java Server Programming
        2014 05 20
        ćw rat med 11 05 20
        Zadanie 02 2008 05 20, MEiL, [NW 125] Podstawy konstrukcji maszyn II, Kolokwia
        Różnice indywidualne 05.20
        cw sta zag zyc 11 05 20
        Zadanie 03 2008 05 20, MEiL, [NW 125] Podstawy konstrukcji maszyn II, Kolokwia
        TPL PRAC 13 05 20 Mikstury
        2016 05 20 Ustawa Program modernizacji Policji 2017 2020 projekt
        9 Kontrola strategiczna 2015 (Kopia powodująca konflikty (użytkownik Maciek Komputer) 2016 05 20) pp
        2003 05 20
        CERTO 2010 05 20 Standardowy
        2011 03 05 20;54;09
        2002 05 20

        więcej podobnych podstron