Zgryźliwość kojarzy mi się z radością, która źle skończyła.









Rozdział 15.
FTP oraz Telnet

Tim Parker









E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\15.DOC              275









Rozdzia³ 15. ¨ FTP oraz Telnet              285

W tym rozdziale:

u                                             FTP                           

u                                             Konfiguracja serwera FTP             

u                                             Obsługa FTP

u                                             Protokół TFTP (Trivial file transfer protocol)             

u                                             Używanie programu Telnet             

FTP oraz Telnet to dwa najbardziej użyteczne narzędzia służące do komunikacji pomiędzy komputerami UNIX-owymi lub linuxowymi (a także innymi systemami). FTP służy do przesyłania plików, natomiast Telnet do logowania się do innych systemów. W tym rozdziale omówimy metody używania obu tych narzędzi, wspomnimy również o protokole TFTP – uproszczonej wersji FTP.

FTP

Są dwa sposoby używania FTP oraz TFTP: z wiersza poleceń lub poprzez interfejs graficzny. Większość systemów linuxowych ograniczona jest do wiersza poleceń, chyba że zainstalowany jest program komercyjny czy shareware’owy udostępniający interfejs graficzny. Programy oparte na GUI są przeważnie spotykane w systemach Windows. Skoncentrujemy się więc na najczęściej używanej w systemach linuxowych wersji tekstowej tych programów.

FTP (File Transfer Protocol, protokół transmisji plików) został zaprojektowany do przesyłania danych bez konieczności używania tak złożonych protokołów komunikacyjnych jak XMODEM, YMODEM, ZMODEM czy Kermit, jak również bez konieczności pełnego logowania się do systemu zdalnego. FTP zapewnia szybkie logowanie się, możliwość poruszania się po systemie plików (ograniczonego oczywiście prawami dostępu), oraz transmisji plików do i z systemu zdalnego.

Aby używać FTP, komputer, na którym pracujesz (klient), musi posiadać oprogramowanie klienta FTP. Jest ono jednym ze składników standardowego oprogramowania w systemach UNIX-owych, nie powinieneś więc mieć problemów ze zdobyciem go. Na drugim końcu połączenia – komputerze, z którego chcesz pobrać pliki (serwerze) – musi działać program, który obsłuży przychodzące polecenia FTP. Jest on nazywany serwerem FTP i musi działać bez przerwy, jeśli połączenia mają funkcjonować poprawnie.

Serwer FTP również jest zwykle rozprowadzany wraz z wielozadaniowymi systemami operacyjnymi, takimi jak Linux. Przeważnie nazywa się on ftpd (od ang. ftp daemon; nazwa „daemon” odnosi się do programu, który cały czas działa w tle). Jego uruchomienie następuje podczas ładowania systemu, chyba że administrator go wyłączy.

Jeśli próbujesz się połączyć z komputerem klasy PC (z systemem OS/2, Windows, NetWare, itp.), wówczas są małe szanse, by działał na nim serwer FTP. Spowodowane jest to faktem, że żaden z tych systemów nie obsługuje domyślnie protokołu TCP/IP. Administrator musi ręcznie go zainstalować. Jeśli na komputerze zdalnym nie działa program serwera FTP, nie można się z nim połączyć za pomocą programu klienta.

Konfiguracja serwera FTP

Zanim przejdziemy do łączenia się z innym systemem i przenoszenia plików, powinniśmy powiedzieć kilka słów o konfiguracji serwera FTP. Każdy komputer, który ma odpowiadać na polecenia FTP, musi być skonfigurowany jako serwer FTP. Nie jest to procedura skomplikowana.

Wszystkie programy, których będziesz potrzebował, wchodzą w skład dystrybucji Linuxa. Nie ma znaczenia to, czy chcesz udostępniać zasoby wszystkim logującym się, czy też ograniczać dostęp w zależności od hasła. Podstawowe czynności, które trzeba wykonać, są takie same.

