close

Filoverførselsprotokol

Hop til navigation Hop til søgning

File Transfer Protocol ( FTP ) , inden for datalogi og telekommunikation , er en applikationslagsprotokol til transmission af data mellem værter baseret på TCP og med en klient-server-arkitektur .

Protokollen bruger separate TCP-forbindelser til at overføre data og kontrollere overførsler og kræver klientgodkendelse via brugernavn og adgangskode, selvom serveren kan konfigureres til anonyme forbindelser med dummy-legitimationsoplysninger. Da FTP transmitterer både disse legitimationsoplysninger og enhver anden kommunikation i klartekst, og da den ikke har servergodkendelsesmekanismer på klienten, er protokollen ofte sikret ved hjælp af et SSL/TLS -substrat, og denne variant kaldes FTPS . Akronymet SFTP betegner i stedet en anden protokol, som, selvom den meget ligner sidstnævnte fra et funktionelt synspunkt, er ret anderledes end den teknologiske: SSH File Transfer Protocol .

Historie

FTP er en af ​​de første protokoller defineret på internettet og har gennemgået en lang udvikling gennem årene. Den første specifikation, udviklet på MIT , går tilbage til 1971 ( RFC-114 ). Den aktuelle specifikation henviser til RFC-959 .

Hovedformålene med FTP beskrevet i dets officielle RFC var:

  • Fremme deling af filer (programmer eller data)
  • Tilskynd til indirekte eller implicit brug af fjerncomputere .
  • Løs gennemsigtigt inkompatibiliteter mellem forskellige fillagringssystemer mellem værter .
  • Overfør data pålideligt og effektivt.

Beskrivelse

Model

FTP-model

Hvor er det:

  • PI ( protokolfortolker ) er protokolfortolkeren, der bruges af klient (User-PI) og server (Server-PI) til udveksling af kommandoer og svar. I almindelig sprogbrug omtales dette som "kommandokanalen".
  • DTP ( dataoverførselsproces ) er dataoverførselsprocessen, der bruges af klient (User-DTP) og server (Server-DTP) til dataudveksling. I almindelig sprogbrug omtales det som en "datakanal".

Generel operation

FTP bruger, i modsætning til andre protokoller såsom HTTP , to separate forbindelser til at administrere kommandoer og data. En FTP-server lytter typisk på TCP -port 21 , som klienten forbinder til . Forbindelsen af ​​klienten bestemmer initialiseringen af ​​kommandokanalen, gennem hvilken klient og server udveksler kommandoer og svar. Selve udvekslingen af ​​data (såsom en fil ) kræver åbning af datakanalen, som kan være af to typer.

I en aktiv datakanal åbner klienten en sædvanligvis tilfældig port, gennem kommandokanalen bekendtgør den nummeret på denne port til serveren og venter på, at den forbindes. Når serveren har aktiveret dataforbindelsen til FTP-klienten, binder denne kildeporten til port 20 på FTP-serveren. PORT- eller EPRT- kommandoerne kan bruges til dette afhængigt af den anvendte netværksprotokol (normalt IPv4 eller IPv6 ).

I en passiv datakanal åbner serveren en sædvanligvis tilfældig port (højere end 1023), via kommandokanalen bekendtgør den nummeret på denne port til klienten og venter på, at den forbindes. Til dette formål kan PASV- eller EPSV- kommandoerne bruges afhængigt af den anvendte netværksprotokol (normalt IPv4 eller IPv6 ).

Både kommandokanalen og datakanalen er TCP -forbindelser ; FTP opretter en ny datakanal for hver fil, der overføres inden for brugersessionen , mens kommandokanalen forbliver åben i hele brugersessionens varighed, med andre ord er kommandokanalen persistent, mens datakanalen er ikke-persistent.

En FTP-server tilbyder flere funktioner, der gør det muligt for klienten at interagere med sit filsystem og de filer, der udfylder det, herunder:

  • Fil download / upload .
  • Genoptagelse af afbrudte overførsler.
  • Filfjernelse og omdøbning.
  • Oprettelse af bibliotek .
  • Directory browsing.

FTP giver også et klart (ukrypteret) autentificeringssystem for adgange. Den tilsluttende klient skal muligvis angive legitimationsoplysninger, afhængigt af hvilke den vil blive tildelt visse privilegier for at kunne fungere på filsystemet. Den såkaldte "anonyme" autentificering kræver, at klienten ikke angiver nogen adgangskode , og at den samme har privilegier, der generelt er "read only".

Kommandoer

Liste over kommandoer defineret i RFC-959 .

