File Transfer Protocol ( FTP ) , innen informatikk og telekommunikasjon , er en applikasjonslagsprotokoll for overføring av data mellom verter basert på TCP og med en klient-server-arkitektur .
Protokollen bruker separate TCP-tilkoblinger for å overføre data og kontrollere overføringer og krever klientautentisering via brukernavn og passord, selv om serveren kan konfigureres for anonyme tilkoblinger med dummy-legitimasjon. Siden FTP overfører både disse legitimasjonene og all annen kommunikasjon i klartekst, og siden den ikke har serverautentiseringsmekanismer hos klienten, er protokollen ofte sikret ved hjelp av et SSL/TLS -substrat og denne varianten kalles FTPS . Akronymet SFTP betegner i stedet en annen protokoll som, selv om den er veldig lik sistnevnte fra et funksjonelt synspunkt, er ganske forskjellig fra den teknologiske: SSH File Transfer Protocol .
FTP er en av de første protokollene som er definert på Internett og har gjennomgått en lang utvikling gjennom årene. Den første spesifikasjonen, utviklet ved MIT , dateres tilbake til 1971 ( RFC-114 ). Den gjeldende spesifikasjonen refererer til RFC-959 .
Hovedmålene til FTP beskrevet i dens offisielle RFC var:
Hvor er det:
FTP, i motsetning til andre protokoller som HTTP , bruker to separate tilkoblinger for å administrere kommandoer og data. En FTP-server lytter vanligvis på TCP -port 21 som klienten kobler seg til . Tilkoblingen av klienten bestemmer initialiseringen av kommandokanalen som klient og server utveksler kommandoer og svar gjennom. Selve utvekslingen av data (som en fil ) krever åpning av datakanalen, som kan være av to typer.
I en aktiv datakanal åpner klienten en vanligvis tilfeldig port, gjennom kommandokanalen gjør den kjent nummeret på denne porten til serveren og venter på at den skal kobles til. Når serveren har aktivert dataforbindelsen til FTP-klienten, binder sistnevnte kildeporten til port 20 på FTP-serveren. PORT- eller EPRT- kommandoene kan brukes til dette , avhengig av nettverksprotokollen som brukes (vanligvis IPv4 eller IPv6 ).
I en passiv datakanal åpner serveren en vanligvis tilfeldig port (høyere enn 1023), gjennom kommandokanalen gjør den kjent nummeret på denne porten til klienten og venter på at den skal kobles til. Til dette formålet kan PASV- eller EPSV- kommandoene brukes , avhengig av nettverksprotokollen som brukes (vanligvis IPv4 eller IPv6 ).
Både kommandokanalen og datakanalen er TCP -forbindelser ; FTP oppretter en ny datakanal for hver fil som overføres i brukersesjonen , mens kommandokanalen forblir åpen under hele brukersesjonen, med andre ord er kommandokanalen vedvarende mens datakanalen er ikke-vedvarende.
En FTP-server tilbyr flere funksjoner som lar klienten samhandle med filsystemet og filene som fyller det, inkludert:
FTP gir også et tydelig (ukryptert) autentiseringssystem for tilganger. Den tilkoblede klienten må kanskje oppgi legitimasjon avhengig av hvilke privilegier den vil bli tildelt for å kunne operere på filsystemet. Den såkalte "anonyme" autentiseringen krever at klienten ikke spesifiserer noe tilgangspassord og at den samme har privilegier som generelt er "skrivebeskyttet".
Liste over kommandoer definert i RFC-959 .
Fornavn | Kommando | Parametere | Beskrivelse |
---|---|---|---|
Avbryte | ABOR | Stopper dataoverføring. | |
Regnskap | ACCT | <account-information> | Kontoinformasjon (sjelden brukt). |
Tildelt | ALLO | <decimal-integer> | Tildel nok plass til å motta en (sjelden brukt) fil. |
Legg til (med opprette) | APPE | <pathname> | Legger til data til en eksisterende fil. |
Bytt til overordnet katalog | CDUP | Gå til overordnet katalog. | |
Endre arbeidskatalog | CWD | <pathname> | Endre gjeldende katalog. |
Slett | DELE | <pathname> | Slett filer. |
Hjelp | HELP | <command> | Returnerer listen over kommandoer som er akseptert av serveren. Med argument gir forklaringer om den angitte kommandoen. |
Liste | LIST | <pathname> | List innholdet i en katalog eller egenskapene til en enkelt fil. |
Overføringsmodus | MODE | <mode-type> | Still inn overføringsmodus ( ,, S=stream) . B=blockC=compressed |
Lag katalog | MKD | <pathname> | Opprett katalog. |
Navneliste | NLST | <pathname> | Returnerer filnavnene til den angitte katalogen. |
Neida | NOOP | Den gjør ingenting (mest brukt for å forhindre frakoblinger på grunn av langvarig inaktivitet). | |
Passord | PASS | <password> | Angir brukerens passord. |
Passiv | PASV | Initialiser passiv datatilkobling. | |
Port dato | PORT | <host-port> | Initialiser aktiv datatilkobling. |
Skriv ut arbeidskatalog | PWD | Returnerer gjeldende katalognavn. | |
Logg ut | QUIT | Koble fra. Hvis en overføring fortsatt pågår, vent til den er ferdig før du avslutter økten. | |
Reinitialiser | REIN | Logg av den påloggede brukeren. | |
Omstart | REST | <marker> | Overføringen fortsetter fra den angitte forskyvningen. |
Hente | RETR | <pathname> | Hent filer (server til klient). |
Fjern katalogen | RMD | <pathname> | Fjern kataloger. |
Gi nytt navn fra | RNFR | <pathname> | Gi nytt navn (kilde). |
Gi nytt navn til | RNTO | <pathname> | Gi nytt navn (destinasjon). |
Nettstedsparametere | SITE | <command> | Send serverspesifikk kommando (ikke standardisert; varierer mellom implementeringer). |
Strukturfeste | SMNT | <pathname> | Monteringsstruktur (sjelden brukt). |
Status | STAT | <pathname> | Returner serverstatistikk. Med argument viser innholdet i en katalog ved hjelp av kommandokanalen. |
butikk | STOR | <pathname> | Send en fil (klient til server). |
Butikk unik | STOU | <pathname> | Sender en fil (klient til server) med et unikt navn. |
Filstruktur | STRU | <structure-code> | Angi datastrukturen ( F=file,, R=record) P=page. Så godt som ubrukt. Standard er F. |
System | SYST | Returner operativsystemtype. | |
Representasjonstype | TYPE | <type> | Still inn overføringsmodus ( A=ASCII,,, ) . Standard er . EBCDIC og Local brukes sjelden (eksempel: bare på stormaskinsystemer). E=EBCDICI=BinaryL=LocalA |
Brukernavn | USER | <username> | Angi brukernavn. |
Den opprinnelige FTP-spesifikasjonen gir ingen kryptering for data som utveksles mellom klient og server. Dette inkluderer brukernavn, passord, kommandoer, svarkoder og overførte filer som kan "sniffes" eller ses av angripere i visse situasjoner (eksempel: intranettmiljøer ).
Problemet er felles for flere andre protokoller som ble brukt før spredningen av SSL som HTTP , TELNET og SMTP . For å overvinne dette problemet er det definert en ny spesifikasjon som legger til et SSL/TLS -krypteringslag til den originale FTP-protokollen pluss et nytt sett med kommandoer og svarkoder. Protokollen kalles FTPS og er definert i RFC-4217 . For ikke å forveksle med SFTP som fortsatt er et gyldig alternativ for å løse problemet beskrevet.
FileZilla , Fire Downloader, gFTP , JDownloader er noen av de mange nedlastingsbehandlerne som lar deg overføre data via FTP-tilkobling.
Men i operativsystemer , generelt, kan du også logge på via kommandolinjen .
Noen populære FTP-servere er [1] :