Lyhyesti FTP:stä (File Transfer Protocol)

Tärkein tiedostojen siirtoon tarkoitettu palvelu on FTP, jonka määritykset löytyvät RFC 959:stä. Lisäksi FTP:n tietoturvaominaisuuksia on parannettu RFC 2228:ssa.

Protokollan toiminta

FTP-protokolla on siis tarkoitettu kahden koneen väliseen tiedonsiirtoon. Se käyttää kuljetuskerroksella TCP -protokollaa. FTP on kuitenkin hieman erikoinen muihin sovelluskerroksen protokolliin verrattuna siinä mielessä, että se käyttää kahta eri porttinumeroa. TCP -porttia 21 käytetään yhteydenmuodostukseen ja hallintaan. Datan siirtoa varten taas avataan tarpeen vaatiessa yhteys TCP -porttiin 20 tai mahdollisesti johonkin ylempään satunnaiseen porttinumeroon.

FTP-istunnon perustoiminta on seuraava

  1. Asiakas ottaa yhteyden palvelimeen porttinumeroon 21.
  2. Yhteys avataan käyttäjän tunnistuksen jälkeen. FTP -palvelu voi olla joko käyttäjätunnuksellinen, eli käyttäjän tunnus ja salasana välitetään palvelimelle käyttäjän ne antaessa. Toinen vaihtoehto on anonyymi FTP -palvelu, jossa tunnuksella anonymous (yleensä) ja salasanalla "oma sähköpostiosoite" pääsee käyttämään varsin laajojakin tiedostoarkistoja.
  3. Yhteyden muodostamisen jälkeen käyttäjä voi imuroida jonkin tiedoston palvelimelta. Tämä onnistuu Retr (retrieve) –komennolla. Kyseistä komentoa ei tarvitse itse antaa, vaan FTP-asiakasohjelma (client) tekee sen. 
  4. Retr -komennon suorittamista varten joudutaan avaamaan erillinen siirtoyhteys. Tämä voidaan suorittaa kahdella eri tavalla. Ensimmäinen tapa on niin sanotusti aktiivinen, eli työasema lähettää palvelimelle tiedon, mihin porttinumeroon palvelimen tulisi avata yhteys työasemaan päin. Toinen vaihtoehto on passiivinen, jolloin työasema itse avaa siirtoon tarvittavan yhteyden.  
    Nykypäivänä jälkimmäinen eli passiivinen on yleisempi, sillä aktiivisen yhteyden huonona puolena on tietoturvan heikkeneminen. Nimittäin palomuurissa tai muussa liikennettä suodattavassa laitteessa joudutaan avaamaan paljon TCP portteja, koska millään ei voida tietää, mihin porttiin asiakaspää haluaa palvelimen avaavan yhteyden.
  5. Datakanavalla siirretään haluttu tiedosto ja lopuksi päätetään yhteys.

FTP:ssä on koko joukko komentoja, joilla työasema voi käskyttää palvelinta

Näistä tärkeimpiin kuuluvat:

  • User. Tällä komennolla annetaan käyttäjätunnus.
  • Pass. Tällä komennolla välitetään salasana-
  • Cwd. Tällä vaihdetaan hakemistoa.
  • Quit. Tällä lopetetaan yhteys.
  • Type. Tällä voidaan vaihtaa siirtomuotoa. Yleensä vaihto tehdään oletusarvoisesta ASCII-muodosta binäärimuotoiseksi, sillä suurin osa siirrettävästä datasta on kuitenkin binäärimuotoista. ASCII-muotoista ovat esimerkiksi tekstitiedostot, kun taas ajettavat ohjelmat ovat binäärimuotoisia.
  • Retr. Tällä komennolla pyydetään jotakin tiedostoa palvelimelta.
  • Port. Tällä komennolla välitetään datakanavan avaukseen tarvittava informaatio.

FTP-palvelimen palautteet komentoihin noudattavat samaa linjaa kuin HTTP:n ja SMTP:n palautteet.

Käyttäjän FTP-komennot

Alla on lista Windows 2000:n komentorivipohjaisen FTP:n komennoista.

ftp> ?
Komennoista voi käyttää lyhenteitä.  Komennot ovat:
!               delete          literal         prompt          send
?               debug           ls              put             status
append          dir             mdelete         pwd             trace
ascii           disconnect      mdir            quit            type
bell            get             mget            quote           user
binary          glob            mkdir           recv            verbose
bye             hash            mls             remotehelp
cd              help            mput            rename
close           lcd             open            rmdir

Esimerkki passiivisesta FTP -siirrosta

ftp> bin		;Asetetaan binäärimuoto tiedonsiirtoon
200 Type set to I.
ftp> get nt4_2.pdf	;"otetaan" NT4_2.PDF -niminen tiedosto
200 PORT command successful.
150 Opening BINARY mode data connection for nt4_2.pdf(77991122 bytes).
226 Transfer complete.
ftp: 77991122 tavua vastaanotettu kohteessa 21,38Sekuntia 3648,71kt/s

Porttiosoitteesta 20 havaitaan kyseessä olevan passiivisen FTP-siirron

TCP    62.142.81.14:1679      62.142.81.13:21        ESTABLISHED
TCP    62.142.81.14:1680      62.142.81.13:20        ESTABLISHED

 

FTP:n yksi suurimmista ongelmista, joka tekee siitä myös vaarallisen tietoturvan kannalta, on salausmahdollisuuden puute. Vaikkakin RFC 2228 pyrkii korjaamaan tätä puutetta, eivät nykyisin laajalti käytössä olevat FTP-palvelimet ja -asiakkaat vielä noudata RFC:n suosituksia. Näin ollen tyypillisimmin FTP-käyttäjätunnus ja salasana välitetään selväkielisenä verkossa, josta ne ovat (periaatteessa) kenen tahansa kaapattavissa. Tästä johtuen FTP-palvelun tunnusten tulisi olla eri tunnuksia kuin esimerkiksi verkkokäyttöjärjestelmässä käytettävien käyttäjätunnusten.

Kuva 1. Aktiivinen FTP-yhteys
Aktiivinen FTP-yhteys

 

Kuva 2. Passiivinen FTP-yhteys
Passiivinen FTP-yhteys

Lisää yleistä tietoa FTP:stä ja esimerkki kotisivun siirrosta cuteFTP ohjelmalla Cedunetin palvelimelle.

Myös yleisemmät selaimet osaavat käyttää FTP-palvelimia. Internet Explorer 5:ssä on mm. mielenkiintoinen ominaisuus liittyen siirron tapaan.

 

 

Havaintojen pääsivulle

Arto Reunamo
Yhteystiedot