Förstå SFTP vs. FTPS vs. FTP

By rik

Filöverföringsprotokoll: En jämförelse av FTP, FTPS och SFTP

FTP, eller File Transfer Protocol, är en av de mest använda metoderna för dataöverföring. Det används i en mängd olika sammanhang för att flytta filer mellan datorer.

Det finns säkrare varianter av FTP, såsom FTPS och SFTP. Dessa varianter skiljer sig åt i hur de hanterar dataöverföring, säkerhet och brandväggsinställningar. Skillnaderna kan vara subtila eller mer påtagliga beroende på situationen.

Genom att förstå hur dessa protokoll fungerar och vad som skiljer dem åt, kan du göra ett informerat val om vilken överföringsmekanism som bäst passar dina specifika behov.

FTP – Det ursprungliga filöverföringsprotokollet

FTP är ett filöverföringsprotokoll med en lång historia, med sina rötter i RFC 114. Denna standard utvecklades senare till RFC 959, som är den standard som används idag.

FTP använder två kanaler för att kommunicera: en för kommandon och en annan för data. Detta kräver två portar för att FTP ska fungera korrekt: kommandokanalen och datakanalen.

Kommandokanalen använder port 21, där klienter ansluter och kommandon överförs. Denna kanal är aktiv under hela FTP-sessionen, fram till dess att klienten skickar kommandot QUIT, eller servern tvingar en frånkoppling på grund av inaktivitet eller av annan anledning.

Datakanalen använder en tillfällig port, som antingen lyssnar på servern (passivt läge) eller klienten (aktivt läge). Denna kanal ansvarar för att överföra själva filerna och kataloglistor mellan server och klient.

Till skillnad från kommandokanalen, är datakanalen endast öppen under själva filöverföringen och stängs när överföringen är klar. För att överföra flera filer eller kataloglistor samtidigt, krävs det flera datakanalportar.

FTP är i grunden osäkert, eftersom både kommando- och datakanalerna överför information okrypterad. Det gör dem sårbara för avlyssning, särskilt vid så kallade man-in-the-middle-attacker.

För att en FTP-server ska fungera krävs en inkommande anslutning på port 21/tcp för kommandokanalen. Dessutom måste ett passivt portintervall definieras för filöverföringar. Hur detta definieras kan variera beroende på vilken FTP-server som används. På klientsidan bör utgående anslutning till port 21/tcp tillåtas, samt de passiva portar som definierats på servern.

Autentisering i FTP

Autentiseringsinformation för FTP skickas över kommandokanalen vid sessionens början. FTP kan kräva ett användarnamn och lösenord, eller tillåta anonyma inloggningar. I det senare fallet kan vem som helst logga in och komma åt servern.

Aktiva och passiva FTP-lägen

FTP använder antingen aktivt eller passivt läge för att etablera anslutningar.

I aktivt läge ansluter klienten från en slumpmässig port till FTP-serverns port 21/tcp. Klienten skickar sedan ett PORT-kommando och meddelar servern vilken port den ska ansluta till för datakanalen.

Servern ansluter sedan från port 20/tcp till den port som klienten tidigare angav. Denna datakanal används därefter för filöverföringar.

I passivt läge ansluter klienten från en slumpmässig port till serverns port 21/tcp och skickar kommandot PASV. Servern svarar med en slumpmässig port som ska användas för datakanalen. Klienten använder sedan en annan slumpmässig port för att ansluta till den port servern angav. Denna datakanal används sedan för filöverföring.

I aktivt läge initieras den första anslutningen av klienten, medan servern initierar anslutningen för datakanalen.

I passivt läge däremot, initieras både den första anslutningen och datakanalen av klienten till servern. Denna skillnad kan påverka hur en brandvägg tillåter eller blockerar FTP-förfrågningar, beroende på riktningen för inkommande/utgående anslutningar.

FTPS – FTP med SSL/TLS

Trots att man ibland kan acceptera riskerna med okrypterad dataöverföring i FTP, kräver många säkerhetsstandarder säkrare alternativ som FTPS och SFTP.

I början av 1990-talet skapade Netscape SSL (Secure Sockets Layer) som numera kallas TLS (Transport Layer Security), för att skydda kommunikation över nätverk. SSL/TLS applicerades även på FTP och blev FTPS (File Transfer Protocol Secure). FTPS använder ofta port 990/tcp, men kan också använda port 21/tcp. För datakanalen används ofta port 989/tcp. Om port 21/tcp används för kommandokanalen, brukar port 20/tcp användas för datakanalen.

Liksom FTP använder FTPS två kanaler: en för kommando och en för data. Med FTPS kan antingen endast datakanalen krypteras, eller så kan både kommandokanalen och datakanalen krypteras för maximal säkerhet.

FTPS använder flera portar för kommando- och datakanaler. Port 21/tcp används för den första anslutningen och autentiseringen. Sedan används olika portar för datakanaler vid varje filöverföring eller kataloglistning. Precis som med FTP, krävs flera portar för att fungera genom en brandvägg.

Autentisering i FTPS

Autentisering i FTPS sker med användarnamn och lösenord, samt ett servercertifikat för kryptering. När en FTPS-klient ansluter till servern, kontrollerar den om serverns certifikat är betrott. Detta certifikat kan begäras av klienten och servern.

SFTP – Filöverföring via SSH

SFTP (SSH File Transfer Protocol) är ett helt annat protokoll jämfört med FTP och FTPS. Det är byggt på SSH (Secure Shell). SFTP använder som standard port 22/tcp, samma som SSH, men det kan konfigureras att använda en annan ledig port.

SFTP är ett säkert protokoll som använder SSH för att överföra filer. Eftersom SSH krypterar all trafik, är SFTP en mycket säker metod för filöverföring.

Till skillnad från FTP och FTPS använder SFTP endast en kommunikationskanal för både kommandon och data. All information, inklusive autentiseringsdetaljer, skickas krypterat.

Autentisering i SFTP

Autentisering i SFTP kan göras med användarnamn och lösenord. Men till skillnad från FTP, skickas all information, inklusive autentiseringsuppgifterna, krypterad.

SFTP stöder även autentisering med SSH-nyckelpar. I det fallet tillhandahåller klienten en privat nyckel, medan servern har en matchande offentlig nyckel. Det är en säkrare metod än användarnamn/lösenord. Det är möjligt att autentisera samma användare med både lösenord och SSH-nycklar om båda metoderna är konfigurerade på SFTP-servern.

Sammanfattning

Den här artikeln har sammanfattat de grundläggande egenskaperna hos de populära filöverföringsprotokollen FTP, FTPS och SFTP. Den har också lyft fram likheter och skillnader mellan dem, samt diskuterat portar som kan behöva öppnas i brandväggar för att de ska fungera. Vi har också noterat vikten av att byta till säkrare protokoll som FTPS och SFTP.

När vi använder termen ”FTP” i allmänhet, syftar vi ibland på alla de protokoll som diskuterats här, även de säkrare varianterna. Detta beror på att FTP är en etablerad term. Men för dagligt bruk är det bäst att använda de specifika namnen.

Du kan också vara intresserad av att lära dig mer om den bästa FTP-serverprogramvaran och FTP/SFTP-klienterna.