FTP
FTP står för File Transfer Protocol och är en standardiserad nätverksprotokoll som används för att överföra filer mellan en klient och en server över ett TCP/IP-baserat nätverk, såsom internet. FTP tillåter användare att ladda upp, ladda ner, radera, flytta, byta namn på filer och kataloger samt utföra andra filhanteringsoperationer, vanligtvis via en FTP-klient.
FTP kan användas i olika sammanhang, såsom uppdatering av filer på en webbserver, överföring av stora datamängder mellan organisationer, eller enkel filöverföring mellan två platser. Det finns två huvudlägen för FTP-överföringar: aktivt och passivt läge, vilka hanterar nätverksanslutningar på olika sätt.
Även om FTP har varit en grundläggande internetteknologi sedan tidigt 1970-tal, har dess användning minskat på grund av säkerhetsproblem, eftersom det inte krypterar dataöverföring, vilket kan leda till att känslig information utsätts. För säkrare filöverföringar används ofta FTPS (FTP Secure) eller SFTP (SSH File Transfer Protocol), som båda tillhandahåller kryptering.
Exempel hur det fungera
För att illustrera hur FTP fungerar, kan vi gå igenom ett exempel där en användare vill ladda upp en fil till en FTP-server:
==== Starta en FTP-klient ====
- Användaren startar en FTP-klientprogramvara på sin dator. Detta kan vara ett grafiskt gränssnittsprogram som FileZilla eller ett kommandoradsverktyg som ftp i Linux.
Anslut till FTP-servern
- Användaren skriver in FTP-serverns adress, sitt användarnamn och lösenord för att etablera en kontrollanslutning till servern via port 21.
ftp ftp.example.com
Username: [Användarnamn]
Password: [Lösenord]
Välja överföringsläge
Användaren kan välja mellan binärt eller ASCII-överföringsläge beroende på filtypen som ska överföras. Binärt läge används för icke-textfiler som bilder eller program, medan ASCII används för textfiler.
binary
eller
ascii
- Med hjälp av kommandon som ls för att lista filer och cd för att byta katalog, navigerar användaren till den plats på FTP-servern där filen ska laddas upp.
cd /path/to/directory
ls
Överför filen
FTP-servern öppnar en dataanslutning på port 20 (eller en annan port om passivt läge används) och filen överförs.
Överföringen är klar
- När filöverföringen är klar, stängs dataanslutningen och kontrollanslutningen kan avslutas med kommandot quit.
quit
Säkerhet
FTP-säkerhet är en viktig övervägning eftersom användarnamn, lösenord och filinnehåll skickas i klartext över nätverket. I miljöer där säkerhet är en prioritet, rekommenderas det att använda FTPS eller SFTP som krypterar överföringen för att skydda dataintegriteten.
Teknisk nivå
På en teknisk nivå är FTP ett applikationslagerprotokoll som följer en klient-server modell och använder separata kontroll- och dataanslutningar mellan klienten och servern. FTP använder standard TCP-port 21 för kontrollmeddelanden och port 20 för dataöverföring, även om det kan konfigureras att använda andra portar.
När en FTP-session inleds, upprättar klienten en kontrollanslutning till en FTP-server för att skicka kommandon. Dessa kommandon kan vara begäranden om att logga in, navigera i katalogstrukturen, eller initiera filöverföringar. Efter att ett filöverföringskommando har getts öppnar FTP en separat dataanslutning där själva filöverföringen sker.
FTP fungerar i två olika lägen:
Aktivt läge
I detta läge initierar klienten en kontrollanslutning till serverns kommandotolk via port 21. Servern öppnar sedan en dataanslutning tillbaka till klienten från port 20. Aktivt läge kan orsaka problem med brandväggar och NAT (Network Address Translation), eftersom servern måste kunna initiera anslutningar till klienten.
Passivt läge
I passivt läge, efter att kontrollanslutningen har etablerats, begär klienten att servern ska lyssna på en slumpmässig port för en inkommande dataanslutning från klienten. Detta läge är mer brandväggsvänligt eftersom alla anslutningar initieras av klienten.
FTP använder enkla textbaserade kommandon för att utföra operationer. Detta gör protokollet lätt att implementera och debugga, men det innebär också att innehållet i dessa kommandon (inklusive potentiellt känslig information som användarnamn och lösenord) skickas i klartext över nätverket. Detta är en av anledningarna till att säkrare versioner av FTP har utvecklats, som FTPS, som använder SSL/TLS för att kryptera kontroll- och dataanslutningar, och SFTP, som använder Secure Shell (SSH) protokollet för att säkra filöverföringar.