ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
File Transfer Protocol
Działający
na
zasadzie
klient-serwer
protokół
umożliwiający przesyłanie plików przez Internet. FTP
jest najpopularniejszą metodą kopiowania plików z
odległej maszyny do lokalnej lub odwrotnie.
Protokół FTP jest znacznie starszy niż stosowany w sieci
WWW protokół HTTP, będąc obecnym w Internecie od
samych jego początków (dokładniej - od 1971 roku).
Obok poczty elektronicznej i Telnetu jest jedną z trzech
podstawowych usług zaprojektowanych dla sieci
ARPANet, poprzedniczki Internetu.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
Historia
•
FTP ma długa historię. Pierwszy raz mechanizm przekazywania plików był zaproponowany w roku 1971
i zrealizowany dla hosta na M.I.T (patrz RFC 114 z komentarzami w RFC 141).
•
W RFC172 został opisany zorientowany na użytkownika protokołów transmisje plików pomiędzy
hostami (łącznie z terminalami MPs).
•
W RFC 265 i RFC 281 niektóre aspekty zostały zmienione. Pojęcie "Set data Type" zostało wprowadzone
w RFC 294 w styczniu 1972 roku.
•
RFC 354 uzupełnił RFC 264 i RFC 265.
•
File Transfer Protocol był teraz zdefiniowany jako protokół do transmisji pomiędzy HOST'ami dla
ARPANET. Najbardziej istotną funkcją protokołu była funkcja przekazywania plików miedzy hostami
skutecznie i dokładnie. To musiało pomagać w użyciu serwerów plików. Później pojawiło się sporo
dokumentów RFC na ten temat. Oto są niektóre: RFC 385, RFC 414, RFC 430. Pierwsza "oficjalna"
wersja protokołu została opublikowana w RFC 454.
•
W lipcu roku 1973 były wprowadzone pewne nieścisłości, ale struktura protokołu pozostała taka sama.
Wszystkie te zmiany były zaznaczone w RFC 542 - nowej "oficjalnej" wersji protokołu.
•
W roku 1974 ciągle trwały dyskusje na ten temat. Jako ich wynik pojawiły się następujące dokumenty:
RFC 607, RFC 614, RFC 624, w 1975 roku - RFC 686, RFC 691.
•
W związku z przejściem protokółu z niższej warstwy z NCP na TCP pojawił się nowy dokument, opisujący
standard: RFC 765.
•
Ostatnia specyfikacja (którą potrafiłem odnaleźć) pojawiła się w październiku roku 1985 pod numerem
RFC 959. Natomiast w listopadzie 1997 roku powstał RFC 2228 poświęcony zabezpieczeniom protokołu.
•
FTP (ang. File Transfer Protocol) - protokół typu klient-serwer, który umożliwia przesyłanie plików z i na
serwer poprzez sieć TCP/IP. Protokół ten jest zdefiniowany przez IETF w RFC 959.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
Protokół
• FTP jest protokołem 8-bitowym, dlatego nie wymaga specjalnego kodowania
danych na postać 7-bitową, tak jak ma to miejsce w przypadku poczty
elektronicznej (patrz standardy MIME, base64, quoted-printable, uuencode).
• Do komunikacji wykorzystywane są dwa połączenia TCP. Jedno z nich jest
połączeniem kontrolnym za pomocą którego przesyłane są np. polecenia do
serwera, drugie natomiast służy do transmisji danych m.in. plików. FTP działa w
dwóch trybach: aktywnym i pasywnym, w zależności od tego, w jakim jest trybie,
używa innych portów do komunikacji.
• Jeżeli FTP pracuje w trybie aktywnym, korzysta z portów: 21 dla poleceń
(połączenie to jest zestawiane przez klienta) oraz 20 do przesyłu danych.
Połączenie nawiązywane jest wówczas przez serwer. Jeżeli FTP pracuje w trybie
pasywnym wykorzystuje port 21 do poleceń i port o numerze > 1024 do transmisji
danych, gdzie obydwa połączenia zestawiane są przez klienta. W sieciach ukrytych
za firewallem komunikacja z aktywnymi serwerami FTP jest możliwa, tylko pod
warunkiem, jeżeli odpowiednie porty na firewallu (routerze) są zwolnione. Możliwe
jest zainstalowanie wielu serwerów FTP na jednym i tym samym routerze.
Warunkiem jest rozdzielenie portów przez router dla każdego serwera.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Aktywny tryb FTP
• W trybie aktywnym klient FTP łączy się przez dowolny port
nieuprzywilejowany (N > 1024) z portem poleceń serwera FTP, o
numerze 21. Następnie klient rozpoczyna nasłuchiwanie na porcie N+1 i
wysyła do serwera FTP polecenie PORT N+1. Serwer łączy się wówczas z
określonym przez klienta portem przez własny port danych, czyli port 20.
• Patrząc z punktu widzenia firewalla po stronie serwera, transmisja FTP w
trybie aktywnym wymaga, by możliwe były następujące połączenia:
• do portu 21 serwera FTP skądkolwiek (klient nawiązuje połączenie)
• od portu 21 serwera FTP do portu > 1024 (serwer wysyła odpowiedź do
portu poleceń klienta)
• od portu 20 serwera FTP do portu > 1024 (serwer przesyła dane do portu
danych klienta)
• do portu 20 serwera FTP od portu > 1024 (klient wysyła potwierdzenie
ACK do portu danych serwera)
• Poniższy rysunek przedstawia przebieg połączenia:
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• W fazie 1 klient nawiązuje połączenie między swoim portem poleceń
a portem poleceń serwera, następnie wysyła polecenie PORT 1027.
• Serwer odpowiada wysyłając potwierdzenie ACK do portu poleceń
klienta, jest to faza 2.
• W fazie 3 serwer otwiera połączenie między swoim portem danych a
uzgodnionym wcześniej portem danych klienta.
• Ostatecznie, w fazie 4, klient przesyła do serwera potwierdzenie ACK.
• Podstawowy problem związany z aktywnym trybem FTP leży po
stronie klienta. Klient FTP nie nawiązuje połączenia z portem danych
serwera, lecz po prostu informuje serwer, na którym porcie
nasłuchuje, a serwer zajmuje sie nawiązaniem połączenia z tym
portem klienta. Z punktu widzenia firewalla po stronie klienta
wygląda to na próbę nawiązania połączenia z zewnątrz z lokalnym
komputerem - takie połączenia są zwykle blokowane.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Pasywny tryb FTP
• Aby zaradzić sytuacji, w której serwer nawiązuje połączenie z
klientem, wymyślono inny sposób dokonywania połączeń FTP. Jest
on zwany trybem pasywnym, lub też PASV, ponieważ takim właśnie
poleceniem klient informuje serwer, że pracuje w trybie pasywnym.
• W pasywnym trybie FTP klient nawiązuje oba połączenia z
serwerem, unikając w ten sposób problemu firewalla blokującego
połączenie z portem danych klienta nawiązywane przez serwer.
Rozpoczynając połączenie FTP, klient otwiera dwa dowolne porty
nieuprzywilejowane (N > 1024 oraz N+1). Pierwszy port
wykorzystywany jest do połączenia z portem 21 serwera, jednak
zamiast wysyłania polecenia PORT i oczekiwania na połączenie od
serwera, klient wysyła polecenie PASV. Serwer otwiera wówczas
dowolny port nieuprzywilejowany (P > 1024) i wysyła do klienta
polecenie PORT P. Klient nawiązuje następnie połączenie między
swoim portem N+1 a portem serwera P w celu transmisji danych.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Patrząc z punktu widzenia firewalla po stronie serwera, transmisja
FTP w trybie pasywnym wymaga, by możliwe były następujące
połączenia:
• do portu 21 serwera FTP skądkolwiek (klient nawiązuje
połączenie)
• od portu 21 serwera FTP do portu > 1024 (serwer wysyła
odpowiedź do portu poleceń klienta)
• do portu > 1024 serwera FTP skądkolwiek (klient nawiązuje
połączenie z portem danych określonym przez serwer)
• od portu > 1024 serwera FTP do portu > 1024 (serwer wysyła
potwierdzenie ACK oraz dane do portu danych klienta)
• Poniższy rysunek przedstawia przebieg połączenia:
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• W fazie 1 klient nawiązuje połączenie z portem poleceń serwera i wysyła polecenie
PASV. Serwer odpowiada w fazie 2, wysyłając polecenie PORT 2024, informując w
ten sposób klienta, na jakim porcie będzie nasłuchiwać.
• W fazie 3 klient nawiązuje połączenie między własnym portem danych a
wskazanym portem danych serwera.
• Na koniec, w fazie 4, serwer wysyła potwierdzenie ACK do portu danych klienta.
• Pasywny tryb FTP rozwiązuje co prawda wiele problemów występujących po
stronie klienta, prowadzi jednak do powstania nowych problemów po stronie
serwera. Najpoważniejszy z nich dotyczy konieczności zezwolenia na połączenia z
zewnątrz z nieuprzywilejowanymi portami na serwerze. Na szczęście wiele
demonów FTP pozwala administratorowi określić zakres wykorzystywanych portów.
• Kolejny problem dotyczy obsługi klientów, którzy korzystają z trybu pasywnego,
jak również tych, którzy z niego nie korzystają. Na przykład klient FTP w systemie
Solaris nie obsługuje trybu pasywnego, w tym wypadku wymagany byłby więc
inny klient FTP, jak choćby ncftp.
• Ze względu na ogromną popularność WWW, wiele osób używa przeglądarki stron
WWW jako klienta FTP. Większość przeglądarek, gdy poda im się URL ftp://, działa
wyłącznie w trybie pasywnym. Czy to dobrze, czy źle, zależy od konfiguracji
serwerów i firewalli.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Korzystanie z FTP
• Aby użytkownik mógł pobrać plik z komputera znajdującego się w sieci,
konieczne jest, by komputer ten posiadał zainstalowane oprogramowanie zdolne
rozpoznawać i realizować tego typu żądania nadchodzące z Internetu. Maszyna
spełniająca te warunki nazywana jest serwerem FTP. Użytkownik łączy się z
serwerem FTP za pomocą specjalnego programu, nazywanego klientem FTP.
• Dawniej, kiedy nie było jeszcze nakładek graficznych na klienta, korzystanie z
klienta FTP wymagało opanowania komend pochodzących z języka angielskiego.
Przykładem takiego klienta działającego w trybie tekstowym jest dostarczany
wraz z systemem Windows program ftp.exe - można go uruchomić otwierając
menu Start, wybierając polecenie Uruchom i wpisując w otwartym oknie ftp.
• Współczesne, okienkowe wersje klientów FTP są już dużo prostsze w obsłudze.
Posiadają one zazwyczaj okno podzielone na dwie części - po jednej stronie są
widoczne katalogi lokalnego komputera, po drugiej zaś katalogi serwera FTP.
Kopiowanie plików przez Internet sprowadza się wówczas do przeciągnięcia
myszą ikony pliku między. Do działających na tej zasadzie popularnych klientów
FTP należą m.in. programy FlashFXP oraz CuteFTP. Elementy klienta FTP
zawierają także przeglądarki, choć pod tym względem nie mogą one równać się
z dedykowanymi klientami FTP.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
Podstawowe polecenia
Polecenie
Opis
•
ascii, asc
ustanowienie tekstowego trybu transmisji
•
binary, bin
ustanowienie binarnego trybu transmisji
•
Cd
zmiana bieżącego katalogu na serwerze
•
Close zakończenie sesji FTP
•
Delete
usunięcie pliku o podanej nazwie
•
dir, ls wyświetlenie zawartości bieżącego katalogu
•
get, recv
przesłanie pliku z serwera do komputera lokalnego
•
hash, ha
włączenie/wyłączenie wyświetlania znaków "#" po przesłaniu każdego kilobajta
danych
•
help, ?
lista wszystkich dostępnych poleceń
•
Lcd
zmiana katalogu na dysku komputera lokalnego
•
Mget transfer wielu plików z serwera do komputera lokalnego
•
Mput transfer wielu plików z komputera lokalnego do serwera
•
Open otwarcie połączenia z serwerem
•
Prompt
włączenie/wyłączenie wyświetlania zapytań podczas transmisji wielu plików
•
put, send
przesłanie pliku z komputera lokalnego do serwera
•
Pwd wyświetlenie nazwy bieżącego katalogu na serwerze
•
Status
wyświetlenie aktualnego stanu wszystkich opcji
•
User logowanie użytkownika
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Przebieg sesji FTP
• * Sesja FTP składa się z trzech części. Pierwsza z nich to zalogowanie się
na odległy komputer, kiedy to trzeba podać nazwę użytkownika i hasło. Na
ich podstawie serwer FTP identyfikuje użytkownika i przydziela mu na czas
sesji określone prawa dostępu do swoich zasobów. Posiadanie konta i
związanych z nim odpowiednich uprawnień na komputerze docelowym jest
warunkiem koniecznym do rozpoczęcia transmisji jakichkolwiek danych.
Konto takie jest przydzielane przez administratora systemu.
• * Druga część sesji to już "właściwa" praca, podczas której wykonuje się
operacje na odległych plikach i katalogach - kopiowanie, przenoszenie,
zmiana nazwy, itp. Przed rozpoczęciem transmisji konieczne jest podanie
identyfikatora użytkownika oraz hasła zabezpieczających odległy komputer
przed niepowołanym dostępem. Na serwerach FTP z dostępem publicznym -
tzw. anonimowym FTP - identyfikatorem użytkownika jest zazwyczaj
anonymous, a hasłem własny adres poczty elektronicznej.
• * Etap ostatni to zamknięcie sesji poleceniem close. Niektóre serwery
wysyłają na zakończenie krótką statystykę, w której zawarte są m.in.
informacje o czasie trwania sesji oraz ilości przesłanych danych.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Dwa tryby transmisji
•
• Przesyłanie plików przez FTP może odbywać się na dwa sposoby -
binarnie oraz w trybie ASCII. Pierwszy z nich przesyła plik "taki, jaki jest" -
bez dokonywania w nim żadnych zmian.
• Drugi natomiast, w założeniach przeznaczony do transmisji zbiorów
tekstowych, modyfikuje sposób kodowania niektórych bajtów. Należy
pamiętać, że plik binarny (program, grafika, archiwum ZIP) przesłany w
trybie ASCII nie będzie się już do niczego nadawał. Tryb binarny można
natomiast bez obaw stosować do transmisji plików tekstowych.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Postać adresu FTP
•
• Podobnie jak każdy komputer dostępny w Internecie serwer FTP posiada własny,
indywidualny adres pozwalający go jednoznacznie zidentyfikować. Nazwa
domenowa bardzo często (nie jest to regułą) rozpoczyna się od członu ftp, po
którym następuje domena instytucji bądź firmy utrzymującej dany serwer, np.
ftp.microsoft.com.
• Pełny adres internetowy (URL) wygląda nieco inaczej niż w przypadku serwerów
WWW, bowiem zamiast prefiksu http:// jest używany ftp://. Pozostając przy
poprzednim przykładzie, URL serwera FTP firmy Microsoft będzie miał postać:
ftp://ftp.microsoft.com.
• Dalsze człony adresu (ścieżka dostępu do katalogu lub pliku) są już budowane
podobnie do adresów w sieci WWW, np.:
ftp://ftp.microsoft.com/pub/windows98/ie/setup.exe.
• Powyższe adresy wskazują na serwer anonimowy. Jeżeli dostęp do serwera
wymaga podania nazwy użytkownika oraz hasła, należy dołączyć te dane do
adresu w następujący sposób: ftp://uzytkownik:haslo@ftp.microsoft.com.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• Archiwa FTP
•
• Serwer FTP, na którym zgromadzono większą ilość plików udostępnianych
określonej grupie użytkowników, jest określany często mianem archiwum
FTP. Publiczne (anonimowe) archiwa FTP słyną przede wszystkim z
bogatych zbiorów oprogramowania - począwszy od niewielkich rozmiarów
programów użytkowych (graficznych, muzycznych, internetowych)
poprzez dema gier, uaktualnienia dla pakietów antywirusowych, a
skończywszy na całych systemach operacyjnych (np. Linux, FreeBSD).
• Podstawową zaletą takich serwisów (oprócz bogactwa zawartości) jest ich
aktualność - starannie prowadzone archiwa dysponują zawsze
najnowszymi wersjami programów.
ADMINISTRACJA
SERWERAMI
a)FTP - cz. 1
• ARCHIE - Poszukiwanie plików
Jest programem instalowanym na niektórych serwerach, mającym za
zadanie indeksowanie informacji gromadzonych na wszystkich serwerach
FTP. W wyniku tego powstaje lista plików dostępnych na poszczególnych
serwerach, która można przeglądać przy użyciu specjalnych poleceń
dostępnych w systemie Archie.