INDIETRO SU AVANTI

Ftp, tftp ed ftp anonimo


Il File Transfer Protocol (FTP) e' uno standard militare ARPA che data dal 1972. FTP fornisce:

Il client apre verso il server non una ma due connessioni:

La connessione di controllo e' persistente per tutta la sessione FTP, le connessione dati vengono create quando necessario.

FTP viene invocato dalla linea di comando:

ftp [ <sistema remoto> ]

Ove sistema remoto e' il nome o l'idirizzo della macchina server. Se non viene dato il nome del sistema remoto si entra nell'ambiente interno FTP da cui e' possibile dare un numero elevato di comandi interni.

In tal caso il pronto e':

ftp>

Una lista dei comandi si ottiene col comando help:

ftp> help
Commands may be abbreviated.  Commands are:

!               debug           mget            pwd             status
$               dir             mkdir           quit            struct
account         disconnect      mls             quote           system
append          form            mode            recv            sunique
ascii           get             modtime         reget           tenex
bell            glob            mput            rstatus         tick
binary          hash            newer           rhelp           trace
bye             help            nmap            rename          type
case            idle            nlist           reset           user
cd              image           ntrans          restart         umask
cdup            lcd             open            rmdir           verbose
chmod           ls              prompt          runique         ?
close           macdef          proxy           send
cr              mdelete         sendport        site
delete          mdir            put             size
ftp> 

Informazioni un po' piu' dettagliate si ottengono specificando un comando dopo la stringa 'help':

ftp> help ls
ls              list contents of remote directory
ftp> help cdup
cdup            change remote working directory to parent directory
ftp> help glob
glob            toggle metacharacter expansion of local file names
ftp> help bell
bell            beep when command completed
ftp> 

Per eseguire un comando, digitarne il nome seguito da eventuali argomenti se richiesti:

ftp> bell
Bell mode on.
ftp> 

Una connessione in pratica

FTP serve a trasferire files, in upload o download, e si puo' vedere come un ponte tra la macchina locale e quella remota.

Uno dei modi in cui affrontare il trasferimento e':

  1. posizionarsi nella directory locale di sorgente di 'upload' o di destinazione di 'download'
  2. invocare ftp
  3. aprire una connessione alla macchina remota
  4. certificarsi
  5. spostarsi nella directory remota giusta
  6. impostare il trasferimento binario se necessario, e disabilitare il prompt se desiderato per i trasferimenti multipli
  7. trasferire il/i files
  8. chiudere la sessione FTP

L'apertura di connessione, p.es. al sistema mira, avviene col comando:

open mira

La certificazione avviene digitando a richiesta un nome di login valido sulla macchina remota, p.es. mich, seguito dalla relativa password, che non viene visualizzata.

FTP ha un file di configurazione, /etc/ftpusers, che contiene la lista di tutti gli utenti (solitamente root e simili) a cui non e' concesso certificarsi tramite FTP (per evitare il transito in rete di password pericolose).

Ua tipica sequenza di comandi e:

ftp> open mira   
Connected to mira.olivi.elea.it.
220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready.
Name (mira:root): mich
331 Password required for mich.
Password:
230 User mich logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Se il login fallisce, p.es. per password errata, dare il comando user per ritentare la certificazione:

ftp> open mira   
Connected to mira.olivi.elea.it.
220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready.
Name (mira:root): mich
331 Password required for mich.
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> user mich
331 Password required for mich.
Password: 
230 User mich logged in.
ftp> 

Spostarsi nella directory desiderata su macchina remota col comando cd:

ftp> cd superhack
250 CWD command successful.
ftp> 

Il separatore di directory per salti multipli e' / come in UNIX.

Per cambiare directory sulla macchina locale il comando e' lcd:

ftp> lcd /tmp
Local directory now /tmp
ftp> 

Per listare il contenuto della directory corrente sulla macchina remota usare il comando ls oppure dir:

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 4557
drwxr-xr-x   3 mich     users        2048 Nov 19 15:49 .
drwxr-xr-x   9 mich     users        1024 Dec  9 14:24 ..
-rwxr-----   1 mich     users       46711 Sep 26 13:14 chap1.html
-rwxr-----   1 mich     users       50744 Sep  8 13:54 chap1.rtf
..........
-rwxr-----   1 mich     users       40276 Oct 16  1996 image7.gif
-rwxr-----   1 mich     users       25222 Oct 16  1996 intro.html
-rw-r--r--   1 root     root      1320960 Oct 15 11:33 superh.tar
226 Transfer complete.
ftp> 

