FTP

File Transfer Protocol (FTP), altså filoverføringsprotokoll, er en standard, operativsystemuavhengig protokoll for overføring av filer i et TCP/IP-basert nettverk. Overføringen skjer mellom en FTP-klient og en FTP-server. Hvilken maskin som har hvilken rolle, kan i utgangspunktet velges fritt, men vil selvsagt være gitt av oppgaven som skal løses.

FTP-serveren lytter på nettverket etter forespørsler. FTP-klienten kobler til serveren og kan lese og skrive til serverens filsystem, som opp- og nedlasting av filer, sletting, navnebytte, chmoding osv.

Helt til 1980 ble FTP kjørt med NCP - forløperen til TCP/IP.

Protokoll 
FTP virker utelukkende over TCP. Protokollen er en åpen standard definert i RFC 0959. Det er etterhvert laget en mengde programmer basert på denne standarden. Protokollen definerer bruk av port 20 og 21. Andre porter kan benyttes i tillegg. Port 21 er kontrollporten (også kalt kommandoporten) som klienter sender kommandoer over og som tjeneren lytter og svarer på. Overføringen skjer på port 20 og/eller andre porter avhengig av filoverføringsmodus.

Aktiv modus
Klienten sender PORT-kommandoen til tjeneren med beskjed om et tilfeldig valgt portnummer større enn 1023 som klienten vil lytte på. Tjeneren sender først et svar samme vei tilbake, og så åpner den dataoverføringsforbindelsen mellom sin egen port 20 og klientens tilfeldig valgte port. Dette kan være noe vanskelig å få til hvis en brannmur er imellom, uten å åpne alle porter på brannmuren fra 1024 og oppover.

Passiv modus
Klienten sender PASV-kommandoen til tjeneren noe som betyr at klienten er i passiv modus. Da er det tjeneren som velger et (tilfeldig) portnummer større enn 1023 og sender det som en PORT-kommando til tilbake til klienten. Klienten åpner dataoverføringsforbindelsen mellom den spesifiserte porten hos tjeneren og en selvvalgt port hos seg selv. Port 20 er altså ikke involvert. I mange FTP-tjenere er det mulig å spesifisere et utvalg av porter som skal brukes i passiv modus.

Utvidet passiv modus
Det er som passiv modus, bare at tjeneren ikke sender sin IP-adresse som en del av svaret på klientens forespørsel. Klienten må da anta at IP-adressen er uendret. Utvidet passiv modus ble introdusert i RFC 2428 i september 1998.

Fordeler 
 Åpen løsning: Det finnes mange programmer som benytter protokollen. Dersom ikke disse fyller behovene man har, står man fritt til å lage egne programmer.
 Billig. På grunn av tilgang til standarden er mange FTP-program enten inkludert i annen programvare, eller kan hentes gratis.
 Funksjonell. Så godt som all filhåndtering kan utføres uavhengig av hvilken maskin de ligger på.

Ulemper 
 All kommunikasjon går ukryptert og kan derfor leses av alle som har tilgang til kommunikasjonen mellom de impliserte maskinene.
 Protokollen er vanskelig å håndtere for en brannmur. Port 21 er inaktiv under dataoverføringen, noe som kan medføre at forbindelsen opphører. (Dataoverføringen vil normalt bli fullført likevel, men kan gi tilsynelatende feilmeldinger.) Det kan tenkes at dataoverføring blir forsøkt på andre porter enn port 20, noe som ofte vil stoppes av brannmuren. Flere overføringer kan gå parallelt, som også krever spesiell håndtering av brannmuren.
 Det kan være mulig å be FTP-serveren å levere en fil på en tredje maskin. Selv om dette er ment å være en nyttig egenskap, har det i en del sammenhenger vært benyttet til illegal virksomhet.

Tjener 
En FTP-tjener er et dataprogram som gjør det mulig for andre datamaskiner med en FTP-klient å bruke protokollen FTP for å laste opp eller laste ned filer til datamaskinen som FTP-tjeneren kjører på. Administratoren av FTP-tjeneren setter opp hvilke kataloger brukeren av FTP-klienten skal ha tilgang til og hvorvidt brukeren er berettiget til å laste opp eller ned filer i de ulike katalogene.

Klient 
En FTP-klient er et dataprogram som ved hjelp av FTP-protokollen lar en bruker enten laste opp eller ned filer til en FTP-tjener fra sin datamaskin til datamaskinen som FTP-tjeneren kjører på. Mange FTP-klienter koster penger, men det finnes gratis FTP-klienter som er like gode. Den mest kjente gratisklienten er nok Filezilla, som er en Open source FTP-klient.

Referanser

Eksterne lenker 
 RFC 959 – File Transfer Protocol
 RFC 1579 – Firewall Friendly FTP
 RFC 2228 – FTP Security Extensions
 RFC 2428 – FTP Extensions for IPv6 and NATs
 RFC 2640 – Internationalization of the File Transfer Protocol
 RFC 3659 – Extensions to FTP

Servere
 VsFTPd (Unix)
 ProFTPd (Unix)
 Pure-FTPd (Unix)
 FileZilla Server (Windows)
 FTP Server Test (Online)

Klient til Windows
Filezilla
SmartFTP

Klient til Linux
Pure FTP
KBear
gFTP
GNU Midnight Commander
Konqueror – kun anonym FTP

Klient til Macintosh
Cyberduck
ForkLift
Transmit
Fetch
Yummy FTP

Web-baserte FTP-klienter
Det finnes flere web-baserte FTP-klienter. phpWebFTP er blant dem. Det er en installasjon av den på thorrune.net, mens den offisielle hjemmesiden er her, på v-wijk.net

Konkurrenter til FTP
SSH – Egentlig ikke en filoverføringsprotokoll, men erstatter FTP på andre områder. FTP-trafikk kan også sendes gjennom SSH. Da blir det kryptert og kalles "secure FTP" SFTP
SCP eller Secure Copy er en protokoll og et program for sikker overføring av filer over SSH (Secure Shell).
rsync – Program og protokoll, veldig effektiv til speiling.
WebServer Explorer – Web-basert (PHP), lite kjent utenfor Norge

Internett-protokoller