Konfiguracja serwera FTP zaczyna się od wybrania nazwy węzła FTP. Nie jest ona niezbędna, ale ułatwi w przyszłości użytkownikom innych systemów odnalezienie Twojego systemu. Nazwy te mają zwykle format

 

ftp.nazwa_domeny.typ_domeny

typ_domeny to standardowe rozszerzenie DNS. Na przykład, jeśli węzeł FTP nazywa się

 

ftp.tpci.com

jest oczywiste, że jest to serwer FTP obsługujący domenę tpci.com.

Następnie należy uruchomić program rezydentny ftpd. Zwykle robi to automatycznie proces inetd, który obserwuje port poleceń TCP (kanał 21), rozpoznając nadchodzące żądania połączenia. Po ich wykryciu uruchamia program ftpd.

 

Upewnij się, że ftpd może zostać uruchomiony w razie potrzeby przez proces inetd, sprawdzając plik konfiguracyjny /etc/inetd.config. Powinien znajdować się w nim wiersz:

ftp              stream              tcp              nowait              rot              /etc/ftpd               ftpd

Jeśli go nie ma, należy go dopisać. W większości systemów linuxowych i UNIX-owych wiersz taki istnieje, ale może być zaznaczony jako komentarz – trzeba wtedy tylko usunąć odpowiedni symbol.

Wpis ftp w pliku konfiguracyjnym inetd powoduje, że za każdym razem, gdy nawiązywane jest nowe połączenie z portem FTP, uruchamiany jest program ftpd. Może on być również uruchamiany z opcją –l, która załącza rejestrację połączeń. Opcję tę należy jednak stosować ostrożnie, ponieważ pliki rejestracji rosną bardzo szybko.

Jeśli zamierzasz skonfigurować serwer FTP tak, by każdy użytkownik próbujący połączyć się z systemem posiadał własny identyfikator oraz hasło, musisz dla każdego z nich utworzyć nowe konto, tak jakby byli bezpośrednimi użytkownikami. Jeśli serwer ma być dostępny dla wszystkich, również należy utworzyć nowe konto. Nazywa się ono zwykle anonymous, ftp lub guest. Musisz również wybrać katalog domowy, który powinien być oddzielony od reszty systemu. Przykładowy wpis w pliku /etc/passwd może wyglądać tak:

 

ftp:*:400:51:Anonymous FTP access:/usr/ftp:/bin/false

Gwiazdka zamiast hasła powoduje, że nikt nie ma dostępu do tego konta. Identyfikator użytkownika (400) nie może pokrywać się z żadnym innym identyfikatorem w systemie. Identyfikator grupy (51) decyduje o tym, do której grupy użytkownik zostanie przypisany po zalogowaniu się.

Dla zapewnienia bezpieczeństwa dobrym pomysłem jest stworzenie osobnej grupy tylko dla użytkownika ftp (należy wprowadzić w tym celu odpowiednie zmiany do pliku /etc/group). Katalogiem domowym w powyższym przykładzie jest /usr/ftp, ale można wybrać dowolny inny katalog (powinien on, ze względów bezpieczeństwa, należeć do użytkownika ftp). Programem uruchamiającym się po zalogowaniu jest /bin/false, co również ma na celu zapewnienie większego bezpieczeństwa.

Obsługa FTP

Bez względu na to, czy pracujesz w systemie linuxowym, UNIX-owym, Windows czy też Macintosh, kiedy chcesz używać FTP, uruchamiasz program klienta FTP, podajesz nazwę węzła, z którym chcesz się połączyć, a następnie czekasz na nawiązanie połączenia. Po połączeniu możesz rozpocząć transfer plików.

Programy FTP oparte na interfejsie tekstowym zwykle uruchamiane są z nazwą lub numerem IP komputera, z którym chcesz się połączyć. Te oparte na GUI wyświetlają najpierw okienko, z którego możesz wybrać polecenie Connect lub nazwę serwera FTP. Jeśli używasz nazwy komputera, system musi potrafić zamienić ją na numer IP.

