FTP

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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

  1. 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

  1. Användaren skriver in FTP-serverns adress, sitt användarnamn och lösenord för att etablera en kontrollanslutning till servern via port 21.
  2. ftp ftp.example.comUsername: [Användarnamn] Password: [Lösenord]

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.

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

Navigera i katalogstrukturen

  1. 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

  1. 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å

FTP Protokolloperationer

FTP (File Transfer Protocol) är ett applikationslagerprotokoll som använder Transmission Control Protocol (TCP) för att överföra filer mellan en klient och en server. Protokollet består av en serie kommandon och svar som möjliggör navigering i filsystemet, samt uppladdning och nedladdning av filer.

Upprättande av Kontrollförbindelse

En klient initierar en kontrollförbindelse från en lokal port till serverns port 21.

CLIENT: CONNECT TO server.com ON PORT 21
SERVER: 220 Service ready for new user.

Autentisering

Användare autentiserar sig med användarnamn och lösenord.

CLIENT: USER myusername
SERVER: 331 User name okay, need password.
CLIENT: PASS mypassword
SERVER: 230 User logged in, proceed.

Dataförbindelse

  1. Servern öppnar en dataförbindelse på port 20 eller en passiv port för filöverföring.
CLIENT: PASV
SERVER: 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
CLIENT: CONNECT TO h1.h2.h3.h4 ON PORT p1*256+p2

Filöverföring

Kommandon som STOR och RETR används för att initiera filöverföring.

CLIENT: STOR filename.txt
SERVER: 150 File status okay; about to open data connection.
(Själva filen överförs via dataförbindelsen.)
SERVER: 226 Closing data connection. Requested file action successful.

Kontrollförbindelse Under Överföring

  1. Kontrollförbindelsen hålls aktiv under filöverföring för att skicka ytterligare kommandon eller kontrollera status.
CLIENT: NOOP
SERVER: 200 Command okay.

Avsluta Sessionen

  1. När överföringen är klar kan användaren avsluta sessionen med QUIT.
CLIENT: QUIT
SERVER: 221 Service closing control connection.

Observera att FTP inte är säkert i sitt grundutförande eftersom det skickar all data inklusive lösenord i klartext. För säkrare överföringar bör FTPS eller SFTP användas, vilka krypterar dataöverföringen.


FTP Kommandon

FTP-protokollet innehåller en uppsättning kommandon som tillåter användare att utföra olika åtgärder på en fjärrserver. Nedan följer en lista över standard FTP-kommandon.

Autentiseringskommandon

  • USER - Ange användarnamn.
  • PASS - Ange lösenord.
  • ACCT - Ange kontoinformation.

Navigeringskommandon

  • CWD - Byt arbetskatalog.
  • CDUP - Gå upp en nivå i katalogstrukturen.
  • PWD - Visa nuvarande katalog.

Session Management

  • QUIT - Avsluta FTP-sessionen.
  • NOOP - Inget operationellt kommando.

Överföringslägeskommandon

  • PASV - Initiera passivt läge.
  • PORT - Ange port för aktivt läge.
  • TYPE - Ange överföringstyp (ASCII, Binär).
  • MODE - Ange överföringsläge.
  • STRU - Ange filstrukturen.

Filhanteringskommandon

  • RETR - Hämta fil.
  • STOR - Lagra fil.
  • APPE - Lägg till data i en fil.
  • LIST - Lista filer i en katalog.
  • NLST - Lista filnamn i en katalog.
  • DELE - Radera fil.
  • RMD - Ta bort katalog.
  • MKD - Skapa katalog.
  • RNFR - Byt namn från.
  • RNTO - Byt namn till.

Övriga kommandon

  • ABOR - Avbryt en pågående åtgärd.
  • SYST - Visa systemtyp.
  • STAT - Visa status för anslutning.
  • HELP - Lista tillgängliga kommandon.
  • SITE - Skicka site-specifika kommandon.
  • FEAT - Lista funktioner servern stöder.

Observera att denna lista inte är uttömmande och tillgängliga kommandon kan variera beroende på FTP-serverns implementation och konfiguration.

Se även

FTP ( File Transfer Protocol )

FTPS ( FTP Secure )

SFTP ( Secure FTP )