Per impostare il trasferimento di file binary (8 bit/carattere) usare il comando biinary:

ftp> binary
200 Type set to I.
ftp> 

Per il download di un file singolo 'superh.tar', cambiandogli nome in 'zzz.tar' usare il comando get:

ftp> get superh.tar xxx.tar
200 PORT command successful.
150 Opening BINARY mode data connection for superh.tar (1320960 bytes).
226 Transfer complete.
1320960 bytes received in 2.07 secs (6.2e+02 Kbytes/sec)
ftp> 

Se non si voleva cambiare il nome bastava:

ftp> get superh.tar 

L'operazione di upload e' col comando put. Il primo argomento e' allora il nome del file locale e l'eventuale secondo argomento e' il nuovo nome del file remoto.

Per trasferimenti multipli i comandi sono mget e mput, seguiti da un solo argomento contenente metacaratteri come ? e *. Non e' possibile cambiare il nime dei file trasferiti.

Un trasferimento multiplo di default attiva il prompting cioe' la richiesta di conferma per il trasferimento di ciascun file: il nome file viene visualizzato seguito da un punto interrogativo; battere 'y' per confermare il trasferimento, 'n' per saltare il file indicato.

Per sopprimere il 'prompting' il comando e' prompt.

ftp> prompt
Interactive mode off.
ftp> mget image*.gif
local: image1.gif remote: image1.gif
200 PORT command successful.
150 Opening BINARY mode data connection for image1.gif (72373 bytes).
226 Transfer complete.
72373 bytes received in 0.367 secs (1.9e+02 Kbytes/sec)
........
local: image7.gif remote: image7.gif
200 PORT command successful.
150 Opening BINARY mode data connection for image7.gif (40276 bytes).
226 Transfer complete.
40276 bytes received in 0.363 secs (1.1e+02 Kbytes/sec)
ftp> 

La sconnessione si esegue col comando quit oppure bye:

ftp> bye
221 Goodbye.

FTP chiude automaticamente la connessione di controllo e si disconnette dopo 900 secondi di inattivita'.

Il protocollo TFTP

Il Trivial File Transfer Protocol e' un protocollo senza connessione, basato su UDP. Serve a trasferire dei file senza alcuna richiesta di certificazione.

per la sua evidente pericolosita' ai fini della sicurezza il server tftpd o e' di norma disabilitato, oppure e' costretto a servire files solo da una directory, fornitagli come argomento al momento del lancio:

tftpd /usr/lib/X11/nds

Serve soprattutto alle stazioni 'diskless' come i Terminali X, che mantengono a bordo del server i loro kernel, file di configurazione, files di font, ecc.

Implementa un sottinsieme molto ridotto dei comandi FTP.

tftp> ?
Commands may be abbreviated.  Commands are:

connect         connect to remote tftp
mode            set file transfer mode
put             send file
get             receive file
quit            exit tftp
verbose         toggle verbose mode
trace           toggle packet tracing
status          show current status
binary          set mode to octet
ascii           set mode to netascii
rexmt           set per-packet retransmission timeout
timeout         set total retransmission timeout
?               print help information
tftp> 

Il Servizio FTP Anonimo

Alcune versioni FTP, quali quella della Washington University (wu-FTP) permettono la configurazione sul server di una cosiddetta banca dati pubblica, a cui una persona generica puo' accedere aprendo una normale connessione FTP e, all'atto della certificazione, digitando:

$ ftp mira
Connected to mira.olivi.elea.it.
220 mira FTP server (Version wu-2.4(1) Tue Dec 5 20:51:15 CST 1995) ready.
Name (mira:root): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230-Welcome, archive user!  This is an experimental FTP server.  If have any
230-unusual problems, please report them via e-mail to root@mira
230-If you do have problems, please try using a dash (-) as the first character
230-of your password -- this will turn off the continuation messages that may
230-be confusing your ftp client.
230-
230-Please read the file README
230-  it was last modified on Thu Jul 17 11:51:04 1997 - 214 days ago
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

l server di FTP anonimo possiede tutta una serie di configurazioni che permettono di:

Vi sono in Internet migliaia di banche dati organizzate in questo modo, ciascuna contenente anche molti Megabyte di files a dominio pubblico.

Esiste una certa 'etichetta' d'uso di queste banche dati.