Kiedy zostanie nawiązane połączenie FTP, trzeba się zalogować. Niektóre systemy umożliwiają logowanie anonimowe przy użyciu identyfikatorów anonymous lub guest. W większych sieciach, w których funkcjonują takie systemy jak Yellow Pages czy Network Information Services, identyfikator użytkownika jest ważny na każdym komputerze w sieci. Jeśli tak nie jest, Twój identyfikator musi być umieszczony w odpowiednim pliku w komputerze, z którym zamierzasz się połączyć (chyba że logujesz się anonimowo). Można użyć innego identyfikatora, niż tego, którego używasz w swoim systemie. By przenosić pliki pomiędzy systemami, musisz posiadać odpowiednie prawa dostępu w obu systemach.

Pamiętaj, że po zalogowaniu się do innego komputera przy użyciu FTP nie „przenosisz” się na ten komputer. Wszystkie polecenia odnoszą się do komputera, którego używasz. Odwrotną sytuację mamy w przypadku programu Telnet, co jest nieco mylące dla niedoświadczonych użytkowników.

 

Pamiętaj, że wszystkie odniesienia do plików i katalogów dotyczą komputera, który zainicjował sesję FTP. Jeśli nie będziesz ostrożny, łatwo możesz pozbyć się zawartości swoich plików.

Połączenia FTP

Aby połączyć się z innym komputerem, musisz znać identyfikator użytkownika i hasło w tym komputerze, a w Twoim systemie musi działać program klienta FTP. To, co pojawiać się będzie na ekranie po nawiązaniu połączenia, zależy od wersji oprogramowania i systemu operacyjnego serwera.

W systemach linuxowych, UNIX-owych i większości DOS-owych można uruchomić program FTP z nazwą komputera, z którym chcesz się połączyć, lub jego numerem IP. Po zalogowaniu się jesteś już połączony.

Polecenia FTP

Po połączeniu się z serwerem FTP, będziesz chciał poruszać się po jego systemie plików i przesyłać je. Dla użytkownika FTP dostępnych jest wiele poleceń, najczęściej używane zebrane są w tabeli 15.1. Programy z interfejsem graficznym posiadają odpowiednie elementy menu.

Podstawowymi poleceniami służącymi do przesyłania plików są polecenia get (pobierz) i put (wyślij). Pamiętaj o tym, że polecenia te są odniesione do komputera klienta, czyli polecenie get przenosi plik z serwera na Twój komputer, a put – z Twojego komputera na serwer.

Rozpatrzmy następujący przykład:

 

get autoexec.bat
705 bytes received in 0.1 seconds (0.0 kbytes/s)

Tabela 15.1. Polecenia dostępne dla użytkownika FTP

Polecenie

Opis

ascii

Włączenie tekstowego trybu transmisji plików

binary

Włączenie binarnego trybu transmisji plików

cd

Zmiana katalogu na serwerze

close

Zakończenie połączenia

del

Usunięcie pliku na serwerze

dir

Wyświetlenie zawartości katalogu serwera

get

Pobranie pliku z serwera

hash

Wyświetlenie znaku # po przesłaniu każdego bloku

help

Wyświetlenie pomocy

lcd

Zmiana katalogu lokalnego

mget

Pobranie grupy plików z serwera

mput

Wysłanie grupy plików do serwera

open

Otwarcie połączenia

put

Wysłanie pliku do serwera

pwd

Wyświetlenie bieżącego katalogu na serwerze

quote

Bezpośrednie przesłanie polecenia wewnętrznego protokołu FTP

quit

Zakończenie sesji FTP

Użytkownik zalogowany do serwera FTP wydał polecenie get, by pobrać z serwera (pracującego w systemie Windows) plik autoexec.bat. Jak widać, klient FTP podaje informacje o przebiegu wykonania polecenia.

Polecenia mget i mput są podobne do get i put, ale dotyczą grup plików. Przykładowo polecenie

 

