Filoverførselsprotokol
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
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 .
| 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
- ^ 4 populære FTP-servere anmeldt | TechWench , på techwench.com . Hentet 4. april 2019 .
- ^ SFTP-serversoftware til Windows på TitanFTP.com . Arkiveret fra originalen 19. august 2013. Hentet 5. november 2019 .
Relaterede emner
Andre projekter
Wikimedia Commons indeholder billeder eller andre filer på File Transfer Protocol
Eksterne links
- ( EN ) RFC 959 FTP ( italiensk oversættelse )
- ( EN ) RFC 2228 FTP-sikkerhedsudvidelser
- ( EN ) RFC 2640 Internationalisering af FTP
- ( EN ) RFC 4217 Sikring af FTP med TLS
- ( EN ) Forskellen mellem FTP og SFTP
- ( EN ) Forskellen mellem aktiv og passiv FTP
- ( EN ) FTP Server Online Test
