FTP, eller File Transfer Protocol, er en av de mest utbredte metodene for dataoverføring, anvendelig i en rekke scenarier.
Det eksisterer ulike sikre varianter av FTP, kjent som FTPS og SFTP. Disse variantene har subtile, og noen mer markante, forskjeller i sin funksjonalitet. Forskjellene relaterer seg til hvordan data utveksles, sikkerhetsnivået i kommunikasjonen og brannmurhensyn.
Forståelsen av hvordan disse protokollene opererer, og forskjellene mellom dem, kan hjelpe deg med å velge den metoden som best møter dine behov.
FTP
FTP er en filoverføringsprotokoll som har eksistert i flere tiår, med opprinnelse i RFC 114. Den ble senere utviklet til RFC 959, som er standarden vi bruker i dag.
FTP bruker to kanaler for informasjonsutveksling: en for kommandoer og en for data. Dette krever to porter for at FTP skal fungere – kommando- og datakanalen.
Kommandokanalen opererer på port 21 og aksepterer tilkoblinger fra klienter. Den håndterer overføring av kommandoer. Kommandokanalen forblir åpen gjennom hele FTP-sesjonen, frem til klienten sender en QUIT-kommando, eller serveren kobler fra på grunn av inaktivitet eller andre årsaker.
Datakanalen benytter en midlertidig port som lyttes til enten på serveren (passiv modus) eller klienten (aktiv modus). Denne kanalen er ansvarlig for deling av data mellom server og klient, i form av katalogoppføringer og filoverføringer.
I motsetning til kommandokanalen, forblir datakanalen bare åpen så lenge filoverføringen pågår. Når den er ferdig, stenges kanalen. Overføring av flere filer eller katalogoppføringer krever flere datakanalporter.
FTP er iboende en usikker protokoll, da både kommando- og datakanalene overfører informasjon ukryptert. Dette gjør den sårbar for avlytting av «man-in-the-middle»-angrep.
Som nevnt tidligere krever FTP en innkommende tilkobling på port 21/tcp på serversiden for kommandokanalen. Et passivt portområde defineres for filoverføringer og katalogoppføringer, og tillater innkommende tilkoblinger. Denne definisjonen kan variere avhengig av hvilken FTP-server som benyttes. Det anbefales å konsultere dokumentasjonen for mer informasjon. På klientsiden bør utgående tilkobling på port 21/tcp tillates, i tillegg til det passive portområdet definert på serveren.
Autentisering i FTP
FTP-autentiseringsinformasjon sendes over kommandokanalen under den første tilkoblingen. FTP kan bruke brukernavn og passord for autentisering, eller tillate anonym tilgang der hvem som helst kan logge inn og få tilgang til serveren.
Aktive og passive FTP-moduser
FTP bruker enten aktiv eller passiv modus for å etablere tilkoblinger.
I aktiv modus kobler en bruker fra en tilfeldig port på FTP-klienten til FTP-porten 21/tcp på serveren og sender PORT-kommandoen. Kommandoen spesifiserer klientporten som serveren skal koble seg til. Denne porten vil brukes for datakanalen.
Serveren kobler deretter fra port 20/tcp til klientporten som tidligere ble spesifisert i PORT-kommandoen. Denne datakanalen brukes deretter til filoverføringer mellom server og klient.
I passiv modus kobler klienten seg fra en tilfeldig port til port 21/tcp på serveren og sender PASV-kommandoen. Serveren svarer med en tilfeldig port som skal brukes for datakanalen. Klienten bruker deretter en annen tilfeldig port for å koble til porten som ble returnert av serveren. Denne datakanalforbindelsen brukes deretter for filoverføring.
I aktiv modus initieres den første tilkoblingsforespørselen av klienten, mens forespørselen om datakanaltilkobling initieres av serveren.
I passiv modus initieres både den innledende tilkoblingsforespørselen og den påfølgende datakanalforespørselen av klienten. Denne forskjellen kan påvirke hvordan en brannmur tillater eller blokkerer tradisjonelle FTP-forespørsler, avhengig av retningen på innkommende/utgående tilkoblingstype.
FTPS
Selv om du er villig til å ta risikoen forbundet med ukryptert dataoverføring i FTP, krever bransjestandarder ofte sikrere alternativer som FTPS og SFTP.
I 1990, med et endret sikkerhetsbilde, introduserte Netscape SSL eller Secure Sockets Layer (nå kjent som TLS) for å beskytte kommunikasjon over nettverk. SSL ble brukt på FTP og resulterte i FTPS (File Transfer Protocol Secure). FTPS kjører vanligvis på port 990/tcp, men kan også forekomme på port 21/tcp. Port 989/tcp er den vanlige porten for datakanalen i FTPS. Hvis kommandoporten er 21/tcp, forventes dataporten å være 20/tcp.
I likhet med FTP bruker FTPS to kanaler for kommunikasjon: kommando og datakanal. Enten datakanalen, eller både kommando- og datakanalen, kan krypteres i FTPS for bedre sikkerhet.
FTPS bruker, som FTP, flere porter for kommando- og datakanaler. Port 21/tcp brukes for den første tilkoblingen og overføring av autentiseringsinformasjon. Deretter kreves forskjellige porter for å etablere datakanaler for hver filoverføring eller katalogforespørsel fra klienten. Derfor kreves et bredt spekter av porter som må tillates i brannmuren.
Autentisering i FTPS
Autentisering for FTPS bruker brukernavn og passord sammen med et serversertifikat for kryptering. Når FTPS-klienten kobler til en server, sjekker den om serverens sertifikat er tillitsskapende. Dette sertifikatet kan være nødvendig både fra klienten og serveren.
SFTP
I motsetning til FTP og FTPS, er SFTP (SSH File Transfer Protocol) en helt annen protokoll bygget på SSH (Secure Shell). SFTP opererer som standard på port 22/tcp, samme som SSH, men kan konfigureres til å bruke en annen ledig port på serveren.
SFTP er en sikker FTP-protokoll som bruker SSH for sending og mottak av filer. SSH er fullstendig kryptert, og SFTP er en robust og sikker metode for filoverføring over et nettverk.
SFTP, i motsetning til FTP og FTPS, bruker en enkelt kommunikasjonskanal for overføring av kommandoer og datatrafikk. All informasjon, inkludert autentiseringsdetaljer, sendes kryptert.
Autentisering i SFTP
Autentisering i SFTP kan gjøres via brukernavn og passord, men all informasjon, inkludert autentiseringsdetaljer, sendes kryptert over nettverket.
SFTP støtter også autentisering ved hjelp av SSH-nøkkelpar. Klienten tilbyr den private nøkkelen for den angitte brukeren, og serveren må ha den tilsvarende offentlige nøkkelen for at autentiseringen skal lykkes. Dette er sikrere enn brukernavn/passord-autentisering. Det er mulig å autentisere samme bruker ved å bruke både passord og SSH-nøkler hvis begge metodene er konfigurert på SFTP-serveren.
Sammendrag
Denne artikkelen oppsummerer de grunnleggende funksjonene til filoverføringsprotokollene FTP, FTPS og SFTP, og fremhever forskjellene mellom dem. Artikkelen dekker hvilke porter man må åpne i en brannmur for å sette opp en fungerende FTP/FTPS/SFTP-server, og belyser behovet for å bytte til sikrere protokoller som FTPS og SFTP.
Når jeg skriver FTP, refererer jeg til alle protokollene som er diskutert i denne artikkelen. Den grunnleggende FTP-protokollen er flere tiår gammel, og selv nyere, sikrere versjoner blir noen ganger referert til som FTP, istedenfor deres spesifikke navn.
Du kan også være interessert i å lære mer om den beste FTP-serverprogramvaren og FTP/SFTP-klienter.