Kommandoer
Fornavn Kommando Parametre Beskrivelse
Abort ABOR   Stopper dataoverførsel.
Konto ACCT <account-information> Kontooplysninger (sjældent brugt).
Tildelt ALLO <decimal-integer> Tildel plads nok til at modtage en (sjældent brugt) fil.
Tilføj (med oprette) APPE <pathname> Føjer data til en eksisterende fil.
Skift til overordnet bibliotek CDUP   Gå til den overordnede mappe.
Skift arbejdsmappe CWD <pathname> Skift nuværende bibliotek.
Slet DELE <pathname> Slet filer.
Hjælp HELP <command> Returnerer listen over kommandoer, der accepteres af serveren. Med argument giver forklaringer om den angivne kommando.
Liste LIST <pathname> Liste indholdet af en mappe eller egenskaberne for en enkelt fil.
Overførselstilstand MODE <mode-type> Indstil overførselstilstanden ( ,, S=stream) . B=blockC=compressed
Lav en mappe MKD <pathname> Opret mappe.
Navneliste NLST <pathname> Returnerer filnavnene for den angivne mappe.
Nej NOOP   Det gør intet (for det meste bruges til at forhindre afbrydelser på grund af langvarig inaktivitet).
Adgangskode PASS <password> Angiver brugerens adgangskode.
Passiv PASV   Initialiser passiv dataforbindelse.
Port dato PORT <host-port> Initialiser aktiv dataforbindelse.
Udskriv arbejdsmappe PWD   Returnerer det aktuelle biblioteksnavn.
Log ud QUIT   Koble fra. Hvis en overførsel stadig er i gang, skal du vente til den er færdig, før du lukker sessionen.
Geninitialiser REIN   Log af den loggede bruger.
Genstart REST <marker> Overførslen genoptages fra den angivne offset.
Hent RETR <pathname> Hent filer (server til klient).
Fjern mappe RMD <pathname> Fjern mapper.
Omdøb fra RNFR <pathname> Omdøb (kilde).
Omdøb til RNTO <pathname> Omdøb (destination).
Site parametre SITE <command> Send serverspecifik kommando (ikke standardiseret; varierer mellem implementeringer).
Strukturmontering SMNT <pathname> Monteringsstruktur (sjældent brugt).
Status STAT <pathname> Returner serverstatistik. Med argument lister indholdet af en mappe ved hjælp af kommandokanalen.
butik STOR <pathname> Send en fil (klient til server).
Butik unik STOU <pathname> Sender en fil (klient til server) ved hjælp af et unikt navn.
Filstruktur STRU <structure-code> Indstil datastrukturen ( F=file,, R=record) P=page. Stort set ubrugt. Standard er F.
System SYST   Returner operativsystemtype.
Repræsentationstype TYPE <type> Indstil overførselstilstanden ( A=ASCII,,, ) . Standard er . EBCDIC og Local bruges sjældent (eksempel: kun på mainframe-systemer). E=EBCDICI=BinaryL=LocalA
Brugernavn USER <username> Angiv brugernavn.

Svarkoder

  • 1xx: Foreløbigt positivt svar. Den anmodede handling er begyndt, men der vil være et andet svar, der indikerer, at den faktisk er fuldført.
  • 2xx: Endeligt positivt svar. Den ønskede handling er fuldført. Klienten kan nu sende andre kommandoer.
  • 3xx: Mellem positiv respons. Kommandoen er blevet accepteret, men en anden skal sendes for at anmodningen er endeligt fuldført.
  • 4xx: Midlertidig negativ reaktion. Kommandoen mislykkedes, men virker muligvis senere.
  • 5xx: Endeligt negativt svar. Kommandoen mislykkedes, og klienten bør ikke længere gentage den.
  • x0x: Syntaksfejl.
  • x1x: Svar på en informationsanmodning.
  • x2x: Forbindelsesrelateret svar.
  • x3x: Konto- og/eller tilladelsessvar.
  • x4x: Ikke bedre specificeret.
  • x5x: Filsystemrelateret svar.

Sikkerhedsproblemer

Den originale FTP-specifikation giver ikke nogen kryptering af data, der udveksles mellem klient og server. Dette inkluderer brugernavne, adgangskoder, kommandoer, svarkoder og overførte filer, som kan "sniffes" eller ses af angribere i visse situationer (eksempel: intranetmiljøer ).

Problemet er fælles for flere andre protokoller, der blev brugt før spredningen af ​​SSL , såsom HTTP , TELNET og SMTP . For at overvinde dette problem er der defineret en ny specifikation, der tilføjer et SSL/TLS -krypteringslag til den originale FTP-protokol plus et nyt sæt kommandoer og svarkoder. Protokollen kaldes FTPS og er defineret i RFC-4217 . Ikke at forveksle med SFTP , som stadig er et gyldigt alternativ til at overvinde det beskrevne problem.

Programmer, der bruger FTP

FileZilla , Fire Downloader, gFTP , JDownloader er nogle af de mange download-managere , der giver dig mulighed for at overføre data via FTP-forbindelse.

Men i operativsystemer , generelt, kan du også logge på via kommandolinjen .

FTP-server

Nogle populære FTP-servere er [1] :

  • FileZilla Server (Windows og Linux)
  • Titan FTP-server [2] (Windows)
  • Pure-FTPd (Unix)
  • VsFTPd (Unix)
  • ProFTPd (Unix)

Noter

  1. ^ 4 populære FTP-servere anmeldt | TechWench , på techwench.com . Hentet 4. april 2019 .
  2. ^ SFTP-serversoftware til WindowsTitanFTP.com . Arkiveret fra originalen 19. august 2013. Hentet 5. november 2019 .

Relaterede emner

Andre projekter

Eksterne links