mget config.*

pobierze z serwera wszystkie pliki, których nazwa pasuje do wzorca config.*. Przed przesłaniem każdego pliku zostaniesz poproszony o potwierdzenie.

Po systemie plików serwera poruszać się można używając poleceń cd i pwd. Pamiętaj, że w systemach UNIX-owych katalogi oznacza się symbolem /, a w systemach DOS-owych ‑ \.

Jeśli nie posiadasz uprawnień do wykonania jakiegoś polecenia, na przykład prawa do czytania pliku przy próbie jego przesłania, zostanie wygenerowany komunikat o błędzie.

Tryby przesyłania plików

FTP powstał we wczesnym etapie rozwoju TCP/IP, gdy praktycznie wszystkie pliki zapisywane były w formacie ASCII. Kiedy trzeba było przesłać plik binarny (dowolny plik nie spełniający wymogów standardu ASCII), tryb przesyłania danych musiał zostać zmieniony ręcznie. FTP pozwala na transmitowanie plików w kilku trybach, zależnie od systemu. Większość systemów obsługuje tylko dwa z nich: binary (binarny) oraz ASCII (pliki tekstowe w formacie ASCII). Niektóre stacje robocze obsługują jeszcze standard EBCDIC, a wiele sieci lokalnych posiada własne formaty, pozwalające na przyspieszenie transmisji (mogą one używać słów 32 – lub 64 – bitowych).

By przesłać plik inny niż tekstowy, musisz zmienić tryb przesyłania na binarny poleceniem binary (może ono zostać skrócone do formy bin). Do trybu tekstowego wrócić można,wydając polecenie ascii. Ważne jest, by pamiętać, jaki tryb jest aktualnie ustawiony. Linuxowy FTP uruchamia się standardowo w trybie ASCII.

Transfer tekstowy przesyła pliki ASCII, w których wiersze są rozdzielone powrotem karetki i znakiem nowego wiersza, podczas gdy tryb binarny pozwala przesyłać dane bez żadnego formatowania. Tryb binarny jest szybszy od tekstowego, a pozwala również na prawidłową transmisję plików tekstowych. W większości systemów domyślnie uruchamiany jest tryb tekstowy, ale wielu administratorów dla wygody użytkowników zmienia ten stan rzeczy. FTP nie umożliwia przesyłania atrybutów plików. Mimo tego niektóre programy FTP potrafią automatycznie rozpoznać typ pliku. Jeśli nie jesteś pewny, jakiego trybu przesyłania powinieneś użyć – użyj trybu binarnego.

Zwykle w sesji FTP nie są dostępne żadne skróty klawiaturowe (jak np. klawisz Tab dokańczający polecenia). Oznacza to, że trzeba podawać nazwy plików w ich pełnym (i poprawnym) brzmieniu. Jeśli pomylisz się, otrzymasz komunikat o błędzie i musisz wprowadzić polecenie jeszcze raz. Jeśli uruchamiasz sesję FTP pod kontrolą systemu graficznego, zwykle masz możliwość kopiowania wcześniejszych poleceń.

Anonimowy dostęp do FTP

FTP wymaga od użytkownika podania identyfikatora oraz hasła, zanim możliwe będzie korzystanie z zasobów serwera, ale istnieje też bardziej liberalna metoda udostępniania plików i katalogów – dostęp anonimowy. Eliminuje ona konieczność posiadania konta na serwerze, umożliwiając każdemu zalogowanie się podając identyfikator anonymous lub guest. Przykładowa sesja anonimowego połączenia FTP może wyglądać tak:

 

tpci> ftp uofo.edu
Connected to uofo.edu.
220 uofo.edu FTP server ready.
Name (uofo:username): anonymous
331 Guest login ok., send userID as password.
Password: tparker
220 Guest login ok, access restrictions apply.
ftp>

Jeśli serwer obsługuje anonimowe połąc...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • hannaeva.xlx.pl